Suppression de lignes avec condition - VBA

Bonjour,

En première ligne de mon document, j'ai une colonne date, qui correspond à tous les jours de l'année. Ensuite, quelques colonnes d'information quelconque.

Je voudrais supprimer les lignes correspondant aux dates passées à ce jour (implémenté directement dans ma feuille, ou à partir d'un bouton).

Mon code est le suivant :

Private Sub CommandButton1_Click()

  Dim Plage As Range
  Dim Cellule As Range

    Set Plage = Feuil1.Range("A1:A30")

    For Each Cellule In Plage.Cells
      If Cellule < Now() Then
        Cellule.EntireRow.Delete
      End If
    Next

End Sub

Le problème est qu'il y a un décalage des cellules, ce qu'il fait qu'il faut que le code s’exécute plusieurs fois avant que cela ne fonctionne. Comment faire ?

Merci !

Bonjour Zelos, bonjour le forum,

Quand il s'agit de supprimer des lignes il faut toujours faire une boucle inversée de la dernière ligne à la première. Ton code devient :

Private Sub CommandButton1_Click()
Dim I  As Byte

For I = 30 To 1 Step -1
    If Cells(I, 1) < Now Then Rows(I).Delete
Next
End Sub

Salut Zelos, Thau Thème,

même idée, même conseil, évidemment!

A+

349datesanterieures.xlsm (17.86 Ko)

Super ! Merci pour la rapidité de votre réponse

Rechercher des sujets similaires à "suppression lignes condition vba"