Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Dynamisch verschieden Speichern
#1
Morgen Leute,
ich hab mal wieder was lustiges....
Und zwar habe ich ein Dokument (eine Arbeitsmappe) die ich als Vertragsvorlage verwenden will und die aus 3 Arbeitsblättern besteht. 
1. Blatt ist der Ausdruck, also der eigentliche Vertrag der dann auch zum Kunden geht. (nur dieses soll gedruckt werden, die anderen beiden definitiv nicht)
2. Blatt ist zur Dateneingabe, damit man nicht quer über den Ausdruck blättern muss.
3. Blatt ist zur Berechnung, dort sind auch die Preise hinterlegt die regelmäßig aktualisiert werden müssen.

Jetzt der lustige Part, ich möchte, wenn ich auf dem 1. Blatt (dem Ausdruck) oder dem 2. Blatt (Eingabe) bin und speichern drücke, die Datei unter neuem Namen in einem bestimmten Ordner abspeichern und Archivieren, wo ich sie dann auch normal öffnen und weiterbearbeiten will falls nötig, um Daten zu ergänzen etc. Makros sollen da weiterhin funktionieren, nur das Speichern unter soll da dann nicht mehr erzwungen werden.
Wenn ich aber auf dem 3. Blatt (Berechnung) bin und dort auf Speichern drücke, dann soll normal die Vorlage überschrieben werden, damit die Preise in der Vorlage aktualisiert werden können.

Ist das relativ einfach machbar?
Wenn nein, dann bau ich mir eine weitere Datei (Preisliste) in der ich die Preise aktuell halte und lese diese dann mit der Vorlage nur aus (im Bestfall mit einem Button, um in der fertigen Datei nicht versehentlich die Preise zu aktualisieren) und beschränke mich auf das erzwungene Speichern unter.
Antworten Top
#2
Hallo,

wie rufst Du das speichern auf? Mit einem Button oder direkt auf das Speicher - Symbol in Excel?

Falls Du auf den Blättern einen Button einrichtest oder vielleicht schon einen solchen hast, dann kannst Du für das Speichern der Mappe (Dein Blatt 1 oder 2) einfach so in vorhandenen Code einbauen:

Code:
ActiveWorkbook.SaveAs Filename:="C:\Users\Max Mustermann\Documents\Dokumente\Ordner1\Ordner2\" & Range("Name_der_Zelle_wo_der_Dateiname_steht").Value & ".xlsm"

Oder hier lt. Bernd Held (https://www.xing.com/communities/posts/a...1002110557):

Code:
Sub MappeMitMakosSpeichern()

ActiveWorkbook.SaveAs "C:\Test.xlsm", FileFormat:=52

End Sub

Auf Deinem Blatt 3 reicht dann:

Code:
ActiveWorkbook.Save

Grüße
Norbert
Antworten Top
#3
ja mit Buttons wäre es einfach, ich bezog mich aber auf das "normale" Speichern, also sozusagen via BeforeSave
Antworten Top
#4
Hallo,

dann kann ich Dir leider nicht weiterhelfen. Vielleicht hat ein anderer Mitstreiter im Forum eine zündende Idee. - Ich finde die Lösung über einen ActiveX Button oder einen selbst definierten Shortcut zum Starten eines Makros jedoch nach wie vor nicht umständlicher als das Betätigen des Excel - Speicherbuttons.

Grüße

Norbert
Antworten Top
#5
Hallöche,

mit BeforeSave bist Du auf dem richtigen Weg.

Baue Deine Codes dort ein. Die Fallunterscheidung bekommst Du mit einer Prüfung des Blattnamens des aktiven Blattes.
Experimentiere darin mit Cancel=True

Was meinst Du mit
Zitat:das Speichern unter soll da dann nicht mehr erzwungen werden

Zitat:Wenn ich aber auf dem 3. Blatt (Berechnung) bin und dort auf Speichern drücke, dann soll normal die Vorlage überschrieben werden
Auch noch wenn Du in einer der Dateien bist, die Du mit SaveAs gespeichert hast?

Falls Du eine Unterscheidung der Kopien und des Originals benötigst, geht das anhand des Dateinamens.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Hi,

für Vorlagen verwendet man keine *.xlsx- oder *.xlsm-Datei sondern eine *.xltx bzw *.xltm-Datei.

Eine solche Vorlagendatei macht im Grunde genau das was du willst. Willst du eine neue Datei erzeugen, sagst du innerhalb von Excel Datei --> "Neu aus Vorlage". Beim ersten Speichern wird dann ein Dateiname verlangt.

Um eine Vorlagendatei zu ändern, musst diese selbst öffnen und kannst sie dann speichern.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#7
Ja da habt ihr alle nicht unrecht, aber ich verwende die Datei nicht als einziger und allen erstmal zu erklären wo sie die xltm Vorlage finden und wie sie diese benutzen, wie dort die Preisliste aktualisiert wird etc ist zu aufwändig für ein "überarbeite mal schnell das Dokument" was meine Aufgabe war. Das mit dem Button ist vllt gar nicht mal soooo schlecht, vor allem da ich ja schon einen Button auf dem Eingabe Blatt habe, dem ich auch einfach die Funktion zum Aktualisieren der Preisliste hinzufügen könnte, für dich ich mich sowieso zu einer externen Datei entschieden habe, ich müsste also nur mit dem Button die Preisliste öffnen und mit der Liste in dem Blatt Berechnung vergleichen bzw die Preise dort hinein kopieren.
Antworten Top
#8
Kann ich eigentlich, wenn ich aus einer anderen Tabelle (Arbeitsmappe) Daten per VBA auslese auch entscheiden, wenn ich zu einem Produkt verschiedene Lieferanten und Preise habe, welchen Lieferanten ich übernehme, primär anhand eine Datums das ich in der Preisliste eintrage und sekundär anhand des Preises wenn das Datum identisch ist?
Antworten Top
#9
Ja, wenn Du die Bedingungen benennen kannst, kannst Du danach auch eine automatische, manuelle oder kombinierte Reaktion darauf programmieren.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
Naja, Bedingung wäre erstmal nach Datum, wenn eins in der Spalte "Verfügbarkeit" der Preisliste steht, kein Datum bedeutet in dem Fall sofort und sollte also vor einer Version mit Datum ausgewählt werden, wenn mehrere Lieferanten des Produkts in der Verfügbarkeit dasselbe Datum bzw kein Datum anbieten, dann soll der Preis ausschlaggebendes Kriterium sein.
Denke das könnte sich definieren lassen, muss nur schauen wie ich das in einen VBA Code schreibe, der sich in einem anderen Dokument befindet...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste