Hallo
dann evtl. so???
<pre style='border:thin solid #000000; padding:12px 24px; margin-left:12px; color:#000000'><span style='color:#0000EE'>Sub</span> speicher() <span style='color:#0000EE'>On</span> <span style='color:#0000EE'>Error</span> <span style='color:#0000EE'>GoTo</span> Fehler <span style='color:#0000EE'>Dim</span> wkb <span style='color:#0000EE'>As</span> Workbook, wkbNeu <span style='color:#0000EE'>As</span> Workbook, wks <span style='color:#0000EE'>As</span> Worksheet, wksTmp <span style='color:#0000EE'>As</span> Worksheet, wksNeu <span style='color:#0000EE'>As</span> Worksheet <span style='color:#0000EE'>Dim</span> i <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>Integer</span>, LR <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>Integer</span> <span style='color:#0000EE'>Dim</span> Arr() <span style='color:#0000EE'>Dim</span> Pfad <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span>, Dateiname <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span> <span style='color:#0000EE'>With</span> Application .ScreenUpdating = <span style='color:#0000EE'>False</span> .Calculation = xlCalculationManual <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>With</span> <span style='color:#0000EE'>Set</span> wkb = ThisWorkbook <span style='color:#0000EE'>Set</span> wks = wkb.ActiveSheet Pfad = wks.Range(<span style='color:#FF0000'>"I4"</span>) Dateiname = wks.Range(<span style='color:#FF0000'>"I23"</span>) <span style='color:#0000EE'>If</span> wks.AutoFilterMode <span style='color:#0000EE'>Then</span> wks.AutoFilterMode = <span style='color:#0000EE'>False</span> <span style='color:#008000'>' Autofilter ausschalten </span> <span style='color:#0000EE'>Set</span> wksTmp = wkb.Sheets.Add(after:=wkb.Sheets(wkb.Sheets.Count)) <span style='color:#0000EE'>With</span> wksTmp <span style='color:#008000'>'kopieren und Duplikate raus </span> wks.Columns(<span style='color:#DDAA00'>4</span>).Copy .Columns(<span style='color:#DDAA00'>1</span>) .Columns(<span style='color:#DDAA00'>1</span>).RemoveDuplicates Columns:=1, Header:=xlYes LR = .Cells(.Rows.Count, <span style='color:#DDAA00'>1</span>).End(xlUp).Row <span style='color:#008000'>'letzte Zeile der Spalte 1 </span> Arr = .Range(.Cells(<span style='color:#DDAA00'>2</span>, <span style='color:#DDAA00'>1</span>), .Cells(LR, <span style='color:#DDAA00'>1</span>)) <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>With</span> <span style='color:#008000'>'Neues Blatt erstellen und gefilterte Daten kopieren </span> <span style='color:#0000EE'>Set</span> wkbNeu = Workbooks.Add <span style='color:#0000EE'>For</span> i = <span style='color:#0000EE'>Lbound</span>(Arr) <span style='color:#0000EE'>To</span> <span style='color:#0000EE'>Ubound</span>(Arr) <span style='color:#0000EE'>Set</span> wksNeu = wkb.Sheets.Add(after:=wkb.Sheets(wkb.Sheets.Count)) wks.Columns(<span style='color:#DDAA00'>4</span>).AutoFilter Field:=1, Criteria1:=Arr(i, <span style='color:#DDAA00'>1</span>) wks.Columns(<span style='color:#DDAA00'>1</span>).Resize(, <span style='color:#DDAA00'>3</span>).Copy wksNeu.Columns(<span style='color:#DDAA00'>1</span>).Resize(, <span style='color:#DDAA00'>3</span>) wksNeu.Name = Arr(i, <span style='color:#DDAA00'>1</span>) <span style='color:#008000'>'Blatt in neue Datei verschieben </span> wksNeu.Move after:=wkbNeu.Sheets(wkbNeu.Sheets.Count) <span style='color:#0000EE'>Next</span> <span style='color:#008000'>'Filter ausschalten </span> wks.AutoFilterMode = <span style='color:#0000EE'>False</span> <span style='color:#008000'>'temporäres Blatt löschen </span> Application.DisplayAlerts = <span style='color:#0000EE'>False</span> wksTmp.Delete <span style='color:#008000'>'Neue Datei speichern und schließen </span> wkbNeu.SaveAs Filename:=Pfad & <span style='color:#FF0000'>"\"</span> & Dateiname & <span style='color:#FF0000'>".xlsx"</span>, _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False wkbNeu.Close <span style='color:#008000'>'*** Fehlerbehandlung </span> Err.Clear Fehler: <span style='color:#008000'>'*** Rücksetzen </span> <span style='color:#0000EE'>With</span> Application .DisplayAlerts = <span style='color:#0000EE'>True</span> .ScreenUpdating = <span style='color:#0000EE'>True</span> .Calculation = xlCalculationAutomatic <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>With</span> <span style='color:#0000EE'>If</span> Err.Number <> <span style='color:#DDAA00'>0</span> <span style='color:#0000EE'>Then</span> MsgBox <span style='color:#FF0000'>"Fehler: "</span> & _ Err.Number & vbLf & Err.Description: Err.Clear <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>Sub</span></pre>
LG UweD
|