cs_simplementyann
Messages postés26Date d'inscriptionmercredi 19 janvier 2005StatutMembreDernière intervention30 mai 2007
-
5 mai 2007 à 17:55
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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 ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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