Code VBA marche pas du 1er coup mais du 2ème
Résolu/Fermé
Maxi
-
4 juil. 2012 à 16:56
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 19 mai 2024 - 4 juil. 2012 à 18:38
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 19 mai 2024 - 4 juil. 2012 à 18:38
A voir également:
- Code VBA marche pas du 1er coup mais du 2ème
- Voici du code ascii : - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code renvoi ooredoo ✓ - Forum Mobile
- 1er clavier - Forum Gravure
2 réponses
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 mai 2024
7 217
Modifié par eriiic le 4/07/2012 à 17:42
Modifié par eriiic le 4/07/2012 à 17:42
Bonjour,
Ben commence par le 2ème coup ! ;-)
Quand on supprimme des lignes il faut faire la boucle en partant du bas.
Sinon lorsque tu supprime la ligne 10, au next suivant tu passes à la 11. Qui est en fait l'ancienne 12 remontée d'un cran et tu as raté l'ancienne 11.
Donc :
For i = 3001 to 55 step -1
eric
PS:
derlig = Wbk.Worksheets("MasterSheet").Cells(rows.count, 2).end(xlup).row
te donne la dernière ligne utilisée de la colonne 2.
Si la colonne B est remplie jusqu'à la dernière donnée tu peux boucler que sur les lignes nécessaires et non 3000 lignes à chaque fois.
Et la méthode .find est plus rapide pour rechercher des données (voir l'aide excel)
Ben commence par le 2ème coup ! ;-)
Quand on supprimme des lignes il faut faire la boucle en partant du bas.
Sinon lorsque tu supprime la ligne 10, au next suivant tu passes à la 11. Qui est en fait l'ancienne 12 remontée d'un cran et tu as raté l'ancienne 11.
Donc :
For i = 3001 to 55 step -1
eric
PS:
derlig = Wbk.Worksheets("MasterSheet").Cells(rows.count, 2).end(xlup).row
te donne la dernière ligne utilisée de la colonne 2.
Si la colonne B est remplie jusqu'à la dernière donnée tu peux boucler que sur les lignes nécessaires et non 3000 lignes à chaque fois.
Et la méthode .find est plus rapide pour rechercher des données (voir l'aide excel)
Merci beaucoup pour ces éclaircissement eriiic! C'est vrai que je n'avais pas pensé aux lignes qui "remontent".
J'avais regardé pour la fonction find mais si ma cellule ne contenait pas le mot seul dans la cellule, il ne le trouvait pas...
J'avais regardé pour la fonction find mais si ma cellule ne contenait pas le mot seul dans la cellule, il ne le trouvait pas...
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 mai 2024
7 217
Modifié par eriiic le 4/07/2012 à 18:41
Modifié par eriiic le 4/07/2012 à 18:41
il faut utiliser le paramètre lookat :
Set a = [A:A].Find("mot", LookIn:=xlValues, LookAt:=xlPart)
Mais comme xlPart est la valeur par défaut ça m'étonne...
Tu avais dû l'utiliser avec xlWhole avant et la valeur du paramètre est conservée...
eric
Set a = [A:A].Find("mot", LookIn:=xlValues, LookAt:=xlPart)
Mais comme xlPart est la valeur par défaut ça m'étonne...
Tu avais dû l'utiliser avec xlWhole avant et la valeur du paramètre est conservée...
eric