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 colonnes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Par défaut Comparaison de colonnes
    Bonjour,

    étant débutant en VBA, j'aimerais créer un programme qui permette de comparer deux colonnes. Je m'explique : j'ai un fichier excel avec deux colonnes différentes A et B, de plusieurs centaines voire milliers de lignes chacune. Le but est de savoir si toutes les valeurs comprises dans B sont également présentes dans A. Si non, renvoyer un message en explicitant les valeurs qui ne sont pas dans A. (La colonne A comporte plus de valeurs que la B)

    Par exemple : prendre la valeur de la cellule B1, la rechercher dans la colonne A (et dire si elle est présente ou pas), puis prendre la valeur de la cellule B2, la rechercher dans la colonne A, etc.

    Cela semble assez simple mais mes compétences étant pour l'instant limitées, votre aide serait la bienvenue.

    Merci d'avance !

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Pas besoin de VBA pour faire ça.

    En supposant que tes données commencent en ligne 1, mets en C1 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(EQUIV(B1;A:A;0));"XXXXX";"-")
    Tu copies C1 vers le bas autant que tu as de valeurs en B.
    Tu fais un tri sur B:C en prenant C comme clé de tri, histoire de regrouper les valeurs de B qui ne sont pas en A (marquées XXXXX).

    En une minute c'est réglé.
    Pas besoin de sortir l'artillerie lourde du VBA pour ça.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Par défaut
    Merci Menhir pour ta réponse.

    Effectivement, c'est très rapide. J'ai oublié de préciser que la longueur des valeurs n'est pas la même entre les deux colonnes. Par exemple, en A, on peut trouver "200221-00001-01/01" alors qu'en B on a "200221-00001-01". Pour moi, ce sont des valeurs "identiques", donc la valeur de B est à considérer comme présente en A (malgré le "/01").

    Les longueurs des valeurs n'étant pas les mêmes, la formule ne fonctionne pas... Ce sont les 13 premiers chiffres (donc les 15 premiers caractères) qui m'intéressent pour la comparaison.

    Comment faire ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Évaluation de la performance
    Inscrit en
    Avril 2018
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Canada

    Informations professionnelles :
    Activité : Évaluation de la performance
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 39
    Par défaut
    Bonjour,

    Si se sont les treize premier caractère de la colonne B qui t'intéresse et qu'en colonne A tes valeurs sont une chaîne texte (pas des nombres) tu peux utiliser la fonction gauche pour limiter la chaîne évalué à 13 caractères. (cette fonction renvoie une chaîne texte de la longueur spécifié par l'argument).

    exemple (inspiré de menhir)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(EQUIV(Gauche(B1;13);A:A;0));"XXXXX";"-")
    Bonne suite

Discussions similaires

  1. Comparaison de colonnes dans plusieurs onglets
    Par zagus dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/10/2008, 14h05
  2. Résultat d'une comparaison comme colonne impossible ?
    Par vmolines dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/04/2008, 10h33
  3. Excel comparaison de colonne
    Par ballad oil dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 15/02/2008, 17h26
  4. Comparaison de colonnes
    Par peligroso dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/08/2007, 11h08
  5. Comparaison 2 colonnes
    Par melodyyy dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 31/05/2007, 15h03

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