Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

mit Excel Liste automatisch neue Excel-Dateien erstellen





Frage

Hallo liebes Forum, ich habe eine Excel-Tabelle mit einer Spalte Zahlen und eine Excel-Datei-Vorlage. Nun möchte ich, dass per Makro die Vorlage geöffnet wird, in Zelle B6 der erste Wert (z. B. 12345) der Excel-Liste geschrieben wird und diese Datei dann unter dem Namen des ersten Wertes (z.B. 12345.xls) abgespeichert und geschlossen wird. Nun soll wieder die Vorlagedatei geöffnet werden und in Zelle B6 der zweite Wert eingetragen und die Datei unter dem Namen "Zweiter Wert.xls) gespeichert werden. Das soll solang wiederholt werden, bis die Liste abgearbeitet ist. Ich glaub, dass ist ganz einfach - ich komme nur leider mal wieder nicht weiter. Danke schon im voraus. Jörg.

Antwort 1 von morpheus__85

Hallo Jörg,

versuch es mal hiermit.
Nimm ein Tabellenblatt in deiner Vorlage, dass kannst du ja ausblenden das er später keiner sieht und schreib dir Liste deiner Zahlen in die Spalte A.
Dann versuch es mal mit folgendem Makro:


Public Sub Dateien_Aufbereiten()

Dim i, Name

i = 1

Do

i = i + 1

'Wenn du deine Liste in Tabelle2 in der Spalte A hast dann... Name = Tabelle2.Cells(i, 1).Value


ActiveWorkbook.SaveAs Filename:= _
"Dein Pfad wo die Dateien gespeichert werden"&Name& ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False


Loop Until IsEmpty(Tabelle2.Cells(i, 1)) = True

End Sub

Das Makro speichert einfach immer wieder die Vorlage unter einem anderen Namen ab. Es macht nichts anderes als den manuellen Weg Datei --> Speichern Unter und geht dann eben auf den Eintrag aus deiner Liste.
Versuchs mal damit wenn du noch Fragen hast meld dich nochmal.

Gruß
Morpheus

Antwort 2 von morpheus__85

Hallo Jörg,

hab grad gesehen das du noch möchtest das in Zelle B6 noch der Wert geschrieben wird.
Dann muss das Makro noch ein wenig erweiter werden und zwar so.

Public Sub Dateien_Aufbereiten()

Dim i, Name

i = 1

Do

i = i + 1

'Wenn du deine Liste in Tabelle2 in der Spalte A hast dann... Name = Tabelle2.Cells(i, 1).Value

'Wenn sich die Zelle B6 im 1 Tabellenbaltt befindet dann....
Tabelle1.Cells(2, 6).value = Name


ActiveWorkbook.SaveAs Filename:= _
"Dein Pfad wo die Dateien gespeichert werden"&Name& ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False


Loop Until IsEmpty(Tabelle2.Cells(i, 1)) = True

End Sub

Hatte ich ganz überlesen.

Gruß
morpheus

Antwort 3 von jschade

Hallo,

das Speichern klappt noch nicht: - er meldet unerwarteten Fehler

Public Sub Dateien_Aufbereiten()

Dim i, Name, Bez


i = 1

Do

i = i + 1

'Wenn du deine Liste in HeID in der Spalte A hast dann... Name = Tabelle1.Cells(i, 1).Value
Name = HeID.Cells(i, 1).Value
Bez = HeID.Cells(i, 2).Value

'Wenn sich die Zelle B6 im 1 Tabellenblatt befindet dann....
Tabelle1.Cells(2, 6).Value = Name
Tabelle1.Cells(2, 7).Value = Bez

ActiveWorkbook.SaveAs Filename:= _
"I:\BauPlanProgramm_KS\SollIst_Verwaltungskosten\makro_dateienerstellen\"&Name& ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False


Loop Until IsEmpty(Tabelle2.Cells(i, 1)) = True

End Sub

Antwort 4 von morpheus__85

Hallo,

auf anhieb kann ich keinen größeren Fehler entdecken.
Dein Tabellenblatt heißt HeID?

Dann musst du den Ausdruck

Name = HeID.Cells(i, 1).Value
Bez = HeID.Cells(i, 2).Value


ändern in

Name = Sheets("HeID").Cells(i, 1).Value
Bez = HeID.Cells(i, 2).value

Das Tabellenblatt "HeID" ist das das ursprüngliche Tabellenblatt 2? Weil unten in der Loop Bedingung wird ja auf das Tabellenblatt2 zugegriffen. Das kannst du so stehen lassen aber nur wenn es auch wirklich das Tabellenblatt 2 ist.

Gruß
morpheus

Antwort 5 von jschade

Supervielen Dank für Deine Hilfe

hier war noch ein Fehler versteckt (neben denen, die Du gefunden hast):

---> & ".xls" ist überflüssig und ergibt einen Fehler

Schönes Wochenende.

Jörg.

ActiveWorkbook.SaveAs Filename:= _
"Dein Pfad wo die Dateien gespeichert werden"&Name& ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False