Filtern & Kopieren

Effizientes Arbeiten mit Excel: Filtern & Kopieren aller eindeutigen Werte in einer Tabelle

Heute zeige ich dir eine effiziente Excel Automatisierung, bei der du eine Tabelle filterst, den gefilterten Inhalt in eine neue Arbeitsmappe kopierst und diese dann speicherst und schließt. Und das für alle eindeutigen Werte in einer bestimmten Spalte. Klingt komplex? Ich zeige es dir Schritt für Schritt.

Schritt 1: Tabelle vorbereiten

Beginne in der Excel-Datei, die deine Tabelle mit den zu filternden Daten enthält. Die erste Aufgabe besteht darin, die Tabelle in eine intelligente Tabelle umzuwandeln. Dazu einfach irgendwo in die Tabelle klicken und mit Strg + T eine intelligente Tabelle daraus erstellen.

Schritt 2: Filtern nach bestimmtem Wert

Jetzt zeige ich dir, wie du mit dem AutoFilter nach einem fix vorgegebenen Wert filtern kannst. In diesem Beispiel nach „Pisichen“ in der zweiten Spalte der Tabelle.

				
					Sub Filter_Kopieren()
    
    ' Variablen dimensionieren
    Dim rng As Range
    Dim wb_new As Workbook
    
    ' Tabelle einlesen
    Set rng = Sheets("Tabelle1").ListObjects("tbl_Produkte").Range
    
	' Autofilter setzen
	rng.AutoFilter 2, "Pisichen"

    ' Neue Arbeitsmappe erstellen
    Set wb_new = Workbooks.Add
    
    ' Gefilterte Tabelle kopieren
    rng.SpecialCells(xlCellTypeVisible).Copy Destination:=wb_new.Worksheets(1).Range("A1")
    
    ' Neue Arbeitsmappe speichern und schließen
    wb_new.Close True, ThisWorkbook.Path & "\Pisichen.xlsx"

End Sub

				
			

Schritt 3: Eindeutige Werte auslesen

Im nächsten Schritt kannst du alle eindeutigen Werte aus einer bestimmten Spalte auslesen und für jeden Wert die oben genannten Schritte wiederholen. Hier empfehle ich die Verwendung eines Dictionary, um sicherzustellen, dass nur eindeutige Werte gespeichert werden.

				
					Sub Filter_Kopieren()

    ' Variablen dimensionieren
    Dim rng As Range
    Dim wb_new As Workbook
    Dim dic As Object
    Dim cell As Range
    Dim key As Variant

    ' Tabelle einlesen
    Set rng = Sheets("Tabelle1").ListObjects("tbl_Produkte").Range
   
    ' Dictionary für eindeutige Werte erstellen
    Set dic = CreateObject("Scripting.Dictionary")
    
    ' Eindeutige Werte ins Dictionary einlesen
    For Each cell In range(“tbl_Produkte[Produktname]
        dic(cell.Value) = 0
    Next cell
    
    ' Schleife über alle eindeutigen Werte
    For Each key In dic.Keys
        ' Autofilter setzen
	    rng.AutoFilter 2, key

    	' Neue Arbeitsmappe erstellen
    	Set wb_new = Workbooks.Add
    
    	' Gefilterte Tabelle kopieren
    	rng.SpecialCells(xlCellTypeVisible).Copy Destination:=wb_new.Worksheets(1).Range("A1")
    
    	' Neue Arbeitsmappe speichern und schließen
   	    wb_new.Close True, ThisWorkbook.Path & "\” & key “.xlsx"

    Next key
    
End Sub

				
			

Ich hoffe dieses Tutorial hilft dir dabei, deine Datenverarbeitung automatisiert und effizient zu gestalten.

Melde dich gerne für meinen Newsletter an und erhalte regelmäßig Tipps & Tricks rund um das Thema Excel VBA!

Teile diesen Beitrag

Empfehlungen für dich

VBATrainer Excel VBA Coaching - Lagerverwaltung

Sichere dir jetzt meine kostenlose Lagerverwaltungs-Anwendung