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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 50
    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
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    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

  3. #3
    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,

    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
    1 031
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 031
    Billets dans le blog
    45
    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

  5. #5
    Membre confirmé
    Homme Profil pro
    technicien BE
    Inscrit en
    Juin 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : technicien BE

    Informations forums :
    Inscription : Juin 2016
    Messages : 50
    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 Expert
    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
    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?

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, 10h18
  2. Comparaison de feuilles Excel VBA
    Par Soft77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2011, 22h56
  3. [XL-2007] comparaison entre feuilles
    Par ludojojo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2010, 16h40
  4. VBA-Excel Comparaison 2 feuilles
    Par PiuPiu dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/10/2007, 18h05
  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, 14h42

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