Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

kleiner als aktuelles Jahr löschen


Betrifft: kleiner als aktuelles Jahr löschen von: Frank
Geschrieben am: 21.01.2019 20:33:53

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!

  

Betrifft: AW: kleiner als aktuelles Jahr löschen von: Frank
Geschrieben am: 21.01.2019 20:36:32

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



  

Betrifft: AW: kleiner als aktuelles Jahr löschen von: onur
Geschrieben am: 21.01.2019 21:01:08

Hast du die Frage überhaupt richtig gelesen???


  

Betrifft: AW: kleiner als aktuelles Jahr löschen von: onur
Geschrieben am: 21.01.2019 21:05:37

Sorry, ich dachte, du wärest ein Helfer, der übereifrig was gepostet hat (so wie ich offensichtlich).


  

Betrifft: AW: kleiner als aktuelles Jahr löschen von: onur
Geschrieben am: 21.01.2019 21:03:23

Poste doch mal eine Musterdatei.


  

Betrifft: AW: kleiner als aktuelles Jahr löschen von: Frank
Geschrieben am: 22.01.2019 06:53:33

Beispielmappe...

https://www.herber.de/bbs/user/126994.xlsm


  

Betrifft: AW: kleiner als aktuelles Jahr löschen von: Frank
Geschrieben am: 22.01.2019 15:10:57

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)) < Year(Now) Then
Rows(i).Delete Shift:=xlUp
End If
Next
Vielen Dank für eine kleine Unterstützung!
Mfg. Frank


  

Betrifft: Cells(i,4) ohne Year !!! Gruß von: robert
Geschrieben am: 22.01.2019 17:16:56




  

Betrifft: AW: Cells(i,4) ohne Year !!! Gruß von: Frank
Geschrieben am: 22.01.2019 17:26:58

Cells(i,4) 

funktioniert, habe dabei aber noch das Problem, dass Zeilen welche mit "0" markiert sind ebenfalls gelöscht werden.


  

Betrifft: AW: Cells(i,4) ohne Year !!! Gruß von: Frank
Geschrieben am: 22.01.2019 17:31:47

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??


  

Betrifft: AW: Cells(i,4) ohne Year !!! Gruß von: Frank
Geschrieben am: 22.01.2019 17:48:28

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??


  

Betrifft: lt.Deiner Beispieldatei-so... von: robert
Geschrieben am: 22.01.2019 19:02:45

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) < Year(Now) And Cells(i, 4) <> 0 Then
Rows(i).Delete Shift:=xlUp
End If
Next
End Sub



  

Betrifft: AW: lt.Deiner Beispieldatei-so... von: Frank
Geschrieben am: 22.01.2019 20:56:42

Vielen Dank, funktioniert bestens!


  

Betrifft: AW: lt.Deiner Beispieldatei-so... von: Frank
Geschrieben am: 22.01.2019 20:58:13

Vielen Dank, funktioniert bestens!


Beiträge aus dem Excel-Forum zum Thema "kleiner als aktuelles Jahr löschen"