Clever-Excel-Forum

Normale Version: VBA Makro Spezialfilter in ein anderes Tabellenblatt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Allerseits, 

Ich beschäftige mich erst seit kurzer Zeit mit VBA und komme nicht so wirklich weiter. 
Ich habe ein Tabellenblatt ("Selektionsliste") mit bedingter Formatierung erstellt. 
Die Tabelle soll regelmäßig mit neuen Werten erweitert werden und sobald der Wert von 6 in der 5. Spalte der Tabelle überschritten wird, soll die betreffende Zeile durch bedienen der Schaltfläche in ein anderes Tabellenblatt ("KWB neu") übertragen werden. 

Mit Hilfe eines Youtube- Videos habe ich das Ganze bisher ganz gut hinbekommen. Problem ist nur, dass sobald ich eine neue Zeile, welche den Wert von 6 übersteigt, hinzufüge  und danach die Schaltfläche bediene, lediglich die erste Spalte (und nicht wie gewünscht die komplette Zeile) in das Tabellenblatt  übertragen wird.... 

Hat vielleicht jemand eine Idee, woran es liegen könnte?  Huh  
Ich bin für jede Hilfe dankbar !! 


Code:
Sub LetzteZeile()

Dim lngLastRowSe As Long
Dim lngLastRowKWB As Long
Dim lngLastRowKr As Long
Dim lngLastRow As Long

lngLastRowSe = Worksheets("Selektionsliste").Cells(Rows.Count, "1").End(xlUp).Row
lngLastRowKWB = Worksheets("KWB neu").Cells(Rows.Count, "1").End(xlUp).Row
lngLastRowKr = Worksheets("Kriterien").Cells(Rows.Count, "1").End(xlUp).Row
lngLastRow = Worksheets("Kriterien").Cells(Rows.Count, "1").End(xlUp).Row

Sheets("Selektionsliste").Range("A1:E" & lngLastRowSe).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Kriterien").Range("A1:E" & lngLastRowKr), CopyToRange:=Sheets("KWB neu").Range("A & lngLastRow"), Unique:=False

End Sub




Sub Filter()
'
' Filter Makro
' Filter: Wenn Summe >=6 in KWB
'
' Tastenkombination: Strg+Umschalt+F
'
    Sheets("KWB neu").Select
    Range("A1").Select
 
    Sheets("Selektionsliste").Range("Tabelle4[#All]").AdvancedFilter Action:= _
        xlFilterCopy, CriteriaRange:=Sheets("Kriterien").Range("A1:E2"), CopyToRange _
        :=Range("A1"), Unique:=False
End Sub
Hi,
ohne es getestet zu haben, der Fehler wird hier liegen:

Code:
CopyToRange:=Sheets("KWB neu").Range("A & lngLastRow")
dadurch dass & lngLastRow mit in den Anführungszeichen steht, wird die Variable nicht ausgewertetet.

Teste mal so:
Code:
CopyToRange:=Sheets("KWB neu").Range("A" & lngLastRow)
Gruß Regina
Hallo Regina, 

Vielen Dank für die schnelle Antwort, 
leider funktionierts trotzdem nicht wie gewünscht  Undecided

lg
..ok, noch ein Versuch:

Code:
CopyToRange:=Sheets("KWB neu").Range("A" & lngLastRow & ":E" & lngLastRow)


sonst bitte mal eine Beispieldatei hochladen.

Gruß Regina
Hallo,

Code:
Sub FiltereErweitert()
  Sheets("Selektionsliste").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Kriterien").Range("A1").CurrentRegion, CopyToRange:=Sheets("KWB neu").Range("A1:E1"), Unique:=False
End Sub

Gruß Uwe
Das klappt!  
Vielen Vielen Dank!!!

:28: :28: :28: :28: