Problème lors de la suppression de lignes VBA
2pax.cruz
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis en train de travailler sous VBA et j'ai un soucis.
Je dois supprimer les lignes qui ne commencent pas par un point.
J'ai fais cela :
For i = 1 To 250
If Not Cells(i, 1) Like ".*" Then
Cells(i, 1).Delete
End If
Next i
Le seul soucis, c'est qu'il reste encore des lignes qui ne sont pas correctes.
En fait, je crois que c'est du au fait qu'il remonte les lignes à chaque fois. Je m'explique.
Il analyse la ligne 1 : imaginons qu'elle soit mauvaise, il la supprime. Donc tout remonte d'une ligne.
Il analyse ensuite la ligne 2. Mais ce qui était auparavant dans la ligne 2 est dorénavant dans la ligne 1. Donc il n'a pas analysé cela.
Je sais pas si c'est compréhensible.
Comment faire?
Merci.
je suis en train de travailler sous VBA et j'ai un soucis.
Je dois supprimer les lignes qui ne commencent pas par un point.
J'ai fais cela :
For i = 1 To 250
If Not Cells(i, 1) Like ".*" Then
Cells(i, 1).Delete
End If
Next i
Le seul soucis, c'est qu'il reste encore des lignes qui ne sont pas correctes.
En fait, je crois que c'est du au fait qu'il remonte les lignes à chaque fois. Je m'explique.
Il analyse la ligne 1 : imaginons qu'elle soit mauvaise, il la supprime. Donc tout remonte d'une ligne.
Il analyse ensuite la ligne 2. Mais ce qui était auparavant dans la ligne 2 est dorénavant dans la ligne 1. Donc il n'a pas analysé cela.
Je sais pas si c'est compréhensible.
Comment faire?
Merci.
A voir également:
- Problème lors de la suppression de lignes VBA
- Forcer la suppression d'un fichier - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Suppression compte gmail - Guide
- Formulaire en ligne de meta - Guide
2 réponses
Bonjour,
Il faut décrémenté i de 1 si la ligne est supprimée. Il faut également sortir de la boucle dès qu'une cellule en A est vide, sous peine de faire une boucle infinie:
;o)
Il faut décrémenté i de 1 si la ligne est supprimée. Il faut également sortir de la boucle dès qu'une cellule en A est vide, sous peine de faire une boucle infinie:
For i = 1 To 250 If Cells(i,1).Value = "" Then Exit For If Not Cells(i, 1) Like ".*" Then Cells(i, 1).Delete i = i - 1 End If Next i
;o)