Clever-Excel-Forum

Normale Version: Dynamisch verschieden Speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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.
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
ja mit Buttons wäre es einfach, ich bezog mich aber auf das "normale" Speichern, also sozusagen via BeforeSave
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
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.
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.
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.
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?
Ja, wenn Du die Bedingungen benennen kannst, kannst Du danach auch eine automatische, manuelle oder kombinierte Reaktion darauf programmieren.
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...
Seiten: 1 2