t3jxbus
Goto Top

EXCEL VBA Termindaten aus Tabelle Filtern

Hallo, ich habe hier folgenden Codeblock gefunden für VBA im Excel:

Const SpalteSuchen = "B:B"          ' Spalte Suchen  
Const DatenSpalteVon = "A"          ' Daten kopieren von Spalte  
Const DatenSpalteBis = "E"          ' Daten kopieren bis Spalte  

Const ZielSpalte = "A"              ' Spalte Ziel-Tabelle  

Sub Suchen()
    Dim WksQ As Worksheet, WksZ As Worksheet, Suchliste As Variant, Token As Variant, Eingabe As String
    
    Eingabe = InputBox("Bitte Suchbegriffe Komma-Getrennt eingeben:", "Suchliste...")  
    If Eingabe = "" Then Exit Sub  
    
    Set WksQ = Sheets(SheetQuelle)
    Set WksZ = Sheets(SheetZiel):  WksZ.Cells.Clear
    
   'Überschriftzeile in Ziel-Tabelle schreiben  
    Range(WksQ.Cells(1, DatenSpalteVon), WksQ.Cells(1, DatenSpalteBis)).Copy WksZ.Cells(1, ZielSpalte)
    
    Suchliste = Split(Eingabe, ",")  
    
    For Each Token In Suchliste
        If Token <> "" Then Call SearchAndCopy(WksQ, Trim(Token), WksZ)  
    Next
End Sub

Private Sub SearchAndCopy(ByRef WksQ, ByRef Token, WksZ)
    Dim Found As Range, Suchtext As String, ZeileQ As Long, ZeileZ As Long
    
    With WksQ
        Suchtext = "" & Token & ""  'Teilübereinstimmung vor und nach mit "*"  
        If .Range(SpalteSuchen).AutoFilter(Field:=1, Criteria1:=Suchtext, VisibleDropDown:=False) Then
            ZeileQ = WksQ.Cells(WksQ.Rows.Count, "C").End(xlUp).Row  
            ZeileZ = WksZ.Cells(WksZ.Rows.Count, "C").End(xlUp).Row + 1  
            Range(.Cells(2, DatenSpalteVon), .Cells(ZeileQ, DatenSpalteBis)).Copy WksZ.Cells(ZeileZ, ZielSpalte)
        End If
       .AutoFilterMode = False
    End With
End Sub
Das ganze funktioniert auch soweit super. Ich beschreibe am besten einmal was ich will: Aus einer riesigen Terminplantabelle (Spalten von A bis C0, Zeilen bis zu 1500) im Excel brauche ich bestimmte Termindaten. Mit obigen Code erhalte ich diese auch. Allerdings kommen die Daten öfters vor, da in der Tabelle mehrere Projekte hinterlegt sind, z.B. pro Terminplan 3 Projekte. Zur besseren Erkennung ist jedes Projekt farblich unterlegt. Jedes Projekt hat gleiche Terminnamen, nur das Datum ist eben anders.
Ich brauche jetzt also ein Code, der in der lage ist die Projekte zu unterscheiden, damit ich mit obrigen Code immer die Termindaten so erhalte, dass sie zum Projekt passen. Versteht ihr was ich meine?
Leider bin ich absoluter VBA-Anfänger, muss mir aber eben jetzt was zusammenbasteln, damit ich meine Daten möglichst einfach und schnell aus den verschiedenen Terminplantabellen erhalte.

Hoffe ihr versteht mich und könnt mir helfen. Für jeden Ratschlag und Tip danke ich im Voraus!

Beste Grüße

Content-ID: 317704

Url: https://administrator.de/contentid/317704

Ausgedruckt am: 23.11.2024 um 08:11 Uhr