Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vorlage mit Daten aus anderer Datei füllen u saven

Forumthread: Vorlage mit Daten aus anderer Datei füllen u saven

Vorlage mit Daten aus anderer Datei füllen u saven
23.04.2018 17:23:13
Stefan
Hallo zusammen,
zuerst einmal herzlichen Dank an Carlos Push und Franz (alias fcs) für die Hilfe zur Lösung eines anderen Problems. Super!
Hab' eine neue Herausforderung:
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.
Mit einer With-Schleife scheint es nicht zu funktionieren. Unten ist das Makro, mit welchem ich bisher versucht hab'. 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...?
Wäre mega dankbar, wenn mir jemand weiterhelfen könnte!
Viele Grüsse, Stefan
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

  • Link Template-File: https://www.herber.de/bbs/user/121212.xlsx

  • Link Namensliste: https://www.herber.de/bbs/user/121214.xlsx

  • Anzeige

    2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Vorlage mit Daten aus anderer Datei füllen u saven
    25.04.2018 11:37:53
    fcs
    Hallo Stefan,
    das muss man in diesem Fall etwas anders angehen.
    1. Namen der neuen Datei ermitteln.
    2. Kopie der Stammdatei mit neuem Namen speichern
    3. Kopie öffnen
    4. Nachname/Name eintragen
    5. Kopie speichern/schliessen
    Da die Zellbereiche in Quelle und Ziel unterschiedlich sind kann man nicht mit der Kopierfunktion arbeiten, sondern muss die Werte einlesen/eintragen.
    Gruß
    Franz
    Sub FileBefullen()
    If MsgBox("Nachname Vorname in Stammblatt eintragen und speichern?", _
    vbQuestion + vbOKCancel, "Makro: FileBefullen") = vbCancel Then Exit Sub
    Dim Zeile As Long
    Dim ZeileMax As Long
    Dim NachnameVorname As Variant
    Dim wkbStamm As Workbook, wkbZiel As Workbook, strNameZiel As String, PfadZiel As String
    Dim wkbQuelle As Workbook, wksQuelle As Worksheet
    Set wkbQuelle = Workbooks("Namensliste.xlsx") 'Dateiname der Quelldatei ggf. anpassen
    Set wksQuelle = wkbQuelle.Worksheets("Namensliste")
    Set wkbStamm = ActiveWorkbook
    PfadZiel = "D:\Test\"                     'Verzeichnis für Zieldateien anpassen!
    With wksQuelle
    ZeileMax = .Cells(.Rows.Count, 4).End(xlUp).Row
    For Zeile = 2 To ZeileMax
    NachnameVorname = .Cells(Zeile, 4).Value 'Wert aus Spalte D - ggf. anpassen
    If Trim(NachnameVorname)  "" Then
    strNameZiel = PfadZiel & NachnameVorname & ".xlsx"
    'Kopie der Stammdatei speichern
    wkbStamm.SaveCopyAs strNameZiel
    'Kopie öffnen
    Set wkbZiel = Application.Workbooks.Open(strNameZiel)
    'Nachname Vorname eintragen
    wkbZiel.Sheets("Sheet1").Range("A3").Value = NachnameVorname
    wkbZiel.Close savechanges:=True
    End If
    Next Zeile
    End With
    'wkbQuelle.Close savechanges:=True 'Namensliste schliessen
    MsgBox "Fertig"
    End Sub
    

    Anzeige
    AW: Vorlage mit Daten aus anderer Datei füllen u saven
    25.04.2018 13:02:59
    Stefan
    Hallo Franz,
    wow, genau das brauchte ich. Funktioniert einwandfrei.
    Herzlichen Dank und viele Grüsse,
    Stefan

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige