Comparaison Feuilles

Compare le contenu des cellules des les feuilles DIFF1 et DIFF2 d’un classeur.

La proc appelante :

Sub Traitement_Comparaison()
 » ***************************************************************************
 » Propos : Procédure Comparaison de feuilles Excel
 » Appel :
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
Dim résult As Long
‘ comparaison des feuilles Passé en paramétre
résult = comparaison_feuilles(« DIFF1 », « DIFF2 »)
‘   Sheets(« CompteRendu »).Cells(i, y).Value = résult &  » différence entre  » & NomSite & NomFic & « _avant et  » & NomSite & NomFic & « _apres »
ActiveSheet.Cells(1, 1).Select
End Sub

la fonction appelé.

Public Function comparaison_feuilles(F_Maitre, F_Esclave) As Long
 » ***************************************************************************
 » Propos : Procédure
 » Appel : Néant
 » Call by: Traitement_Comparaison
 » Ecrit : 17-Fev-2003 par Marco – MgInformatique
Dim der_lig_maitre, der_col_maitre, der_lig_esclav, der_col_esclav, L, x, C, lig, col As Long
Dim DIFFERENCE_FICHIER As Boolean
Dim mon_texte As String
comparaison_feuilles = 0
‘ récupération des dernieres lignes et colonnes utilisées
der_lig_maitre =  ActiveWorkbook.Sheets(F_Maitre).UsedRange.Rows.Count
der_col_maitre =  ActiveWorkbook.Sheets(F_Maitre).UsedRange.Columns.Count

der_lig_esclav =  ActiveWorkbook.Sheets(F_Esclave).UsedRange.Rows.Count
der_col_esclav =  ActiveWorkbook.Sheets(F_Esclave).UsedRange.Columns.Count
‘ on supprimme les annotations
ActiveWorkbook.Sheets(F_Maitre).Select
ActiveSheet.Range(Cells(1, 1), Cells(der_lig_maitre,  der_col_maitre)).ClearNotes
‘ on supprimme les couleurs de l’esclave
ActiveWorkbook.Sheets(F_Esclave).Select
ActiveSheet.Range(Cells(3, 1), Cells(der_lig_esclav,  der_col_esclav)).Interior.ColorIndex = xlNone
‘ on prend la plus grande des lignes
If der_lig_maitre = der_lig_esclav Then
L = der_lig_maitre
Else
x = affiche_info(mon_message:= »nombre de ligne différentes »,  type_message:= »I »)
DIFFERENCE_FICHIER = True
If der_lig_maitre > der_lig_esclav Then
L = der_lig_maitre
Else
L = der_lig_esclav
End If
End If
‘ on prend la plus grande des colonnes
If der_col_maitre = der_col_esclav Then
C = der_col_maitre
Else
x = affiche_info(mon_message:= »nombre de Colonnes différentes », type_message:= »I »)
DIFFERENCE_FICHIER = True
If der_col_maitre > der_col_esclav Then
C = der_col_maitre
Else
C = der_col_esclav
End If
End If
For lig = 1 To L
For col = 1 To C
If ActiveWorkbook.Sheets(F_Maitre).Cells(lig, col).Value <> _
ActiveWorkbook.Sheets(F_Esclave).Cells(lig, col).Value Then
ActiveWorkbook.Sheets(F_Esclave).Cells(lig, col).Interior.ColorIndex = 4
mon_texte = ActiveWorkbook.Sheets(F_Esclave).Cells(lig, col).Value
ActiveWorkbook.Sheets(F_Maitre).Cells(lig, col).NoteText Text:=mon_texte, Start:=1
DIFFERENCE_FICHIER = True
comparaison_feuilles = comparaison_feuilles + 1
End If
Next col
Next lig
End Function