Comparer 2 tableurs

Bonjour,

Pour une fois, l'exposé est simple à faire.

J'ai un tableur "maitre" géré par le secrétaire d'une association qui en fait une copie au trésorier.

Au départ, il s'agit donc de 2 tableurs dont les éléments sont identiques.

Le trésorier est susceptible d'actualiser des éléments au moment de l’encaissement de cotisations...

QUESTION : comment mettre en place un "comparateur" ou un "détecteur de différences" entre ces 2 tableurs ?

Je joins un tableur mettant côte à côte les éléments "secrétaire/trésorier" sachant que la réalité ils sont sur des tableurs différents.

Idée ? Je pensais lancer une recherche par nom puis une comparaison par ligne mais je ne réussis pas à la mettre en musique

Cordialement

Bonjour

Au lieu de comparer les deux tableaux, pourquoi ne pas envisager d’aller copier le tabeau maître et de le coller sur une feuille du deuxième fichier ?

A te relire.

bonjour

meilleurs voeux

un essai avec une mfc globale ;je vais voir pour vraiment cibler

cordialement

21tonton-2015.zip (16.56 Ko)

Bonjour,

J'avais omis de cocher "m'avertir si une réponse est postée".....

Donc je découvre à l'instant et je vais voir....

Excellente journée

Bonjour,

Je reviens ici au sujet de ce post.

En effet, la formule proposée permet de vérifier tout un ensemble de lignes.

Toutefois, ceci a l'inconvénient d'être dans l'obligation de chercher ensuite dans quelle colonne se trouve l’erreur.... et quand il y en a plus de 20 dans le tableur réel....

J'ai donc fait la même chose par colonne cf tableur "association 2".....et où voit tout de suite où cela ne va pas.

mais je pense que l'on peut faire mieux c'est à dire avoir dans le tableur proprement dit une alerte de différence par un affichage d'un fond de couleur via.... et là je ne sais pas de trop

Cordialement

Bonsoir le forum,

Toutes les comparaisons s'effectue dans la feuille "Secretaire"

  • communs et non communs à côté du tableau initial.
  • surlignage des différences, comme demandé.
Option Explicit

Sub Comparaison()
Dim a, i As Long, j As Long, dico As Object, x As Range
    Application.ScreenUpdating = False
    Set dico = CreateObject("Scripting.Dictionary")
    With Sheets("Tresorier").Cells(1).CurrentRegion
        For i = 1 To .Rows.Count
            dico(.Cells(i, 1).Value) = .Rows(i).Value
        Next
    End With
    With Sheets("Secretaire").Cells(1).CurrentRegion
        .Offset(1).Resize(.Rows.Count - 1, .Columns.Count).Interior.ColorIndex = xlNone
        .Offset(, .Columns.Count + 1).EntireColumn.Clear
        For i = 1 To .Rows.Count
            If dico.exists(.Cells(i, 1).Value) Then
                For j = 2 To .Columns.Count
                    If .Cells(i, j).Value <> dico(.Cells(i, 1).Value)(1, j) Then
                        If x Is Nothing Then
                            Set x = .Cells(i, j)
                        Else
                            Set x = Union(x, .Cells(i, j))
                        End If
                    End If
                Next
                .Rows(i).Offset(, .Columns.Count + 1).Value = dico(.Cells(i, 1).Value)
                dico.Remove .Cells(i, 1).Value
            End If
        Next
        If Not x Is Nothing Then x.Interior.ColorIndex = 43
        With .Offset(, .Columns.Count + 1).EntireColumn
            With .Rows(1)
                .Interior.ColorIndex = 36
                .Borders(xlInsideVertical).Weight = xlThin
                .BorderAround Weight:=xlThin
            End With
            .Font.Name = "calibri"
            .Font.Size = 10
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .Columns.AutoFit
        End With
        If dico.Count > 0 Then
            With .Offset(.Rows.Count + 1, .Columns.Count + 1).Resize(dico.Count)
                .Value = Application.Transpose(Application.Transpose(dico.items))
                .Borders(xlInsideVertical).Weight = xlThin
                .BorderAround Weight:=xlThin
            End With
        End If
    End With
    Application.ScreenUpdating = True
End Sub

klin89

Bonsoir,

Bravo pour ce code qui correspond exactement à ce que je recherchais : c'est plus facile de voir immédiatement les cellules différentes par la présence d'une couleur.

Pour l'application sur d'autres feuilles "identiques en terme de structure", il suffit juste de changer les noms de feuilles dans le code ?

Cordialement

Tonthon

Rechercher des sujets similaires à "comparer tableurs"