Comparaison de données dans 2 fichiers distincts

brounch

XLDnaute Nouveau
Bonjour à toutes et à tous,

J'ai un petit problème en ce moment sur excel pour lier deux fichiers différents. Dans mon fichier A, je dois faire une sélection de références dans une colonne.

Mon fichier B comporte les mêmes références, mais celles-ci ne sont pas dans le même ordre. Le but ici est donc de trouver un moyen pour qu'une macro me renvoie les lignes où se trouvent dans mon fichier B, les quelques références que j'ai sélectionné dans mon fichier A.

Je crois savoir qu'il est possible de faire ça avec la fonction MATCH, mais je n'arrive pas à la faire fonction entre deux fichiers, et avec une sélection qui n'est pas forcément une plage type A1:G13, mais plutôt, sur une même colonne mais à des lignes différentes.

Merci d'avance à vous,

Bruno
 

vgendron

XLDnaute Barbatruc
Re : Comparaison de données dans 2 fichiers distincts

normal
cette syntaxe fait comprendre à Excel qu'il doit travailler dans le fichier en cours, celui qui est activé à l'écran.. et la. c'est le fichier A

pour le faire travailler dans le fichier B, il faut cette syntaxe: avec un point

Cells(val.Row, 3) = c 'dans le fichier en cours A
.Cells(val.Row, 1).Interior.ColorIndex = 4 'dans le fichier B

le point est une sorte de raccourci qui remplace: With Workbooks("fichierB.xlsx").Sheets("Sheet1").Range("D:D")
 

brounch

XLDnaute Nouveau
Re : Comparaison de données dans 2 fichiers distincts

Ok, ça marche parfaitement, juste je comprends pas le problème précédent avec les noms de mes fichiers réels...

avec fichierA et fichierB pourtant ça marche nikel...
 

vgendron

XLDnaute Barbatruc
Re : Comparaison de données dans 2 fichiers distincts

Vérifie juste le nom de tes feuilles.. par exemple. un espace dans le nom. en début ou fin.. souvent, on ne les voit pas et ....
voire meme un caractère spécail qu'excel n'aime pas..
 

brounch

XLDnaute Nouveau
Re : Comparaison de données dans 2 fichiers distincts

J'ai essayé avec 2 autres fichiers, ça marche très bien. Je ressaierais avec les précédents pour essayer de résoudre le problème mais bon, ça devrait le faire pour l'instant !

Merci infiniment pour ton aide et bonne journée :)
 

brounch

XLDnaute Nouveau
Re : Comparaison de données dans 2 fichiers distincts

Re Bonjour,

Je rencontre un problème avec la macro développée précédemment: mon fichier maitre où je sélectionne mes cellules comporte 301 ligne, et mon fichier esclave où je suis sensé trouver et remplir en vert les cellules, en comporte 412. Du coup, quand je lance ma recherche, il s'arrête à la coloration des 301 première lignes.

C'est à dire que, si la 301 ème référence de mon fichier maitre (donc la dernière) se trouve à la ligne 399 de mon fichier esclave, la cellule n'est pas remplie. Alors que les deux fichiers ont bien la même référence...

Edit: Et en plus de ça, il me trouve dans le fichier esclave, des références qui ne sont pas dans le fichiers maitre....
 
Dernière édition:

brounch

XLDnaute Nouveau
Re : Comparaison de données dans 2 fichiers distincts

Re bonjour,

Aujourd'hui j'ai fais des tonnes de vérification avec la macro que nous avions mis au point dans les messages précédents, mais celle-ci n'est pas du tout fiable. Elle va bien chercher des valeurs du fichier A vers le fichier B mais le problème est qu'elle ne colore pas du tout les bonnes cellules.

Quelques cellules sont bonnes, mais d'autres qui sont dans le fichier A ne sont pas colorées dans le fichier B, ou encore, des cellules qui ne sont pas dans le fichier A sont colorées dans le fichier B.

Je ne comprends plus rien...
 

vgendron

XLDnaute Barbatruc
Re : Comparaison de données dans 2 fichiers distincts

Salut

je viens de regarder.. et effectivement.. parfois;. il fait n'importe quoi.. enfin..c'est ce qu'on croit..
en fait.. il fait bien ce qu'on lui demande.. à savoir
la méthode Find recherche la première valeur 9 dans la colonne D..
et...quand il voit 19.. et bien.. il a trouvé la valeur 9..

il faut donc préciser qu'on recherche la valeur Exacte.. et pour cela il faut écrire:

Code:
Set trouve = .Find(ValEnCours, lookat:=xlWhole)

ca devrait mieux aller.. ;-)
 

vgendron

XLDnaute Barbatruc
Re : Comparaison de données dans 2 fichiers distincts

et pour le problème de coloration...je n'avais pas mis la bonne référence de ligne..

Code:
Sub cherche()

Dim val As Range

'sélection des différentes valeurs par l'utilisateur
Set ValeursCherchées = Application.InputBox("selectionnez la ou les ligne(s) à chercher", Type:=8)

'parcours de la selection pour rechercher chaque valeur
For Each val In ValeursCherchées
    ValEnCours = val.Value
    'affichage juste pour control de la valeur cherchée
    MsgBox ("on cherche la présence de la valeur: ") & ValEnCours
    
    With Workbooks("fichierB.xlsx").Sheets("Sheet1").Range("D:D")
        Set trouve = .Find(ValEnCours, lookat:=xlWhole)
        If Not trouve Is Nothing Then
            c = trouve.Row
            'affichage de la ligne où a été trouvée la valeur dans le fichier B
            'MsgBox ("la valeur cherchée est trouvée en ligne: ") & c
            Cells(val.Row, 3) = c
            .Cells(c, 1).Interior.ColorIndex = 4
        Else: MsgBox ("la valeur " & ValEnCours & " n'existe pas dans le fichier")
        End If
    End With
Next val
End Sub
 

brounch

XLDnaute Nouveau
Re : Comparaison de données dans 2 fichiers distincts

Salut Vgendron,

merci d'avoir jeté de nouveau un oeil à mon problème.

Effectivement je pense que le morceau de code que tu as modifié peut jouer un rôle dans la recherche, cela-dit je pense que le problème viens également de la coloration. Parce que le problème est toujours le même, la macro me colore des cellules dans mon fichier B qui ne sont toujours pas présente dans mon fichier A...

Et pareil, la coloration ne va jamais dans mon fichier B jusqu'à la ligne 412, elle s'arrête toujours à la ligne 301 (le nombre de lignes de mon fichier A). Je me demande si avec un autre moyen de mise en évidence, le problème serait le même.
 

brounch

XLDnaute Nouveau
Re : Comparaison de données dans 2 fichiers distincts

Ah mais je n'avais pas vu ton second message avec la modification du code ! Normalement, ça marche parfaitement ! Je met simplement une toute petite réserve, je vais tester avec ma collègue tout à l'heure et je te confirme ça.

Merci mille fois !
 

Discussions similaires

Réponses
6
Affichages
273

Statistiques des forums

Discussions
312 548
Messages
2 089 496
Membres
104 191
dernier inscrit
joh30