Mémoriser plusieurs cellules dans 1 variable ?

cs_simplementyann Messages postés 26 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 30 mai 2007 - 5 mai 2007 à 17:55
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 6 mai 2007 à 03:00
Problème :


Comparer retrouver une série de cellules d'un fichier Excel  ("A1:R10")
dans un autre fichier ("A1:R999") ?

 Est-il possible de les comparer en se servant d'une variable qui identifierait ("A1:R10") ?

 Faut-il se servir d'une boucle Do Loop avec Cells(I,1) ou range((cells(I,1),cells(I,10))  ?
     Faut-il imbriquer un Select Case ?

Cordialement,

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 mai 2007 à 00:32
Salut
Personnellement, je m'attacherais à trouver l'occurence de la première cellule dans l'autre fichier.
En effet, tu peux utiliser une énumérer du contenu des cellules de l'autre fichier grace à un Do-Loop ou un For-Next
Le VBA de Excel doit permettre d'utiliser des fonctions de recherche propres au langage, il suffit d'enregistrer une macro pendant laquelle tu utilises le menu "Edition, Rechercher" puis de modifier la-les instructions générées pour les paramétrer dans ton programme. Ce sera surement plus efficace.
Une fois la cellule repérée, je lancerai une boucle de lecture (For-Next) des cellules sources suivantes et je les comparerai une à une avec les cellules qui suivent la première cellule cohérente trouvée (For-Next).
Oui, pour identifier une cellule, il te faut deux variables I et J pour colonne et ligne.

Voilà mes idées sur la question.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 mai 2007 à 03:00
Si tu as une valeur unique dans une des colonnes (comme un code de produit), tu peux utiliser Find pour trouver cette valeur dans l'autre feuille (autre classeur)

Si les valeurs sont répétitives mais que tu veux retrouver une ligne de données identique, il te faudrait utiliser Find pour trouver l'occurrence d'une valeur "stable" comme un code, puis utiliser une boucle sur cette ligne pour vérifier que toute la ligne est identique... Si elle ne l'est pas, tu utilises FindNext pour trouver l'occurrence sauivante.

Mais tu ne peux pas, à ce que je sache, intégrer une ligne de données dans une variable, sans passer par un tableau, ce qui reviendrait à faire ce que je disais précédemment.

Un peu plus de précision serait préférable pur une meilleure réponse

MPi
0
Rejoignez-nous