comparaison du contenu de 2 feuilles de 2 fichiers différents

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 !

pierreauber

XLDnaute Nouveau
Bonjour,
je souhaite réaliser une macro de comparaison entre deux feuilles(sheet1 et sheet 2) de deux fichiers différents(worksheet1 et worksheet2) et qui irait copier les données trouvées dans sheet1 non présentes dans sheet 2, dans une troisième feuille(sheet 3) se trouvant dans le classeur worksheet2.

Voila ce que j'ai essayé, mais cette macro me copie les données de sheet1 en intégralité dans sheet 3.

Pour info, les deux fichiers sont déjà ouverts avant le démarage de la macro.

Sub comparaison ()
Dim x as string
dim y as string
dim j as integer
dim i as integer

x="workbook1.xls"
y="workbook2.xls"

dim test1 as worksheet, test2 as worksheet
dim c as range

set test1=workbooks(x).sheets("sheet1")
set test2=workbooks(y).sheets("sheet2")

dernierelignesheet1 = test1.Range("L65536").End(xlUp).Row
dernierelignesheet2 = test2.Range("L65536").End(xlUp).Row

For i = 1 To dernierelignesheet1
test1.Activate
Set c = Range("A1 : A" & dernierelignetest1).Cells.Find(test2.Range("A" & i), LookIn:=xlValues)

If Not c Is Nothing Then test1.Range("A" & i).EntireRow.Copy

Workbooks(y).Worksheets("sheet3").Activate
j = 1
While Cells(j, 1) <> ""
j = j + 1
Wend
Cells(j, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Next i

Set test1 = Nothing
Set test2 = Nothing
End If

End Sub

Merci beaucoup si vous pouvez trouver la solution, je galère vraiment avec cette macro
 
Re : comparaison du contenu de 2 feuilles de 2 fichiers différents

bonjour pierreauber et bienvenue sur le forum,

je t'ai fait un exemple dans le fichier zip.
il contient 2 classeurs :
- classeur1.xls qui contient les données "récentes"
- classeur2.xls qui ne contient donc pas toutes les données de classeur1.xls

Rque: il aurait été intéressant que tu nous fournisses cette base de travail 😉

la macro est dans classeur2.xls, elle fait le bilan des diférences entre les feuilles des 2 classeurs dans une autre feuille (de classeur2.xls).
Code:
Public Sub test()
Dim classeurA As Workbook, classeurB As Workbook, cellule As Range, feuilleComparaison As Worksheet, compteur As Long

'initialiser les variables
Set classeurA = Application.Workbooks.Open(ThisWorkbook.Path & "\Classeur1.xls", , True)
Set classeurB = ThisWorkbook
Set feuilleComparaison = classeurB.Sheets("Feuil2")
compteur = 0

'nettoyer la feuille de comparaison
feuilleComparaison.UsedRange.Clear

'boucler sur toutes les cellules utilisées de la feuille "Feuil1" du classeurA
For Each cellule In classeurA.Sheets("Feuil1").UsedRange.Cells
    'si la valeur est différente de la cellule correspondante de la feuille "Feuil1" du classeurB
    If cellule.Text <> classeurB.Sheets("Feuil1").Range(cellule.Address).Text Then
        'incrémenter le compteur
        compteur = compteur + 1
        'écrire dans la feuille de comparaison l'adresse de la cellule et la valeur de la cellule correspondante du classeurA
        feuilleComparaison.Range("A" & compteur) = Replace(cellule.Address, "$", "") & " : " & cellule.Text
    End If
Next cellule

'si il y a des cellules différentes, séléctionner la feuille de comparaison
If compteur <> 0 Then feuilleComparaison.Activate

'fermer le classeurA
classeurA.Close False

End Sub
dernière remarque, pour que la macro fonctionne tel quelle, il faut que les deux fichiers soient dans le même répertoire.


a+
 

Pièces jointes

Re : comparaison du contenu de 2 feuilles de 2 fichiers différents

Bonjour pierreauber et mromain,

@mromain

Si je voudrais ajouter une comparaison des attributs de cellule à ta procédure, comment devrais-je m'y prendre?

Je m'explique. J'ai une série de fichiers qui ont évolué dans le temps et les modifications ont été marquées par des changements de couleurs ou de police dans les cellules. Texte en rouge, barré, cellule en jaune, etc. Ce sont de très gros fichiers comprenant plus de 70 feuilles chacun. Le survol visuel en devient donc très pénible 😉

Merci de m'aider et bonne Journée
 
Re : comparaison du contenu de 2 feuilles de 2 fichiers différents

Bonjour à nouveau à tous,

Voir les fichiers dans la pièce jointe

J'ai réussi à refaire la comparaison de mromain pour toutes les feuilles de "Fichier A.xls" par rapport à "Fichier B.xls" et compiler les résultats dans la feuille "Résultats" du fichier de comparaison. J'aurais quelques interrogations:

1- Présentement, les 2 fichiers à comparer doivent être ouverts et leurs noms copiés dans les cellules B1 et B2 de la feuille Principale. Comment faire pour avoir un type de userform me permettant de choisir les fichiers dans les répertoires?

2- Je voudrais aussi faire la liste des changements d'attributs des cellules (couleur, police, etc.) mais ça dépasse mes connaissances. Quelqu'un aurait une piste ou une solution complète? 🙂

3- J'aimerais aussi que le fichier et son code et "sans failles". Commentaires et idées seraient les bienvenues.

Merci à l'avance
 

Pièces jointes

- 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
4
Affichages
177
Réponses
5
Affichages
236
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Réponses
3
Affichages
491
Retour