With Tabelle1
Set rngbereich = .Rows(2)
lngzeilemax = Worksheets("Tabelle1").Range("A" & Rows.Count).End(xlUp).Row
For lngzeile = 2 To lngzeilemax
If .Cells(lngzeile, 1).Value = (Me.cmb_kontinent) And .Cells(lngzeile, 3).Value = (Me.cmb_Jahr) Then
Set rngbereich = Union(rngbereich, .Rows(lngzeile))
End If
Next lngzeile
'Bestimmte Bereiche der Zeile sollen kopiert werden
rngbereich.Columns("B").Copy Destination:=Tabelle2.Range("A4")
rngbereich.Columns("E").Copy Destination:=Tabelle2.Range("B4")
rngbereich.Columns("F").Copy Destination:=Tabelle2.Range("C4")
rngbereich.Columns("G").Copy Destination:=Tabelle2.Range("D4")
End With
End Sub
Aktuell ist es so, dass nur bei der Vorauswahl (siehe Foto) des Userforms die Abfrage funktioniert und die entsprechenden Zeilen in ein neues Blatt ausgegeben werden. Sobald ich einen anderen Wert in der Combobox "Kontinent" einstelle, wird nur die zweite Zeile der Tabelle kopiert. Ich stehe gerade etwas auf dem Schlauch da ich noch Anfänger bin, kann mir hier vielleicht jemand helfen?
Vor der Schleife setzt du den Bereich auf die Zeile 2, d.h. diese Zeile ist immer vorhanden, egal was du in deiner Eingabemaske einstellst.
rngbereich sollte Nothing sein und in der Schleife erst gesetzt werden (wenn du mit Union arbeitest, musst du das Nothing natürlich berücksichtigen).
Sollte die Bedingung nicht wie beabsichtigt Ergebnisse liefern, solltest du die Vergleiche und deren Resultate einzeln prüfen, z.B. im Einzelschritt-Modus.
Normal gilt beispielweise das "Nordamerika" = "nordamerika" => False ist. Woran es nun genau liegt, das er nicht alle Zeilen kopiert, kannst nur du prüfen.
|