XL 2016 Création d'un fichier Analyse qui compare fichier Original et fichier Traité

Undersound

XLDnaute Nouveau
Bonjour à tous !

Tout d'abord je suis novice en VBA et j'ai repris le code d'une macro qui fait approximativement ce que je souhaiterais réaliser.. Je m'explique
J'ai un fichier_A (Original) avec une feuil1 et un fichier_B (Traité) avec une feuil1.
Je souhaiterais créer un fichier Analyse qui reprend la feuil1 du fichier traité et me mettre en évidence les cellules sur lesquels il y a une différence (fond jaune).
Je suis bloqué à l'étape ou je dois boucler Si Original <> Traité. Voici le code, j'ai une "erreur d'exécution 91" à la ligne 56. Sachant que je suis bloqué ici je n'ai pas continuer et c'est pour ça que je suis ici. Je sollicite votre aide mais je veux progresser ! Merci de m'aiguiller et de votre patience.

VB:
Sub Analyse_v2()
    
    
    Dim strRepFicA As String, strRepFicB As String, strRepFicAnalyse As String
    Dim wbFicA As Workbook, wbFicB As Workbook, wbFicAnalyse As Workbook, wbFicAna As Workbook
    Dim wsFicA As Worksheet, wsFicB As Worksheet, wsFicAnalyse As Worksheet, wsFicAna As Worksheet
    Dim lgLig As Long, lgCol As Long
    Dim lgLigDeb As Long
    
     ' Répertoire et Fichier
    strRepFicA = ThisWorkbook.Path & "\" & "Fichier_A.xlsx"
    strRepFicB = ThisWorkbook.Path & "\" & "Fichier_B.xlsx"
    strRepFicAnalyse = ThisWorkbook.Path & "\" & "Analyse.xlsx"

    ' Classeur d'analyse
    Set wbFicAna = ThisWorkbook
    Set wsFicAna = wbFicAna.ActiveSheet
    
    ' Vérifier que les fichiers A et B se trouvent dans le répertoire
    If Dir(strRepFicA) = "" Or Dir(strRepFicB) = "" Then
        MsgBox "Le fichier A et/ou le fichier B sont introuvables", vbCritical + vbOKOnly, "Problème de fichiers..."
        Exit Sub
    End If
    
    Application.ScreenUpdating = False
            
    ' Ouverture du fichier A et définition de la feuille de traitement
    Set wbFicA = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "Fichier_A.xlsx")
    Set wsFicA = wbFicA.Worksheets("Feuil1")
    
    ' Ouverture du fichier B et définition de la feuille de traitement
    Set wbFicB = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "Fichier_B.xlsx")
    Set wsFicB = wbFicB.Worksheets("Feuil1")
    
          
    
    ' Copier la feuil1 du fichier_A et création du fichier "Analyse"
                
        With ActiveWorkbook
                .SaveAs Filename:=("C:\Users\marcq_m1\OneDrive - Kingfisher PLC\Documents\Macro_Morgan\Analyse_V2") & "\Analyse.xlsx", FileFormat:=xlOpenXMLWorkbook
            Worksheets("Feuil1").Name = "Analyse"
        End With
        
          ' Première ligne d'affichage des résultats dans le fichier d'analyse
    lgLigDeb = 2
    
    ' Traitement des lignes des 2 fichiers
              
      
    ' Lignes : 2 à 125
    For lgLig = 2 To 125
    
        ' Colonnes : C à AZ
        For lgCol = 3 To 52
        
        XY_Analyse = wsFicAnalyse.Cells(lgLig, lgCol)
        XY_Fichier_A = wsFicA.Cells(lgLig, lgCol).Worksheets("Feuille1")
    
        
        
            ' Une différence est trouvée dans une ligne
            If wsFicAnalyse.Cells(lgLig, lgCol).Value <> wsFicA.Cells(lgLig, lgCol).Value Then
            ' Si différence mettre la cellule en jaune
            Selection.Interior.Color = RGB(174, 240, 194)
            
            
            lgLigDeb = lgLigDeb + 2
                
                Exit For
            End If
        Next lgCol
    Next lgLig

End Sub


De plus, je souhaiterais lors de la finalisation de ce code, améliorer également cette macro pour qu'elle puisse être dynamique selon le tableau. Bien sûr je souhaite également le faire à la suite du "debbugage" et seul dans un premier pas.
Merci d'avance !
 

Statistiques des forums

Discussions
314 749
Messages
2 112 463
Membres
111 556
dernier inscrit
Virgile Doridant