Vba - suppresion de ligne sous contrainte
Vbebe
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
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 ?
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:
- Vba - suppresion de ligne sous contrainte
- Partage de photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Formulaire en ligne de meta - Guide
- Site de vente en ligne particulier - Guide
2 réponses
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
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
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
et en début de macro après les déclarations
Michel
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=falsefigera le défilement de l'écran et te fera gagner un temps fou
Michel