Excel Vorlage aus Liste automatisch befüllen lassen
#1
Hallo zusammen,

ich versuche lediglich Inhalte aus einem Reiter ("Liste") in den Reiter ("Vorlage") zu übertragen.
Habe ein Makro gefunden das eigentlich genau meine Anforderung trifft, das Ergebnis ist bei mir allerdings mies..
Hier der Ursprung des Makros (https://www.herber.de/forum/archiv/1616t...ellen.html)

und hier meine angepasste Version:

Code:
Sub Serienbrief()
Dim strDateiName  As String, i As Integer
Sheets("Liste").Activate
Application.ScreenUpdating = False
With Sheets("Vorlage")
    'alle Datensätze in Liste durchlaufen und Vorlage befüllen
    For i = 16 To .Range("D" & Rows.Count).End(xlUp).Row
        Range("C6") = .Range("D" & i)
        Range("C7") = .Range("T" & i)
        Range("C8") = .Range("S" & i)
        Range("C9") = .Range("EO" & i)
    
        'Tabelle in neue Datei kopieren
        Sheets("Vorlage").Copy
        'neue Datei speichern, Verzeichnis muss noch angepasst werden
        strDateiName = "C:\Users\Name\Desktop\Test\" & .Range("D" & i) & "_" & .Range("T" & i) & "_" & .Range("S" & i) & "_" & .Range("EO" & i) & ".xlsx"

        ActiveWorkbook.SaveAs Filename:=strDateiName, FileFormat:=xlNormal, Password:="", _
        WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
        'neue Datei schließen
        ActiveWindow.Close
    Next
End With
Application.ScreenUpdating = True
MsgBox "Die Dateien sind erstellt!", vbInformation
End Sub

Die Datei in der beide Reiter sind hat bei mir noch weitere, vielleicht liegt es daran. Jedenfalls werden die Vorlagen nicht unter dem angegebenen Pfad gespeichert und die Vorlage nicht um die Inhalte aus dem Reiter ("Inhalte") ergänzt. 

Anbei meine Beispieldatei, bin maximal überfragt wo ich es verbockt habe Confused 

Beste Grüße
Leo


Angehängte Dateien
.xlsx   Vorlage befüllen.xlsx (Größe: 13,99 KB / Downloads: 7)
Top
#2
Hi,
iwo ist der Code abgelegt? Das problem "sitzt" in dieser Zeile:

For i = 16 To .Range("D" & Rows.Count).End(xlUp).Row

Durch den Punt vor dem Range bezieht sich dieser auf das Blatt "Vorlage", Du brauchst hier aber den bezug zu Liste. Wenn der Code im Codemodul vom Blatt Liste steht, nimm einfach den Punkt weg. Steht der Code in einem Standardmodul, muss es so heißen:

For i = 16 To Worksheets("Liste").Range("D" & Rows.Count).End(xlUp).Row

Gruß Regina
[-] Folgende(r) 1 Nutzer sagt Danke an ReginaR für diesen Beitrag:
  • Leonhard
Top
#3
Hi Regina,

ich habe beides ausprobiert. Die Datei wird zwar jetzt in dem richtigen Pfad abgelegt, allerdings mit der Benennung __.xlsx 
Da alle Dateien dort so abgelegt werden werde ich auch gefragt ob ich die bestehende überschreiben will. Wenn ich bestätige hätte ich nur eine Datei und diese kann ich dann nicht öffnen weil die Meldung kommt ...Dateiformat oder Erweiterung ungültig.

Beste Grüße
Leo
Top
#4
... da warst Du noch an einigen anderen Stellen mit dem Punkt und dem Blattbezug durcheinander gekommen, teste mal so:

Code:
Sub Serienbrief()
Dim strDateiName  As String, i As Integer
Sheets("Liste").Activate
Application.ScreenUpdating = False
With Sheets("Vorlage")
    'alle Datensätze in Liste durchlaufen und Vorlage befüllen
    For i = 16 To Sheets("Liste").Range("D" & Rows.Count).End(xlUp).Row
        .Range("C6") = Sheets("Liste").Range("D" & i)
        .Range("C7") = Sheets("Liste").Range("T" & i)
        .Range("C8") = Sheets("Liste").Range("S" & i)
        .Range("C9") = Sheets("Liste").Range("EO" & i)
   
        'Tabelle in neue Datei kopieren
        Sheets("Vorlage").Copy
        'neue Datei speichern, Verzeichnis muss noch angepasst werden
        strDateiName = "C:\Regina\" & .Range("C6") & "_" & .Range("C7") & "_" & .Range("C8") & "_" & .Range("C9") & ".xlsx"

        ActiveWorkbook.SaveAs Filename:=strDateiName, FileFormat:=xlNormal, Password:="", _
        WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
        'neue Datei schließen
        ActiveWindow.Close
    Next
End With
Application.ScreenUpdating = True
MsgBox "Die Dateien sind erstellt!", vbInformation
End Sub
Gruß Regina
[-] Folgende(r) 1 Nutzer sagt Danke an ReginaR für diesen Beitrag:
  • Leonhard
Top
#5
Bekomme immer noch den gleichen Fehler wenn ich die Dateien öffnen will.
Kann das hieran liegen: FileFormat:=
das war im Ursprungscode: FileFormat:=xlExcel8  ich dachte das es sich dann um eine ältere Version von Excel handelt Blush

Code:
ActiveWorkbook.SaveAs Filename:=strDateiName, FileFormat:=xlNormal, Password:="", _
        WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False


Beste Grüße
leo
Top
#6
..ok, das Öffnen hatte ich nicht mehr getestet. Sollte ohne jede Formatangabe so passen:

ActiveWorkbook.SaveAs Filename:=strDateiName
[-] Folgende(r) 1 Nutzer sagt Danke an ReginaR für diesen Beitrag:
  • Leonhard
Top
#7
Genau so passt es  :05: :05:

Vielen Dank für deine Unterstützung & Grüße
Leo
Top


Gehe zu:


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