VBA Makro Spezialfilter in ein anderes Tabellenblatt
#1
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
Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an ReginaR für diesen Beitrag:
  • luflee66
Top
#3
Hallo Regina, 

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

lg
Top
#4
..ok, noch ein Versuch:

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


sonst bitte mal eine Beispieldatei hochladen.

Gruß Regina
[-] Folgende(r) 1 Nutzer sagt Danke an ReginaR für diesen Beitrag:
  • luflee66
Top
#5
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • luflee66
Top
#6
Das klappt!  
Vielen Vielen Dank!!!

:28: :28: :28: :28:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste