La comparaison des classeurs n’est utile que pour les classeurs avec une structure similaire. Par exemple, si vous voulez savoir où se trouvent les différences entre deux classeurs qui semblent complètement identiques, vous pouvez utiliser la solution de macro suivante. Écrivez les différences dans la fenêtre immédiate.
Sub ComparerLesClasseurs () Dim Classeur1, Classeur2 As Workbook Dim mafeuille As Worksheet Dim mescellules As Object Dim s As String Set Classeur1 = ThisWorkbook Set Classeur2 = Workbooks(2) For Each mafeuille In ThisWorkbook.Worksheets mafeuille.Activate s = mafeuille.Name For Each mescellules In mafeuille.UsedRange If mescellules.Value <> _ Classeur2.Worksheets(s).Range(mescellules.Address).Value Then mescellules.Activate Debug.Print "Unterschied in Zelle " & _ mescellules.Address & " sur la feuille de calcul " & _ Sheets(s).Name End If Next mescellules Next mafeuille End Sub
Figure : Déterminez les valeurs maximales de plusieurs fichiers
La condition préalable au bon fonctionnement de la solution est que vous ayez ouvert les deux classeurs et que les noms de table soient identiques. Le classeur actuel est comparé au deuxième classeur en arrière-plan. Le classeur qui a été ouvert en premier a l’index 1, le classeur qui est ouvert par la suite reçoit la valeur d’index 2. Vous avez maintenant besoin de deux boucles For Next. L’un est responsable des feuilles de tableau individuelles et l’autre des cellules de la zone utilisée. Dans la première boucle, vous déterminez d’abord la zone utilisée via la propriété UsedRange et comparez les lignes utilisées dans les deux classeurs. Si une différence est trouvée, la cellule appropriée doit être positionnée de sorte que l’adresse de cellule correcte puisse être sortie dans la fenêtre directe.