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

Comparer 2 onglets

David2Coree

XLDnaute Junior
Bonjour à tous,

J'aimerai avoir votre aide. Voilà mon problème est que j'ai un fichier où je dois faire la comparaison entre 2 onglets et sur le 3ème onglet je dois insérer les lignes qui ne sont pas présente soit dans l'onglet 1 ou 2(ci-joint mon fichier).
Y-aurait-il une macro ou une formule qui pourrait exécuter ce que j'aimerai faire ?
Merci pour vos réponses.
 

Pièces jointes

  • comparaison_profil.xls
    19.5 KB · Affichages: 46

mromain

XLDnaute Barbatruc
Re : Comparer 2 onglets

bonjour David2Coree,

voici une macro qui a l'air de répondre à tes attentes :
Code:
Sub check()
Dim source1 As Worksheet, source2 As Worksheet, dest As Worksheet
Dim i As Integer, j As Integer
Dim cellRecherche As Range
Dim existe As Boolean

Set source1 = ThisWorkbook.Sheets("Profil1")
Set source2 = ThisWorkbook.Sheets("Profil2")
Set dest = ThisWorkbook.Sheets("Comparaison")

With source1
    For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
        existe = True
        Set cellRecherche = source2.Columns(1).Find(.Range("A" & i), , xlValues, xlWhole)
        If cellRecherche Is Nothing Then
            existe = False
        Else
            For j = 1 To 3
                If .Range("A" & i).Offset(0, j) <> cellRecherche.Offset(0, j) Then existe = False
            Next j
        End If
        If Not existe Then .Range("A" & i).EntireRow.Copy dest.Range("A" & dest.Rows.Count).End(xlUp).Offset(1, 0)
    Next i
End With

With source2
    For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
        existe = True
        Set cellRecherche = source1.Columns(1).Find(.Range("A" & i), , xlValues, xlWhole)
        If cellRecherche Is Nothing Then
            existe = False
        Else
            For j = 1 To 3
                If .Range("A" & i).Offset(0, j) <> cellRecherche.Offset(0, j) Then existe = False
            Next j
        End If
        If Not existe Then .Range("A" & i).EntireRow.Copy dest.Range("A" & dest.Rows.Count).End(xlUp).Offset(1, 0)
    Next i
End With
End Sub

a+
 

CBernardT

XLDnaute Barbatruc
Re : Comparer 2 onglets

Bonjour David2Coree, mromain et pierrejean,

Même principe que mromain sans copier les lignes entières...

Cordialement

Bernard
 

Pièces jointes

  • ComparaisonProfilsV1.xls
    46 KB · Affichages: 55
Dernière édition:

David2Coree

XLDnaute Junior
Re : Comparer 2 onglets

Déjà, merci pour la rapidité de vos réponses à tous.
Je vais essayer d'appliquer vos différentes solutions dans l'après midi et je vous tiens au courant de la suite.
Merci encore.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…