[VBA Excel] parcourir cellules sur une autre feuille
outofbusiness
Messages postés36Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention 4 juin 2009
-
13 avril 2007 à 16:21
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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 ?
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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.
outofbusiness
Messages postés36Date d'inscriptiondimanche 2 février 2003StatutMembreDerniè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.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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 ^^
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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.