For i=1
Résolu
Gawenronne
Messages postés
248
Date d'inscription
Statut
Membre
Dernière intervention
-
Gawenronne Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Gawenronne Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un gros trou de mémoire pour les boucle en VBA.
Je cherche à faire une boucle for i=1 to 10
si la colonne (E, i) = "XXXX" then 'supprimer la ligne en question
else 'ne rien faire
end if
next i
Merci à vous pour l'aide apporté, ca fait déjà pas mal de temps que je ram la dessu alors que c'est tout bête -_- et pas moyen de mettre en corrélation toute les info que je trouve pour faire la macro compléte.
J'ai un gros trou de mémoire pour les boucle en VBA.
Je cherche à faire une boucle for i=1 to 10
si la colonne (E, i) = "XXXX" then 'supprimer la ligne en question
else 'ne rien faire
end if
next i
Merci à vous pour l'aide apporté, ca fait déjà pas mal de temps que je ram la dessu alors que c'est tout bête -_- et pas moyen de mettre en corrélation toute les info que je trouve pour faire la macro compléte.
A voir également:
- For i=1
- Downloader for pc - Télécharger - Téléchargement & Transfert
- I showkeyplus - Télécharger - Utilitaires
- O ou i pour allumer - Forum Facebook
- I sans point - Forum Windows
- Idm for mac - Télécharger - Téléchargement & Transfert
2 réponses
Salut,
C'est presque ça...
Seulement, ce code ne fonctionnera pas de manière optimale...
Supposons, pour l'exemple que tes lignes 5 et 6 correspondent au test (E5 = E6 = "XXX")
Quand i = 5, la ligne 5 est supprimée. La ligne 6 devient donc la ligne 5. Next i attribue la valeur 6 à i, donc l'ancienne ligne 6, qui réponds oui au test, ne sera pas traitée car elle porte maintenant le n° 5.
Ok?
Pour remédier à cela, il te faut inverser ta boucle en commençant par la fin. Comme ceci :
C'est presque ça...
Dim i As Long For i = 1 To 10 If Sheets("Feuil1").Range("E" & i).Value = "XXX" Then Rows(i).Delete Next
Seulement, ce code ne fonctionnera pas de manière optimale...
Supposons, pour l'exemple que tes lignes 5 et 6 correspondent au test (E5 = E6 = "XXX")
Quand i = 5, la ligne 5 est supprimée. La ligne 6 devient donc la ligne 5. Next i attribue la valeur 6 à i, donc l'ancienne ligne 6, qui réponds oui au test, ne sera pas traitée car elle porte maintenant le n° 5.
Ok?
Pour remédier à cela, il te faut inverser ta boucle en commençant par la fin. Comme ceci :
Dim i As Long For i = 10 To 1 Step - 1 If Sheets("Feuil1").Range("E" & i).Value = "XXX" Then Rows(i).Delete Next