Ein VBA-Code zum bedingten Kopieren von Daten von einem Blatt auf ein anderes

Problem

Ich benötige einen VBA-Code, der Daten von Sheet1 (Rohdaten) auf Sheet 2, Sheet3 usw. kopieren kann, wenn eine bestimmte Bedingung zutrifft.

Spalte --- A ------------ B ------------ C ------------ D ------ -E

----------- Name ----- Ort ---- Firma --- Land

----------- name1 ---- AB ------- Nokia ------- USA

----------- name2 ---- CD ------- Sony -------- UK

----------- name3 ----- EF ------- LG ----------- INDIA

----------- name4 ----- AB ------ Sony ------ RUSSLAND

----------- name5 ----- AB ------ Sony ------ DEUTSCHLAND

----------- name6 ----- CD ------ Nokia ------ INDIA

----------- name7 ----- CD ------ Ericsson - USA

----------- name8 ----- EF ------ Ericsson ---- RUSSLAND

----------- name9 ----- GH ------ Lenore ----- UK

----------- name10 --- GH ------- HP --------- INDIA

Lösung

Sie können folgende Codes verwenden

 Sub SplitSheets () Dim DataSht, wsCrit, SplitSht als Arbeitsblatt Dim lrUnq, lrData, i Solange Dim FtrVal als Zeichenfolge Application.ScreenUpdating = False Set DataSht = Worksheets ("sheet1") 'ändere es in den Namen deines Rohdatenblatts lrData = DataSht.Range ("a" & Rows.Count) .End (xlUp) .Row Set wsCrit = Arbeitsblätter.Add DataSht.Range ("B1: l" & lrData) .AdvancedFilter Action: = xlFilterCopy, _ CopyToRange: = wsCrit .Range ("A1"), Unique: = True lrUnq = wsCrit.Range ("a" & Rows.Count) .End (xlUp) .Row For i = 2 To lrUnq FtrVal = wsCrit.Range ("A" & i ) .Value Set SplitSht = Worksheets.Add DataSht.Select 'DataSht.ShowAllData ActiveSheet.AutoFilterMode = False ActiveSheet.Range ("A1: Z" & lrData) .AutoFilter Field: = 2, Criteria1: = FtrVal Range ("a1") .Auswahlbereich (Auswahl, Auswahlende (xlToRight)) .Auswahlbereich (Auswahl, Auswahlende (xlDown)) .Auswahlbereich.Aufgeteilte Kopie.Auswahlbereich ("A1") .Auswahl von ActiveSheet.Paste 'Cells.Select Cells .EntireColumn.AutoFit SplitSht.Name = FtrVal Application.CutCopyMode = False Weiter i App lication.DisplayAlerts = False wsCrit.Delete Application.DisplayAlerts = True .AutoFilterMode = False End Sub 

Vielen Dank an RWomanizer für diesen Tipp.

Vorherige Artikel Nächster Artikel

Top-Tipps