[VBA Excel] parcourir cellules sur une autre feuille

outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009 - 13 avril 2007 à 16:21
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 13 avril 2007 à 23:22
bonjour,

Je parcours les lignes d'une colonne de ma feuille (avec ce for : For j = 2 To Range("C2", Range("C2").End(xlDown)).Count )
et je voudrais, pour chaque valeur de cellule, comparer avec les valeurs des cellules d'une autre feuille du même classeur.

en gros, j'aurais la même boucle for mais qui parcours une autre feuille.

Ma question est donc comment on peut faire pour que le for parcoure l'autre feuille ?

merci pour vos réponses !

4 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
13 avril 2007 à 16:58
Pour faire référence à une autre feuille, il suffit de coller avant le range l'objet Worksheets.

Ce qui te donnerait :
Worksheets("Feuille1").Range("C2", Range("C2").End(xlDown)).Count
ou
Worksheets(1).Range("C2", Range("C2").End(xlDown)).Count si tu pérfères raisonner avec les index.

Molenn
0
outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009
13 avril 2007 à 17:12
hehe, j'ai pensé à ca déjà mais ca ne marche pas

en fait ca ne marche que si worksheets("feuille2") est la feuille active
or, si je sélectionne cette feuille comme active, l'indice de parcours de la 1ère feuille devient un indice pour feuille2.

cad : si mon indice de parcours de la première feuille est i, cells(i,2) n'aura plus la valeur de la feuille 1 une fois la feuille 2 activée.

merci quand même pour la réponse !!!

qqn aurait une autre idée please ???
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
13 avril 2007 à 18:07
Alors là, je peux te dire tout de suite qu'il n'y a pas besoin que la feuille soit active pour que cela fonctionne, je le fais à longueur de journée sans problème.
Attention, je parle bien de Worksheets et non de Sheets tout court qui lui, m'en pose souvent des problèmes.

Il faut bien voir que toi, ta boucle telle qu'elle est faite, tu dois rentrer plusieurs Worksheets (je viens de faire ce bout de code vite fait, intégrer dans un bouton de ma Feuil1:

Dim J As Integer
   
For J = 2 To Worksheets("Feuil2").Range(Worksheets("Feuil2").Range("C2"), Worksheets("Feuil2").Range("C2").End(xlDown)).Count
   MsgBox Worksheets("Feuil2").Range("C" & J).Value
Next J

Quand on fait référence à une cellule d'une autre feuille, il faut utiliser le Worksheets pour identifier TOUTES les composantes, et c'est bien ça qui est le plus chiant ^^

Molenn
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 avril 2007 à 23:22
Pourquoi dois-tu parcourir les 2 feuilles ?
Si c'est pour retrouver une valeur de Feuil1 dans Feuil2, tu n'as qu'à parcourir Feuil1 et utiliser Find pour rechercher dans Feuil2, sans devoir parcourir Feuil2 et sans devoir définir son nombre de lignes.

MPi
0
Rejoignez-nous