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 des valeurs de 2 colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut Comparaison des valeurs de 2 colonnes
    Bonjour,

    Dans un tableau j'ai 2 colonnes contenant des numéros de série. Je souhaite comparer toutes les valeurs des 2 colonnes afin d'identifier les correspondances et différences. Les 2 colonnes n'ont pas obligatoirement le même nombre de lignes.
    Ci-dessous le code que j'ai écrit pour recopier les valeurs communes dans une 3ème colonne sur la même ligne que le numéro de le 1ère colonne avant de supprimer la valeur de la 2ème colonne si elle a été trouvée dans la 1ère.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim c As Range
    Dim d As Range
     
    For Each c In Range("b2:b2000")
        With Range("a2:a2000")
            Set d = Cells.Find(c.Value, LookIn:=xlValues)
            If Not d Is Nothing Then d.Offset(0, 2).Value = c.Value
        End With
    Next
    Malheureusement cela ne fonctionne qu'à partir du moment où le 1er numéro de la 1ère colonne a été trouvé et lorsque la valeur n'existe pas au lieu que rien ne se passe c'est la 2ème colonne qui est recopiée avec un offset.

    Quelqu'un aurait-il une solution ?

    Merci.

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir,

    Tu pourrais déjà ajouter le point qu'il manque devant Cells
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim c As Range
    Dim d As Range
     
    For Each c In Range("b2:b2000")
        With Range("a2:a2000")
            Set d = .Cells.Find(c.Value, LookIn:=xlValues)
            If Not d Is Nothing Then d.Offset(0, 2).Value = c.Value
        End With
    Next
    Après, si tu pouvais éviter d'utiliser Range sans préciser le classeur et la feuille, ce serait plus sûr.

    Cordialement,

    PGZ

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut
    Bonjour,

    Impeccable.
    Je note également le point concernant le classeur et la feuille pour l'intégration dans mon vrai fichier.

    Merci.

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

Discussions similaires

  1. [XL-97] Comparaison des valeurs contenues dans plus de 3 colonnes
    Par Sakim1992 dans le forum Excel
    Réponses: 4
    Dernier message: 23/10/2014, 20h17
  2. insertion des valeurs dans une colonne
    Par freestyler1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/01/2007, 16h38
  3. Maximum des valeurs d'une colonne
    Par cjacquel dans le forum Access
    Réponses: 1
    Dernier message: 19/01/2007, 17h25
  4. Réponses: 2
    Dernier message: 11/07/2006, 12h02
  5. quote dans des valeurs d'une colonne SET
    Par Jean Fi dans le forum Requêtes
    Réponses: 6
    Dernier message: 30/03/2006, 20h16

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