mein Ziel ist folgendes: ich habe eine Tabelle, in der ich in einer bestimmten Spalte nach dem Merkmal "x" suche. Alle Zeilen, die in dieser Spalte das Kriterium erfüllen, sollen aus der Tabelle ausgeschnitten und in ein neues Tabellenblatt eingefügt werden. Das ganze habe ich dann mit einer Schaltfläche verbunden und kann es per Mausklick ablaufen lassen. Das hat soweit für den bestehenden Datensatz auch funktioniert, allerdings kommen neue Zeilen mit neuen Daten dazu. Und für diese Zeilen läuft das Makro nicht mehr. Es werden weiterhin Zeilen mit Merkmal "x" aus dem "alten" Datensatz richtig ausgeschnitten und eingefügt aber eben die neuen nicht. Die bleiben einfach stehen.
Zum Hintergrund: ich habe einen Code im Internet gefunden und diesen auf meine Problemstellung angepasst. Ich habe eigentlich keine VBA-Kenntnisse, meine wenigen Kenntnisse in 1-2 anderen Programmiersprachen haben ausgereicht, die wenigen Stellen im Code anzupassen (Namen der Tabellenblätter, Spaltennummer und entfernen einer Abfrage für ein zweites Merkmal).
Folgender Code steht im Tabellenblatt mit den Daten, die durchsucht werden sollen:
Option Explicit
Public Sub ZeilenFilternUndVerschieben()
Dim loLetzte As Long
Dim loLetzteTab3 As Long
Dim loAnzahl As Long
Dim loCounter As Long
Dim strKriterium1 As String
loAnzahl = 0
strKriterium1 = "x" ' bezieht sich auf Spalte Q (Spaltennummer 17)
With ThisWorkbook.Worksheets("abgeschlossene Aufträge")
loLetzteTab3 = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp). _
Row, .Rows.Count)
End With
With Me
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
For loCounter = 1 To loLetzte
If .Cells(loCounter, 17).Value = strKriterium1 Then
loAnzahl = loAnzahl + 1
End If
Next loCounter
For loCounter = loLetzte To 1 Step -1
If .Cells(loCounter, 17).Value = strKriterium1 Then
.Rows(loCounter).EntireRow.Cut Destination:=ThisWorkbook.Worksheets(" _
abgeschlossene Aufträge").Rows(loLetzteTab3 + loAnzahl)
.Rows(loCounter).EntireRow.Delete shift:=xlUp
loAnzahl = loAnzahl - 1
End If
Next loCounter
End With
End Sub
Ich hab natürlich versucht selber zu recherchieren, aber ich stoße mit meinen Kenntnissen an meine Grenzen und kann allgemeine Verbesserungsvorschläge nicht auf mein Problem und den Code übertragen. Deswegen hoffe ich, dass mir hier jemand bei der Anpassung des Codes helfen kann, sodass auch neu hinzugefügte Zeilen durchsucht werden.Gruß
Alex