IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comparer deux fichiers excel [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Par défaut Comparer deux fichiers excel
    Bonsoir,

    j’essaie de faire une macro qui compare et affiche les différences entre deux fichiers excel.

    J'en suis au code suivant qui à partir d'un fichier A et B de structure identique m'affiche les différences si une valeur à était modifier entre le fichier A et B

    Mais je voudrais rajouter la ligne en question dans la colonne B.

    Est-ce que vous savez comment rajouter cette info ?

    Cela me permettrai de savoir qu'il y a une différence entre le fichier A et B à la ligne 450 avec une valeur qui est passé de 25 dans la colonne D du fichier A à une valeur 22 dans la même colonne D du fichier B.

    Merci par avance pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    Option Explicit
     
    Private Sub cmdAnalyse_Click()
        Dim strRepFicA As String, strRepFicB As String
        Dim wbFicA As Workbook, wbFicB As Workbook, wbFicAna As Workbook
        Dim wsFicA As Worksheet, wsFicB 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.xls"
        strRepFicB = ThisWorkbook.Path & "\" & "Fichier B.xls"
     
        ' 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.xls")
        Set wsFicA = wbFicA.Worksheets("Fichier A")
     
        ' Ouverture du fichier B et définition de la feuille de traitement
        Set wbFicB = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "Fichier B.xls")
        Set wsFicB = wbFicB.Worksheets("Fichier B")
     
        ' Vider les lignes du fichier d'analyse
        wsFicAna.Range("A2:P" & Cells.Rows.Count).ClearContents
     
        ' Première ligne d'affichage des résultats dans le fichier d'analyse
        lgLigDeb = 2
     
        ' Traitement des lignes des 2 fichiers
        ' Lignes : 2 à 30000
        For lgLig = 2 To 26000
            ' Colonnes : D à AO
            For lgCol = 1 To 4
                ' Une différence est trouvée dans une ligne
                If wsFicA.Cells(lgLig, lgCol).Value <> wsFicB.Cells(lgLig, lgCol).Value Then
                    ' Affichage du nom du fichier en colonne A
                    wsFicAna.Range("A" & lgLigDeb).Value = wbFicA.Name
     
                    ' Copier la ligne du fichier A dans le fichier d'analyse
                    wsFicA.Range("A" & lgLig & ":" & "O" & lgLig).Copy _
                        Destination:=wsFicAna.Range("C" & lgLigDeb)
     
                    ' Affichage du nom du fichier en colonne A
                    wsFicAna.Range("A" & lgLigDeb + 1).Value = wbFicB.Name
     
                    ' Copier la ligne du fichier B dans le fichier d'analyse
                    wsFicB.Range("A" & lgLig & ":" & "O" & lgLig).Copy _
                        Destination:=wsFicAna.Range("C" & lgLigDeb + 1)
                    wsFicAna.Range("B" & lgLig).Value = ActiveCell.Row
                    lgLigDeb = lgLigDeb + 2
     
                    Exit For
                End If
            Next lgCol
        Next lgLig
     
        ' Fermer les fichiers A et B
        wbFicA.Close savechanges:=False
        wbFicB.Close savechanges:=False
     
        MsgBox "Traitement terminé"
     
        Application.ScreenUpdating = True
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    je ne suis pas sûr d'avoir compris mais en modifiant la lettre de colonne dans cette ligne d'instruction C --> B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    ' Copier la ligne du fichier A dans le fichier d'analyse
                    wsFicA.Range("A" & lgLig & ":" & "O" & lgLig).Copy _
                        Destination:=wsFicAna.Range("C" & lgLigDeb)
    Hervé.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Par défaut
    Bonjour,
    ce que je voudrais c'est le numéro de la ligne en colonne B.

    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsFicAna.Range("B" & lgLig).Value = lgLig
    Et j'ai essayé aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsFicAna.Range("B" & lgLig).Value = ActiveCell
    mais il ne m'affiche rien en B.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Par défaut
    désolé je viens de voir mon erreur :

    il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsFicAna.Range("B" & lgLigDeb).Value = lgLig
    Merci en tout cas pour avoir passé du temps et m'avoir répondu.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparer deux fichiers excel
    Par miss-o-21 dans le forum Excel
    Réponses: 6
    Dernier message: 12/07/2011, 17h30
  2. [XL-2007] Comparer deux fichiers excels
    Par douzoumka dans le forum Excel
    Réponses: 2
    Dernier message: 20/10/2009, 11h12
  3. Comparer deux fichiers Excel
    Par ptalal dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 17/03/2009, 16h31
  4. [VB]Problème ouverture de deux fichier excel
    Par Yanmeunier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/02/2006, 15h51
  5. Fonction c qui compare deux fichiers ???
    Par babyface dans le forum C
    Réponses: 4
    Dernier message: 19/11/2005, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo