I
icecream33
Guest
Bonjour à tous,
Voilà j'ai une macro qui compare deux fichiers excels (compare A1 du fichier 1 avec A1 du fichier 2 etc...) et j'ai plusieurs soucis:
-1)je voudrais que la macro compare toutes les feuilles du classeur les unes a la suite des autres car actuellement je dois la relancer autant de fois qu'il y de feuilles
2-)il faudrait que la macro puisse comparer les formules qu'il peut y avoir dans les cellules.
3-)cette macro ne fonctionne pas quand une cellule est vide cad que si B3 du fichier 1 est vide et que B3 du fichier 2 ne l'est pas, ça ne marche pas.
Donc si des ames charitables pouvaient y jeter un oeil ...
Sub Comparaison1()
Application.ScreenUpdating = False
Dim Collection1 As New Collection, collection2 As New Collection
Dim Cellule1 As Range, Cellule2 As Range
Dim Element1 As Object, Element2 As Object
Dim Time1 As Date, Time2 As Date
Workbooks("Classeur1.xls").Activate
For Each Cellule1 In Range("a1:k45")
Collection1.Add Cellule1
Next Cellule1
Workbooks("Classeur2.xls").Activate
For Each Cellule2 In Range("a1:k45")
collection2.Add Cellule2
Next Cellule2
For Each Element1 In Collection1
For Each Element2 In collection2
If Element1 <> Element2 Then
Element1.Font.Color = vbRed
Element1.Font.FontStyle = "gras"
Else
Element1.Font.Color = vbBlack
Exit For
End If
Next Element2
Next Element1
Application.ScreenUpdating = True
Workbooks("Classeur1.xls").Activate
End Sub
Voilà j'ai une macro qui compare deux fichiers excels (compare A1 du fichier 1 avec A1 du fichier 2 etc...) et j'ai plusieurs soucis:
-1)je voudrais que la macro compare toutes les feuilles du classeur les unes a la suite des autres car actuellement je dois la relancer autant de fois qu'il y de feuilles
2-)il faudrait que la macro puisse comparer les formules qu'il peut y avoir dans les cellules.
3-)cette macro ne fonctionne pas quand une cellule est vide cad que si B3 du fichier 1 est vide et que B3 du fichier 2 ne l'est pas, ça ne marche pas.
Donc si des ames charitables pouvaient y jeter un oeil ...
Sub Comparaison1()
Application.ScreenUpdating = False
Dim Collection1 As New Collection, collection2 As New Collection
Dim Cellule1 As Range, Cellule2 As Range
Dim Element1 As Object, Element2 As Object
Dim Time1 As Date, Time2 As Date
Workbooks("Classeur1.xls").Activate
For Each Cellule1 In Range("a1:k45")
Collection1.Add Cellule1
Next Cellule1
Workbooks("Classeur2.xls").Activate
For Each Cellule2 In Range("a1:k45")
collection2.Add Cellule2
Next Cellule2
For Each Element1 In Collection1
For Each Element2 In collection2
If Element1 <> Element2 Then
Element1.Font.Color = vbRed
Element1.Font.FontStyle = "gras"
Else
Element1.Font.Color = vbBlack
Exit For
End If
Next Element2
Next Element1
Application.ScreenUpdating = True
Workbooks("Classeur1.xls").Activate
End Sub