Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

kleiner als aktuelles Jahr löschen

Forumthread: kleiner als aktuelles Jahr löschen

kleiner als aktuelles Jahr löschen
21.01.2019 21:33:53
Frank
Hallo,
ich habe in VBA eine Listbox mit vier Spalten, in der vierten Spalte wird eine Jahreszahl angezeigt.
Nun möchte ich, dass beim aktivieren des entsprechenden Buttons alle Zeilen aus der Tabelle entfernt werden, welche kleiner als das aktuelle Jahr sind...
Komme irgendwie nicht auf die Lösung, evtl. hat jemand eine Idee für mich.
Vielen Dank für eine Info!
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kleiner als aktuelles Jahr löschen
21.01.2019 21:36:32
Frank
PS: alle Zeilen löschen habe ich folgendermaßen gelöst:
If CheckBox1.Value = True Then
Sheets("Tabelle1").Range("A2:P500").ClearContents 'sind 500 Zeilen zum löschen ausreichend?
End If

AW: kleiner als aktuelles Jahr löschen
21.01.2019 22:01:08
onur
Hast du die Frage überhaupt richtig gelesen?
AW: kleiner als aktuelles Jahr löschen
21.01.2019 22:05:37
onur
Sorry, ich dachte, du wärest ein Helfer, der übereifrig was gepostet hat (so wie ich offensichtlich).
Anzeige
AW: kleiner als aktuelles Jahr löschen
21.01.2019 22:03:23
onur
Poste doch mal eine Musterdatei.
AW: kleiner als aktuelles Jahr löschen
22.01.2019 16:10:57
Frank
Einen Teilerfolg habe ich, aber es werden dabei alle Zeilen gelöscht.
For i = Cells(Rows.Count, 4).End(xlUp).Row To 2 Step -1
If CheckBox2.Value = True And Year(Cells(i, 4)) 
Vielen Dank für eine kleine Unterstützung!
Mfg. Frank
Anzeige
Cells(i,4) ohne Year !!! Gruß
22.01.2019 18:16:56
robert
AW: Cells(i,4) ohne Year !!! Gruß
22.01.2019 18:26:58
Frank

Cells(i,4) 

funktioniert, habe dabei aber noch das Problem, dass Zeilen welche mit "0" markiert sind ebenfalls gelöscht werden.
AW: Cells(i,4) ohne Year !!! Gruß
22.01.2019 18:31:47
Frank
Versuche das inzwischen mit der Funktion Formula zu lösen...
With Sheets("Tabelle1").Cells(1, 1).CurrentRegion
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=if(AND(OR(RC4=0,RC4=Year(Today()))),row(),0)"
.Cells(1, 1) = 1
.EntireRow.RemoveDuplicates .Column, xlNo
'.ClearContents
End With
End With
es wird aber hierbei ein Duplikat nicht entfernt - wo liegt der Fehler?
Anzeige
AW: Cells(i,4) ohne Year !!! Gruß
22.01.2019 18:48:28
Frank
Folgend eine saubere Lösung:
Dim AnzahlZeilen As Long
With Sheets("Tabelle1").Cells(1, 1).CurrentRegion
With .Columns(.Columns.Count + 1)
If CheckBox2.Value = True Then
.FormulaR1C1 = "=IF(AND(OR(RC4=0,RC4=Year(Today()))),1,""x"")"
.Cells(1, 1) = 1
End If
.EntireRow.Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlYes
'AnzahlZeilen = WorksheetFunction.Sum(.Cells) + 1
'.ClearContents
End With
End With
aber wie bringe ich Excel dazu, dass die markierten Zeilen mit "x" gelöscht werden?
Anzeige
lt.Deiner Beispieldatei-so...
22.01.2019 20:02:45
robert

Private Sub CommandButton1_Click()
Dim i As Long
For i = Cells(Rows.Count, 4).End(xlUp).Row To 2 Step -1
If CheckBox2.Value = True And Cells(i, 4)  0 Then
Rows(i).Delete Shift:=xlUp
End If
Next
End Sub

AW: lt.Deiner Beispieldatei-so...
22.01.2019 21:56:42
Frank
Vielen Dank, funktioniert bestens!
AW: lt.Deiner Beispieldatei-so...
22.01.2019 21:58:13
Frank
Vielen Dank, funktioniert bestens!
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18