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 :

Macro pour comparaison [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 18
    Par défaut Macro pour comparaison
    Classeur1.xlsx
    ]Bonjour,

    Je souhaiterais faire une macro qui compare deux listes situées dans deux feuilles différentes :
    - liste1 feuille 1 de la première ligne remplie à la dernière
    - liste2 feuille 2 idem
    - si le nom se trouve dans le listes 1 et 2, le réécrire dans la colonne B feuille 1, sinon mettre NP .
    exemple en fichier joint

    Merci d'avance

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Si tu veux vraiment du VBA pourquoi pas. Sinon on peut le faire avec une "simple" formule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(RECHERCHEV(A2;Feuil2!A:A;1;FAUX);"NP")
    Merci de dire si çà te va.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 18
    Par défaut merci
    Merci
    j'ai traité tout mon fichier avec des formules Et ç amarche. mais comme l'homme n'est jamais satisfait, il me demande de tout reprendre en VBA

  4. #4
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Re,

    Dans la feuil2 que tu nous as fournis, il y a des trous.
    Dans la version complète, c'est le cas ?
    Si oui, combien peux tu avoir de ligne max ?

    Cela permettra de fixer les limites de la boucle de parcourt de cette feuille.

    ps : Je précise tout de même que dans ton cas, le vba c'est utiliser le canon pour tuer une mouche ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 18
    Par défaut yep
    Je suis d'accord avec toi , une bien petite mouche.
    les lignes ne sont pas vides. la limite peux etre fichee à 1000
    Merci

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Essaie comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Comparer()
    Dim Cel As Range
        With Worksheets("Feuil1")
            For Each Cel In .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row)
                If Application.CountIf(Worksheets("Feuil2").Columns(1), Cel.Value) > 0 Then
                    Cel.Offset(, 1) = Cel.Value
                Else
                    Cel.Offset(, 1) = "NP"
                End If
            Next Cel
        End With
    End Sub
    Cordialement.

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    perso, si beaucoup de données, je passe par des tableaux mais Robert à peut-être raison (pas testé en terme de rapidité)
    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
    Sub Comparer()
    Dim DCel As Range, TbL1, TbL2, Resultat()
    Dim x As Long, y As Long
      With Worksheets("Feuil1")
        Set DCel = .Range("A" & .Rows.Count).End(xlUp)
        TbL1 = .Range("A2", DCel)
        ReDim Resultat(1 To UBound(TbL1, 1))
        With Worksheets("Feuil2")
          Set DCel = .Range("A" & .Rows.Count).End(xlUp)
          TbL2 = .Range("A2", DCel)
        End With
        For x = 1 To UBound(TbL1, 1)
          For y = 1 To UBound(TbL2, 1)
            If TbL1(x, 1) = TbL2(y, 1) Then
              Resultat(x) = TbL2(y, 1)
              Exit For
            Else
              Resultat(x) = "NP"
            End If
          Next y
        Next x
        .Range("B2").Resize(UBound(TbL1, 1)) = Application.Transpose(Resultat)
      End With
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 18
    Par défaut RESOLU
    MERCI à vous j'ai résolu le probléme
    bonne journée

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

Discussions similaires

  1. [XL-2013] Macro pour Ouvrir 2 fichiers et maj des valeurs du 2e sur comparaison avec le 1er
    Par Audeo dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/10/2015, 19h37
  2. [XL-2007] Macro VB pour comparaison données entre 2 classeurs
    Par GPonsan dans le forum Excel
    Réponses: 0
    Dernier message: 25/11/2013, 15h33
  3. macro pour un malloc
    Par salseropom dans le forum C
    Réponses: 4
    Dernier message: 15/02/2006, 10h53
  4. macro pour splashscreen
    Par stoads dans le forum IHM
    Réponses: 20
    Dernier message: 26/11/2005, 12h33
  5. [VBA-E] [help]macro pour dupliquer une feuille (en valeur)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/11/2005, 19h24

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