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