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 :

Comparaison de feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 28
    Points
    28
    Par défaut Comparaison de feuilles
    Bonjour,

    Je débuter dans la programmation VBA, alors je vais essayer d’être clair dans mes explications.

    Voila je cherche une macro pour comparer deux feuilles est faire ressortir les différence en coloriant la case.

    Plus clairement j'aimerais comparer la cellule A2 de la feuille Origine avec la même de la feuille Entreprise et ainsi de suite sur tout le tableau. (sachant que le vrai tableau va jusqu’à la cellule AA306)

    et si la macro trouve une différence entre la meme cellule des deux feuille, la cellule de l'entreprise doit si colorer.

    Je mets le principe du tableau en piece jointe (en bien plus petit) et en marquant les cellules où il y a des différences.

    Je sais retravailler une macro pour adapter à ce que j'ai besoin mais je ne comprent pas bien le principe des boucles pour les créer moi meme.

    Merci a tous ceux qui pourrons m'aider a trouver la solution.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Je ne crois pas que ce forum soit un simple distributeur de code.

    Je n'ouvre par ailleurs jamais un classeur tiers et n'ai donc pas ouvert le tien.

    Tu dis avoir cette difficulté ? :
    ... je ne comprent pas bien le principe des boucles pour les créer moi meme ...
    Et je te réponds donc de cette manière :
    Les deux boucles imbriquées de l'exemple suivant permettent de parcourir et comparer toutes les cellules de la plage A1:F20 des feuilles Feuil1 et Feuil2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For ligne = 1 To 20
      For colonne = 1 To 6
         MsgBox Worksheets("Feuil1").Cells(ligne, colonne).Value & " est donc à comparer avec " & Worksheets("Feuil2").Cells(ligne, colonne).Value & vbCrLf & _
         "Si différence constatée : tu colories en utilisant la_cellule.interior.color. A toi de jouer"
      Next
    Next
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Une piste pour comparer les cellules à la même position dans deux feuilles différentes :
    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
     
    Sub Comparer()
     
        Dim FeOr As Worksheet
        Dim FeEnt As Worksheet
        Dim Plage As Range
        Dim Cel As Range
     
        Set FeOr = Worksheets("Origine")
        Set FeEnt = Worksheets("Entreprise")
     
        With FeOr
     
            Set Plage = .Range(.Cells(2, 1), .Cells( _
                    .Cells.Find("*", .Cells(1, 1), -4123, , 1, 2).Row, _
                    .Cells.Find("*", .Cells(1, 1), -4123, , 2, 2).Column))
     
        End With
     
        For Each Cel In Plage
     
            If Cel.Value = FeEnt.Cells(Cel.Row, Cel.Column).Value Then
     
                FeEnt.Cells(Cel.Row, Cel.Column).Interior.ColorIndex = 3
     
            End If
     
        Next Cel
     
    End Sub

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Salut Florent6744

    Recherche sur la toile, il existe des solutions gratos particulièrement efficaces où quitte à payer quelques euros, ça sera toujours moins cher que les heures que tu vas passer dessus.

    Bonjour chez toi

    Sinon une solution plus bidouille si tu veux comparer que de la donnée, c'est d'exporter les données dans deux onglets notepad++ et utiliser l'addon de comparaison

    Bonjour chez toi
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 28
    Points
    28
    Par défaut
    Merci de votre aide.

    Unparia, je sais bien que le site n'ai pas prevu pour faire bosser les autres mais tout le monde débute un jour.

    Theze, ton code marche nickel a la différence que je cherchais a colorer uniquement les cellules non identique. J'ai trouvé comment changer ta macro. Je ne comprend pas encore tout, surtout la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .Cells.Find("*", .Cells(1, 1), -4123, , 2, 2).Column))
    Je ne comprend pas la construction mais je vais me débrouiller.

    Merci encore pour votre aide.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Question à 2 lignes de code: pourquoi passer par du VBA alors que, sauf erreur de comprégension, Excel peut le faire nativement en passant par un format conditionel?
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 28
    Points
    28
    Par défaut
    Pour une raison simple apprendre le langage VBA et pouvoir le faire sur plusieurs tableaux différents sans remettre de forme conditionnel.

  8. #8
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Pour répondre à ta question, comme on ne sait pas où se trouve la fin de la plage sur la feuille, on doit chercher la cellule qui se trouve la plus basse sur les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells.Find("*", .Cells(1, 1), -4123, , 1, 2).Row
    et la plus à droite sur les colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells.Find("*", .Cells(1, 1), -4123, , 2, 2).Column
    Exemple, tu inscris une valeur en A10 et une valeur en F3, la plage sera alors de A2 ".Cells(2, 1)" à F10 car la cellule non vide la plus basse est en ligne 10 et la cellule non vide la plus à droite est en colonne F même si la cellule F10 est vide !

Discussions similaires

  1. [Toutes versions] Comparaison de feuilles XLS
    Par bobbymhan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2012, 11h18
  2. Comparaison de feuilles Excel VBA
    Par Soft77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2011, 23h56
  3. [XL-2007] comparaison entre feuilles
    Par ludojojo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2010, 17h40
  4. VBA-Excel Comparaison 2 feuilles
    Par PiuPiu dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/10/2007, 19h05
  5. [VBA-E]Comparaison du contenu de 2 feuilles
    Par Neymo dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 09/03/2006, 15h42

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