Hallo,
ich bin absoluter vba-Anfänger und habe ein Problem, bei dem ihr mir bestimmt helfen könnt.
Ich habe in Excel verschiedene Blätter (A,B,CD,E,.....,TUV,W,XYZ). Alle Blätter sind gleich aufgebaut. Jetzt möchte ich per vba die einzelnen Zeilen der Blätter auslesen lassen und auf 3 Kriterien Prüfen (Verkäufer, Lieferant, Produkt). Ich habe es schon hinbekommen, dass mir die Liste ausgegeben wird, wenn ich nur ein Kriterium auslesen lasse (z.B. Verkäufer). Wenn ich aber weitere Kriterien einfügen will, klappt das Ganze nicht mehr. Ich bekomme dann immer die gleiche Liste, wie wenn ich nur einen Verkäufer auslesen lasse.
Verkäufer ist in Spalte Q, Lieferant in Spalte E und das Produkt in Spalte F. Wenn alle drei Kriterien gleich der Vorgabe sind, soll die Zeile in das Blatt Selektionen kopiert werden. Die Vorgaben werden in den Zellen E2=Verkäufer, E3=Lieferant, E4=Produkt gemacht.
So weit bin ich schon gekommen:
Option Explicit
Public Sub Selektionen()
Dim wksZ As Worksheet
Dim Zelle As Range
Dim FirstAddress As String
Dim lngC As Long
Dim sSuchbegriff As String
Dim WSArr As Variant
Dim I As Long
Dim J As Long
Set wksZ = Worksheets("Selektionen")
lngC = 10
sSuchbegriff = Range("E2").Value
WSArr = Array("A", "B", "CD", "E", "F", "G", "H", "IJ", "K", "L", "M", "NO", "PQ", "R", "S", "Sch", "St", "TUV", "W", "XYZ")
For I = LBound(WSArr) To UBound(WSArr)
With Worksheets(WSArr(I)).Range("Q:Q")
Set Zelle = .Find(sSuchbegriff, LookIn:=xlValues, lookat:=xlPart)
If Not Zelle Is Nothing Then
FirstAddress = Zelle.Address
Do
Zelle.EntireRow.Copy Destination:=wksZ.Cells(lngC, 1)
lngC = lngC + 1
Set Zelle = .FindNext(Zelle)
Loop While Not Zelle Is Nothing And Zelle.Address <> FirstAddress
End If
End With
Next I
Application.ScreenUpdating = True
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Wo ist jetzt mein Denkfehler? Kann mir jemand von Euch helfen? Vielen Dank im Voraus.
|