Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
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

Arbeitsmappen erstellen VBA

Arbeitsmappen erstellen VBA
09.05.2019 11:23:31
Lesepeter
Hallo zusammen,
ich würde gerne mehrere Arbeitsmappen automatisiert per VBA erstellen und unter bestimmten Namen (welche in einer anderen Arbeitsmappe stehen) speichern und schließen.
Die Namen der Arbeitsmappen kommen aus Mappe1.xlsx aus der 1.Zeile z.B. ab Spalte D und sollen solange Mappen erstellt werden bis die Zeile keinen Wert mehr enthält z.B. bis Spalte W.
Gibt es hier eine Möglichkeit das zu automatisieren über eine Schleife?
Danke schon mal für eure Hilfe!
Hier das Beispiel
https://www.herber.de/bbs/user/129682.xlsx

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappen erstellen VBA
09.05.2019 11:46:51
Hajo_Zi
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Arbeitsmappen erstellen VBA
09.05.2019 12:03:08
Torsten
Hallo,
Frage: Unter welchem Pfad sollen die Dateien gespeichert werden? Gleicher Pfad wie diese Datei?
Gruss Torsten
AW: Arbeitsmappen erstellen VBA
09.05.2019 12:05:31
fcs
Hallo Lesepeter,
hier das Grundgerüst für ein solches Makro.
Dieses müsst du bezüglich Dateinamen und Verzeichnisnamen anpassen.
LG
Franz
Sub Kopien_erstellen_von_Mappe()
Dim wkbVorlage As Workbook
Dim wkbNamen As Workbook
Dim wksNamen As Worksheet
Dim bolOpen As Boolean
Dim sPfadKopie As String, sName As String, sDatei_Namen As String, sErweiterung As String
Dim Spalte As Long
Set wkbVorlage = ActiveWorkbook
If MsgBox("von Datei """ & wkbVorlage.Name & """ kopin erstelle?", vbQuestion + vbOKCancel,  _
_
"Kopien erstellen") = vbCancel Then Exit Sub
sPfadKopie = wkbVorlage.Path 'Pfad für Kopien ggf. anders festlegen
'Namenserweiterung der Vorlage ermitteln
With wkbVorlage
sErweiterung = Mid(.Name, InStrRev(.Name, "."))
End With
sDatei_Namen = "MappeNamen.xlsx"   'Arbeitsmappe mit den Namen - Dateiname ggf. anpassen!
'Prüfen, ob Datei mit Namen geöffnet ist
bolOpen = True
For Each wkbNamen In Application.Workbooks
If LCase(wkbNamen.Name) = LCase(sDatei_Namen) Then Exit For
Next
If wkbNamen Is Nothing Then
bolOpen = False
sDatei_Namen = "C:\Users\Public\" & sDatei_Namen  'Verzeichnis anpassen!
Set wkbNamen = Application.Workbooks.Open(Filename:=sDatei_Namen, ReadOnly:=True)
End If
Set wksNamen = wkbNamen.Worksheets(1) 'Nummer oder Name des Tabellenblatts ggf anpassen
With wksNamen
Spalte = 4 'Spalte D
Do Until .Cells(1, Spalte).Text = ""
sName = .Cells(1, Spalte).Text
wkbVorlage.SaveCopyAs Filename:=sPfadKopie & Application.PathSeparator & sName & _
sErweiterung
Spalte = Spalte + 1
Loop
End With
If bolOpen = False Then wkbNamen.Close savechanges:=False
End Sub

Anzeige
AW: Arbeitsmappen erstellen VBA
09.05.2019 12:11:47
Torsten
Hallo Franz,
hast du mal richtig gelesen? Hier geht es nicht darum, ein bestehendes Workbook zu kopieren sondern lediglich darum, leere Dateien zu erstellen und unter bestimmten Namen abzuspeichern.
Der Code ist viel zu aufwaendig.
AW: Arbeitsmappen erstellen VBA
09.05.2019 12:21:34
Torsten
Also hallo nochmals,
hier ein Code, wenn die Mappe1 die Datei mit dem Code sein soll.
Die Dateien werden dann, nachdem du im Code den richtigen Pfad eingetragen hast, als .xlsx gespeichert.

Option Explicit
Sub Dateien_erstellen()
Dim a As Long, x As Long
Dim objExcel As Object
Dim Pfad As String, DatName As String
Pfad = "C:\Temp\"       'hier Pfad anpassen
a = ThisWorkbook.Sheets("Tabelle1").Cells(1, Columns.Count).End(xlToLeft).Column
For x = 4 To a
DatName = ThisWorkbook.Sheets("Tabelle1").Cells(1, x)
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
.Workbooks.Add
.ActiveWorkbook.SaveAs Pfad & DatName
.Quit
End With
Set objExcel = Nothing
Next x
End Sub
Gruss Torsten
Anzeige
wozu immer ne neue Instanz? owT
09.05.2019 12:29:01
Rudi
AW: Arbeitsmappen erstellen VBA
09.05.2019 12:25:54
Rudi
Hallo,
Sub aaa()
Dim r As Range, wb As Workbook
Dim p As String
Application.ScreenUpdating = False
p = ThisWorkbook.Path 'anpassen
If Right(p, 1)  Application.PathSeparator Then p = p & Application.PathSeparator
With Workbooks("Mappe1.xlsx").Sheets(1)
For Each r In .Range(.Cells(1, 4), .Cells(1, Columns.Count).End(xlToLeft))
Set wb = Workbooks.Add
wb.SaveAs p & r
wb.Close
Next r
End With
End Sub

Gruß
Rudi
kleine Ergänzung
09.05.2019 12:31:22
Rudi
wb.SaveAs p & r, xlOpenXMLWorkbook
AW: Arbeitsmappen erstellen VBA
09.05.2019 13:38:56
Lesepeter
Danke! Damit hat es funktioniert.
Option Explicit
Sub Dateien_erstellen()
Dim a As Long, x As Long
Dim objExcel As Object
Dim Pfad As String, DatName As String
Pfad = "C:\Temp\"       'hier Pfad anpassen
a = ThisWorkbook.Sheets("Tabelle1").Cells(1, Columns.Count).End(xlToLeft).Column
For x = 4 To a
DatName = ThisWorkbook.Sheets("Tabelle1").Cells(1, x)
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
.Workbooks.Add
.ActiveWorkbook.SaveAs Pfad & DatName
.Quit
End With
Set objExcel = Nothing
Next x
End Sub
Ich benötige dieses Makro als Grundgerüst, um die leeren Blätter in diesem Ordner zu befüllen.
Zur Info: Dafür habe ich dann dieses Makro
Sub Makro1()
strPath = "H:\Aufträge\DATA-WAREHOUSE\Ausleitung MOPF\20170110_Ausleitung\Unformatiert\Test\" ' _
Pfad des Verzeichnisses ggf. anpassen
strExt = "*.xlsx"       'Dateiextension ggf. anpassen
Dim strFile As String
If strPath = "" Then
Exit Sub
Else
strFile = Dir(strPath & strExt)
Do While Len(strFile) > 0
Workbooks.Open Filename:=strPath & strFile
'mach was damit
'deine routine
Workbooks(strFile).Close
strFile = Dir() ' nächste Datei
Loop
End If
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige