Bonjour,
Au sein d’une boucle FOR EACH portant sur des cellules, je supprime une ligne entière en fonction de la valeur de la cellule concernée. Mais lors de la commande NEXT, ce n’est plus la ligne suivante de la ligne supprimée (ligne +1) qui est testée mais la ligne +2.
Comment faire pour que le « compteur » de la boucle For Each tienne compte de la ligne supprimée ?
Merci
Baptiste
faute classique, il faut supprimer de bas en haut et donc utiliser l’index de la ligne au lieu des cellules. Pouvez-vous montrer votre macro ?
Bonjour,
Merci de votre retour.
Ci joint ma macro :
Set Zone = Range(Cells(2, 9), Cells(Derligne, 9))
For Each Cell In Zone
Cell.Activate
Cell.FormulaR1C1 = « =sum(RC[-1],RC[-2]) »
If Cell.Value = 0 Then
ActiveCell.EntireRow.Delete
End If
Next Cell
Merci !!
donc reculer de la ligne « derligne » vers ligne « 2 »
For i = derligne To 2 Step -1 'reculer de la dernièe ligne vers ligne 2
Set c = Cells(i, 9) 'avec cette cellule dans la colonne I
c.FormulaR1C1 = "=sum(RC[-1],RC[-2])"
If c.Value = 0 Then
c.EntireRow.Delete
End If
Next i
Merci !!
Compris pour le step