Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe beim Makro

Forumthread: Hilfe beim Makro

Hilfe beim Makro
Bernd
Hallo zusammen,
habe eine Exceldatei mit 20 Tab-Blättern. Makro soll Datei nach folgenden Bedingungen speichern.
Nehme Wert aus Tab-Blatt "name", Zelle b2, hänge akt. Datum dran und speichere die Datei unter folgenden Pfad: e:\abc\xyz\
Ich hoffe, dass ich mich verständlich ausgedrückt habe und bedanke mich schon mal im Voraus für kommende Beiträge.
Bruß Bernd
Anzeige
Blätter mit Datum und Zellinhalt einzeln speichern
06.11.2009 17:25:58
NoNet
Hall Bernd,
so müsste es gehten (nicht getestet) :
Dim sh as sheet
For each sh in sheets
sh.copy 'erstellt eine Kopie des Blattes als neue Mappe
activeworkbook.saveas "e:\abc\xyz\" & sh.name & " " & activesheet.[B2] & format(Date,"YYYY-MM- _
DD") & ".xls"
Activeworkbook.Close 'Schließt die Kopie und kehrt in die ursprüngliche Mappe zurück
Next
Gruß, NoNet
Anzeige
AW: Blätter mit Datum und Zellinhalt einzeln speichern
06.11.2009 17:47:12
Bernd
Hallo NoNet,
Danke für die schnelle Hilfe. Leider bekomme ich bei "Dim sh ..." eine Fehlermeldung.
Liegt es vielleicht daran, das ich vergessen hatte zu erwähnen, dass es sich um eine "XLT-Vorlagen-Datei" handelt und das ich das Makro aus Tab-Blatt "start" per Button starte.
Danke schon mal im Voraus.
Gruß Bernd
Anzeige
Nachtrag
06.11.2009 18:25:41
Bernd
Hallo NoNet,
..Zelle b2 in Tab "name" bildet den neuen Dateinamen ab + akt. Datum. Nicht jedes Tab-Blatt speichern sondern die gesamte Datei.
Gruß Bernd
AW: Hilfe beim Makro
06.11.2009 17:30:04
Jens
Hallo Bernd
Sub tt()
Dim strName As String
strName = ("e:\abc\xyz\" & Worksheets("name").Range("B2") & Format(Date, "YYYY-MM-DD"))
ThisWorkbook.SaveAs strName
End Sub

Anzeige
AW: Hilfe beim Makro
06.11.2009 18:05:26
Bernd
Hallo Jens,
getestet und bis auf die Tatsache, dass die Datei nur mit Datum und nicht wie gewollt vor dem Datum noch den Wert aus Zelle b2, Tab-Blatt "name" voran stellt.
Hatte leider am Anfang vergessen zu erwähnen, dass ich hier eine Vorlagendatei (.xlt) gestartet habe und das Makro von Tab-Blatt "start" ausführen möchte.
Danke schon mal im Voraus.
Gruß Bernd
Anzeige
AW: Hilfe beim Makro
06.11.2009 20:47:13
Jens
Hallo Bernd
Ich habe das jetzt so verstanden:
Die Mappe xyz.xlt wird geöffnet.
Dort sind 2 Register ("name" und "start")
In "name" in B2 steht irgendwas
Jetzt soll die .xlt-Datei unter
"e:\abc\xyz\" & Worksheets("name").Range("B2") & Format(Date, "YYYY-MM-DD")
als .xls-Datei gespeichert werden. (Oder soll nur eine Kopie davon gespeichert werden?)
Ist das soweit richtig?
So funzt das bei mir:
Sub tt()
Dim strName As String
strName = ("e:\abc\xyz\" & Worksheets("name").Range("B2") & Format(Date, "YYYY-MM-DD") & ".xls") _
ThisWorkbook.SaveAs strName 'oder ThisWorkbook.SaveCopyAs strName
End Sub
Gruß aus dem Sauerland
Jens
Anzeige
AW: Hilfe beim Makro
09.11.2009 09:24:35
Bernd
Hallo Jens,
trotz meiner laienhaften Darstellung hast du es richtig verstanden, Hut ab!!!
Dein VBA-Code funktioniert einwandfrei.
Allerdings ist mir aufgefallen, dass wenn die Zelle B2 leer ist, was mal passieren kann, die Datei nur mit dem aktuellen Datum abgespeichert wird und die Gefahr besteht, dass es beim speichern zur Überschreibung der Datei kommt, was ich verhindern möchte.
Deshalb meine Frage. Kannst du mir einen Weg aufzeigen, vor der Speicherung eine Abfrage in den Code einzubauen, die annähern so lauten soll: "wenn B2 auf Tab-Blatt "name" leer ist, gehe zu Tab-Blatt "name" und zu B2. Wenn B2 ist ausgefüllt, setzte speichern fort.
Viele Dank schon mal im Voraus.
Gruß Bernd
Anzeige
AW: Hilfe beim Makro
09.11.2009 14:52:00
Jens
Hallo Bernd
Versuch mal so:
Sub tt()
Dim strName As String
If Worksheets("name").Range("B2") = "" Then
MsgBox "Bitte Zelle ""B2"" in Tabelle ""Name"" füllen." & Chr(10) & "Der Vorgang wird  _
abgebrochen..."
Application.Goto Worksheets("name").Range("B2")
Exit Sub
Else
strName = ("e:\abc\xyz\" & Worksheets("name").Range("B2") & Format(Date, "YYYY-MM-DD") & ".xls") _
ThisWorkbook.SaveAs strName 'oder ThisWorkbook.SaveCopyAs strName
End If
End Sub
Gruß aus dem Sauerland
Jens
Anzeige
AW: Hilfe beim Makro
09.11.2009 15:30:13
Bernd
Hallo Jens,
Danke für deine erneute Hilfe.
Bekomme leider folgende Fehlermeldung "Fehler beim kompilieren: Else ohne if"
Gruß aus dem kalten Bremen
Bernd
AW: Hilfe beim Makro
09.11.2009 15:38:25
Jens
Hallo Bernd
Der Strich vom Zeilenumbruch "_" wird von der Forensoftware gesetzt. Das kann der Fehler sein.
MsgBox "Bitte Zelle ""B2"" in Tabelle ""Name"" füllen." & Chr(10) 

und
 & "Der Vorgang wird abgebrochen..."
sollten in einer Zeile hintereinander stehen (ohne "_").
Gruß aus dem Sauerland
Jens
Anzeige
AW: Hilfe beim Makro
09.11.2009 16:01:51
Bernd
Hallo Jens,
geht ab wie "Schmitz Katze".
Danke nochmals!!!
Gruß Bernd
Danke für Rückmeldung :o) (oT)
09.11.2009 20:25:46
Jens
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige