Vba - suppresion de ligne sous contrainte

Fermé
Vbebe - 10 sept. 2013 à 17:04
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 11 sept. 2013 à 07:03
Bonjour,

Je suis novice en VBA, et j'essaie toujours de trouver moi-meme avant de demander. La je bloque.
Je dois supprimer les lignes d'un tableau dont au moins une des cellules contient "Doc Type". Voici mon code :

Sub SupQdDocType()
Dim i As Integer
For i = 1 To 4000
If Cells(i, 2) = "Doc Type" Then
EntireRow(i).Delete
i = i - 1
End If
Next
End Sub


Il ne marche pas. Help please ?

A voir également:

2 réponses

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
10 sept. 2013 à 17:33
Bonjour,

remplaces ton code par :

Sub SupQdDocType()
Dim i As Integer
For i = 1 To 4000
If Cells(i, 2) = "Doc Type" Then
rows(i).Delete 'au lieu de entirerow
i = i - 1
End If
Next
End Sub
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 11/09/2013 à 07:04
Bonjour,

ton pb vient de ce que tu vas de 1 à 4000 lorsque que tu supprimes une ligne par Ex la ligne 25 la ligne 26 devient 25 ce qui pose problème (d'où ton i=i-1)

donc essaies
for cptr=4000 to 1 step -1
If Cells(i, 2) = "Doc Type" Then Rows(cptr).Delete
Next

et en début de macro après les déclarations
Application.screenupdating=false
figera le défilement de l'écran et te fera gagner un temps fou

Michel
0