Hallo zusammen
Bin ein absoluter VBA-Neuling und wäre sehr dankbar, wenn mich jemand bei der Lösung meines Problems unterstützen könnte. Folgendes habe ich vor:
Ich habe eine Template-Datei (zwei Tabellenblätter: a) Sheet1 [soll befüllt werden] und b) Sheet2 [für dieses Problem irrelevant]) in welche in den verbundenen Spalten A3:I3 der Name und Vorname aus einer anderen Datei "Namensliste" eingefügt werden soll. Die Datei Namensliste hat zwei Tabellenblätter: a) Sheet1 und b) Namensliste. Die Information "Name und Vorname" steht in der Spalte D im Tabellenblatt "Namensliste".
Nun möchte ich, dass für jede Person in der Namensliste (je Person gibt es eine Zeile)
-
der Nachname und Vorname in die verbundene Zellen A3:I3 der Datei "Template" (Tabellenblatt Sheet1) kopiert wird, anschliessend
-
diese Datei unter einem definierten Pfad und mit demselben Vor- und Nachname abgespeichert wird, und
-
die Datei dann geschlossen wird.
Dies soll für jede Person in der Datei Namensliste geschehen, bis eine leere Zeile auftaucht.
Ich versuche seit mehreren Tagen, dies mit einer With-Schleife hinzukriegen. Folgend ist das, was ich bisher versucht habe. Lass' ich das Makro so laufen, erscheint die Fehlermeldung "Laufzeitfehler '1004": Anwendungs- oder objektdefinierter Fehler. Beim Debuggen wird die Zeile
"Workbooks(Quelldatei).Sheets("Namensliste").Range("D&i").Copy 'Blatt/Bereich anpassen"
markiert. Vermutlich hab' ich i nicht defniert...
Bin sehr dankbar, wenn mir jemand weiterhilft und stelle, sofern möglich, auch gerne die Files zur Veranschaulichung zur Verfügung.
Besten Dank!
Option Explicit
Sub FileBefullen()
'
Dim Stamm As String
Dim Quelldatei As String
Dim Zeile As Long
Dim ZeileMax As Long
Dim NachnameVorname As Variant
Dim strDateiname As String
Dim strAntwort As String
Dim i As Integer
Quelldatei = "Namensliste.xlsx" 'Dateiname der Quelldatei anpassen
Stamm = ActiveWorkbook.Name ' ist die Zieldatei
With Tabelle1
ZeileMax = .UsedRange.Rows.Count
For NachnameVorname = 2 To ZeileMax
Workbooks(Quelldatei).Sheets("Namensliste").Range("D&i").Copy 'Blatt/Bereich anpassen
Workbooks(Stamm).Sheets("Sheet1").Range("A3:I3").PasteSpecial xlPasteValues 'Blatt/Bereich anpassen
Application.CutCopyMode = False
strDateiname = Range("D&i").Value & ".xlsx"
ActiveWorkbook.SaveAs ("C:\" & strDateiname) 'Pfad bitte ändern
Workbooks(Quelldatei).Close
Next NachnameVorname
End With
End Sub
|