Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel Vorlage automatisch aus Liste befüllen

Excel Vorlage automatisch aus Liste befüllen
13.04.2018 10:56:58
Bernhard
Hallo Zusammen,
ich möchte eine Art "Serienbrief" in Excel erstellen:
Ich habe zwei Excel Dateien:
1. Vorlage eines Protokolles
2. Eine Liste mit ca. 300 Datensätzen
Aus diesen 300 Datensätzen der Liste sollen jetzt 300 Dateien auf Basis der Vorlage erstellt werden, in denen definierte Zellen mit den Inhalten aus der Liste ausgefüllt werden.
Beispiel:
In der Liste habe ich eine laufende Nummer - Bezeichnung - Typ - technische Daten etc.
In der Vorlage soll jetzt die Felder automatisch ausgefüllt werden:
B2 = Liste A1
B3 = Liste B1
C8 = Liste C1 etc.
und die Vorlage als Datei gespeichert werden, gerne mit der laufenden Nummer oder weiteren Felddaten versehen.
Für die zweite Zeile soll dann einen Neue Datei mit den Daten aus Zeile 2 erstellt und gespeichert werden.
Klassische Word Serienbrief-Funktion...
In Excel geht das vermutlich nur mit VBA, oder gibt es eine andere Möglichkeit?
Grüße,
Bernhard

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Richtig, mit VBA
13.04.2018 11:20:24
Peter(silie)
Hallo,
wie du schon richtig angemerkt hast, geht das mit VBA.
Wenn du uns beide Dateien lieferst, bekommst du den entsprechenden Code.
Alternativ kannst du auch Google bemühen, in relativ kruzer zeit,
müsstest du dann auf die benötigten Code teile stoßen.
Hier im Forum kannst du auch suchen, da müsste es auch haufenweise zeug zu dem thema geben.
AW: Richtig, mit VBA
14.04.2018 15:58:29
Robert
Hallo Bernhard,
bezogen auf Deine hoch geladene Beispieldatei (Vorlage und Liste sind in einer Excel-Datei) erstellt nachstehendes Makro die von Dir gewünschten Dateien (im alten XLS-Format). Das Zielverzeichnis, in das die Dateien gespeichert werden sollen, muss von Dir noch angepasst werden.
Sub Serienbrief()
Dim strDateiName  As String, i As Integer
Sheets("Vorlage_Protokoll").Activate
Application.ScreenUpdating = False
With Sheets("Vorlage_DATEN")
'alle Datensätze in Liste durchlaufen und Vorlage befüllen
For i = 3 To .Range("A" & Rows.Count).End(xlUp).Row
Range("B2") = .Range("A" & i)
Range("B3") = .Range("B" & i)
Range("B6") = .Range("C" & i)
Range("F6") = .Range("E" & i)
Range("B7") = .Range("H" & i)
Range("G7") = .Range("H" & i)
Range("B8") = .Range("I" & i)
Range("D8") = .Range("J" & i)
Range("B9") = .Range("G" & i)
Range("F9") = .Range("M" & i)
Range("G11") = .Range("K" & i)
'Tabelle in neue Datei kopieren
Sheets("Vorlage_Protokoll").Copy
'neue Datei speichern, Verzeichnis muss noch angepasst werden
strDateiName = "D:\DeinVerzeichnis\" & .Range("A" & i) & "_" & .Range("B" & i) & "_DN_"  _
& .Range("I" & i) & "_PN_" & .Range("J" & i) & "_" & .Range("G" & i) & ".xls"
ActiveWorkbook.SaveAs Filename:=strDateiName, FileFormat:=xlExcel8, 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ß
Robert
Anzeige
AW: Richtig, mit VBA
15.04.2018 08:52:17
Bernhard
Hallo Robert,
Vielen Dank für Deine Antwort und das Makro.
Werde mich damit beschäftigen und es versuchen zu verstehen.
Zum Speicherort: kann man hier evtl. hinterlegen, dass die Dateien im gleichen Verzeichnis wie die Vorlage gespeichert werden, also soetwas wie %current_dir% oder ähnlich?
Ansonsten wie gesagt 1000 Dank für die Arbeit!
Grüße,
Bernhard
AW: Richtig, mit VBA
15.04.2018 09:17:50
Robert
Hallo Bernhard,
das ist kein Problem. Die Zeile mit der Zuweisung des Dateinamens (inkl. Pfad) zu der Variablen einfach wie folgt anpassen:
strDateiName = ThisWorkbook.Path & "\" & .Range("A" & i) & "_" & .Range("B" & i) & "_DN_" & .Range("I" & i) & "_PN_" & .Range("J" & i) & "_" & .Range("G" & i) & ".xls"

Gruß
Robert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige