AW: Pro Eintrag in Tabellenblatt eine neue Datei erstellen
03.02.2020 17:08:09
UweD
Hallo
so?
Modul1
Option Explicit
Sub Kunden()
Dim TB1 As Worksheet, TB2 As Worksheet, TBTmp As Worksheet, LR As Integer, i As Integer
Dim RngDaten As Range, RngKrit As Range, RngZiel As Range
Dim Pfad As String, Kunde As String
Pfad = "X:\Temp\" 'mit \ am Ende
Set TB1 = Sheets("Tabelle1")
Set TBTmp = Sheets.Add(After:=TB1)
With TBTmp ' temporäres Blatt anlegen
.Name = "TMP"
'Kunden kopieren
TB1.Columns("D:D").Copy .Cells(1, 1)
'Doppelte entfernen
.Columns(1).RemoveDuplicates Columns:=1, Header:=xlYes
LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
End With
For i = 2 To LR
Kunde = TBTmp.Cells(2, 1)
'Kundenblatt anlegen
Set TB2 = Sheets.Add(After:=TB1)
TB2.Name = "Kunde " & Kunde
'Filter festlegen
Set RngDaten = TB1.Range("A1").CurrentRegion
Set RngKrit = TBTmp.Range("A1:A2") 'die oberen 2 Werte von temp
Set RngZiel = TB2.Cells(1, 1)
RngDaten.AdvancedFilter xlFilterCopy, RngKrit, RngZiel
'Blatt als eigene Datei
TB2.Move
'Neue Datei speichern und schließen
With ActiveWorkbook
.SaveAs Filename:=Pfad & "Kunde " & Kunde & ".xlsx", FileFormat:=xlOpenXMLWorkbook
.Close
End With
'auf nächste Kundennummer wechseln
TBTmp.Rows(2).Delete xlUp
Next
'Temp. Blatt wieder löschen
Application.DisplayAlerts = False
TBTmp.Delete
End Sub
LG UweD