[VBA Excel] parcourir cellules sur une autre feuille

Signaler
Messages postés
36
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 juin 2009
-
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
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

Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
4
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
Messages postés
36
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 juin 2009

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 ???
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
4
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
16
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