Filter selektieren, auswählen und kopieren (VBA)

Martin Asal @, Dienstag, 15.05.2018, 15:45 (vor 156 Tagen) @ ka

Hallo Kathrin,

für deine Zwecke würde ich zunächst eine Kopie der Daten erstellen, nach denen pro Durchlauf gefiltert werden soll. Nehmen wir an, deine Liste ist in Tabelle1, und Tabelle2 ist leer. Du willst nacheinander nach jedem Wert in der Spalte "B" filtern, obwohl die Liste schon in der Spalte A beginnt:

Worksheets("Tabelle1").Range("b1:b9999").Copy
With Worksheets("Tabelle2").Range("b1:b9999")
    .PasteSpecial
    .RemoveDuplicates Columns:=1, Header:=xlNo
End With

(Na ja, nicht sehr schön, wegen der festen Angaben zum Range...)

Jetzt hast du in Tabelle2 eine Liste der Werte, nach denen du filtern willst. Durch diese Liste muss dein Code nur noch per Schleife durchlaufen. Ein Beispiel, wie man per Code eine Liste durchläuft, findest du auf dieser Seite in der Prozedur "Erledigt". Und innerhalb eines jeden Durchlaufs kannst du auf ganz ähnliche Weise dann auch die gefilterten Werte auswählen.

(... und wenn du das mit dem Durchlaufen einer Liste verstanden hast, kannst du auch ganz leicht die oben genannte Unschönheit besser machen ;-) )

Was du vielleicht schon weißt ist, wie man mit einem Filter umgeht. Zur Sicherheit hier noch eine Codezeile dafür, so ähnlich gehört das dann in die Schleife:

Worksheets("Tabelle1").Cells.AutoFilter field:=2, _
   Criteria1:= Worksheets("Tabelle2").Range("b2")
 


Martin


gesamter Thread:

 RSS-Feed dieser Diskussion

powered by my little forum