ich habe folgendes Problem und ich hoffe Ihr könnt mir dabei helfen es zu lösen. Ich bin noch ein Anfänger auf dem Gebiet der VBA und taste mich langsam an die Thematik heran. Leider konnten mir die Themen in den Foren nicht weiter helfen, weil ich nicht in der Lage war, deren Lösungen auf mein konkretes Problem anzupassen.
Ich habe im Arbeitsblatt - Tabelle2 eine große Menge an Daten. In der Spalte C befinden sich mehre Ziffern untereinander bis ca. Zeile 30.000
Im Arbeitsblatt Tabelle1 gebe ich in den Zellen B23 und D23 jeweils eine Ziffer ein.
Im Arbeitsblatt Tabelle4 werden die Daten dann gefiltert aufgelistet. (Siehe Screenshoot).
In diesem Fall nach den Ziffern 5 und 7 soweit so gut.
Hier der dazugehörige Code:
Sub Filtern()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
Dim ziffera As Long
Dim zifferb As Long
ziffera = Range("B23")
zifferb = Range("D23")
With Tabelle2
ZeileMax = .UsedRange.Rows.Count
n = 1
For Zeile = 2 To ZeileMax
If .Cells(Zeile, 3).Value = ziffera Or .Cells(Zeile, 3).Value = zifferb Then
.Rows(Zeile).Copy Destination:=Sheets("Tabelle4").Rows(n)
n = n + 1
End If
Next Zeile
End With
End Sub
Nun das konkrete Problem:Wenn die Ziffer, die in der Zelle B23 (Tabelle1) eingegeben wird, in diesem Fall 5, doppelt untereinander steht (vgl. Zeile 13 und 14), dann soll jeweils die oberen der beiden Zeilen gelöscht werden.
Wenn die Ziffer, die in der Zelle D23 (Tabelle1) eingegeben wird, in diesem Fall 7, doppelt untereinander steht (vgl. Zeile 23 und 24), dann soll jeweils die untere der beiden Zeilen gelöscht werden.
Die erste Zeile sollte in der Zelle C1 immer den Wert aus der Zelle B23 (Tabelle1) haben und die letzte Zelle Cx (variabler Wert) immer den Wert aus der Zelle D23 (Tabelle1). Wenn das nicht der Fall sein sollte, sollen die Zeilen gelöscht werden.
Ich hoffe Ihr könnt mir weiterhelfen und freue mich auf eure Lösungsvorschläge.
Vielen Dank
Gruß Frank