Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Identifier donées communes à 2 fichiers

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J-Charles

XLDnaute Occasionnel
Bonjour à tous,

Je travaille sur 2 fichiers excel que je vais nommer Fichier1 et Fichier2 et sur chacun se trouve 1 tableau à plusieurs colonnes.
J'aimerais à l'aide d'une macro identifier les données qui se trouvent dans la colonne A du Fichier1 mais également dans la colonne A du Fichier2 pour apparaitre dans un Msgbox.
J'ai bidouiller à l'aide de la fonction EQUIV une commande mais je n'obtiens qu'un résultat à la fois. J'aimerais si possible obtenir en une fois la liste des données communes aux 2 fichiers pour la colonneA
Je vous remercie d'avance pour votre aide.
 
Re : Identifier donées communes à 2 fichiers

bonjour

j'espère que cet exemple pourra t'aider.
les deux classeurs sont supposés ouverts. la recherche est effectuée dans les feuilles actives . il te restera à adapter les plages de cellules :


Code:
Sub ListeDoublonsDeuxTableaux()
Dim Wb1 As Workbook, Wb2 As Workbook
Dim Cell As Range
Dim Cible As Range
Dim Tableau()
Dim X As Byte, Y As Byte, Z As Byte, i As Byte
Dim Resultat As String, FirstAddress As String
 
'Définit les classeurs (supposés ouverts)
Set Wb1 = Workbooks("Classeur1.xls")
Set Wb2 = Workbooks("Classeur2.xls")
 
'Boucle sur les données de la feuille active dans le premier classeur
For Each Cell In Wb1.ActiveSheet.Range("A1:A10")
    Z = 0
    
    'Effectue la recherche dans le deuxième classeur
    With Wb2.ActiveSheet.Range("A1:A20")
        Set Cible = .Find(Cell, LookIn:=xlValues, lookAt:=xlWhole)
        'Si une donnée est trouvée
        If Not Cible Is Nothing Then
            
            FirstAddress = Cible.Address
            X = X + 1
            ReDim Preserve Tableau(1 To 2, 1 To X)
            
            Do
                Cible.Select
                Z = Z + 1
                Set Cible = .FindNext(After:=ActiveCell)
            'Recherche d'autres données identiques
            Loop While Not Cell Is Nothing And _
                Cible.Address <> FirstAddress
            
            'Alimente le tableau de résultat
            Tableau(1, X) = Cible
            Tableau(2, X) = Z
            Y = Y + Z
        End If
    End With
Next Cell
 
'affiche le résultat de la comparaison
Resultat = "Il y a " & Y & " données communes entre les deux tableaux  . " _
    & Chr(10) & Chr(10)
For i = LBound(Tableau(), 2) To UBound(Tableau(), 2)
Resultat = Resultat & Tableau(1, i) & Chr(9) & _
    Tableau(2, i) & " fois" & Chr(10)
Next i
 
MsgBox Resultat
End Sub



bonne soirée
michel
Microsoft Excel MVP
 
Re : Identifier donées communes à 2 fichiers

Salut Michel

Tout d'abord merci de t'être penché sur mon problème. J'ai toutefois une erreur d'exécution 1004:"La méthode Select de la classe Range a échoué" au niveau de : Cible.select.
Aurais tu une petite idée ??
Encore merci et bonne journée.
 
Re : Identifier donées communes à 2 fichiers

Bonjour Michel,

Tout d'abord excuse moi du retard de ma réponse, mais je n'ai pu travailler sur mon fichier que ce week-end.
Merci mille fois pour tes lignes de commandes qui me rendent un grand service, en faisant progresser mon application ainsi que mes connaissances. Heureusement qu'il y a des gens comme toi sur ce forum, car depuis que j'y fais appel, j'ai la nette impression d'avoir progresser.​
Encore merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
346
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…