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 tableaux


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
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut comparaison tableaux
    Bonjour, j’ai un problème et j’aimerai que vous m’aidiez.

    J’ai 2 tableaux qui contiennent des valeurs, je veux comparer ces valeurs et les afficher dans un troisième tableau si ces valeurs que je compare sont identiques.

    Dans le tableau 1 j’ai par exemple :

    1 --- a – toto – aaa – bbb- ccc
    2 --- b – 777 – 111 – 222 - 333
    3 --- c – 444 – 555 – 666 - 777
    4 --- d – 888 – 999 – 000 - 123


    et dans le deuxième j’ai :

    1 --- b
    2 --- c
    3 --- e

    ce je compare c’est la colonne 2 des deux premiers tableaux, et j’afficher dans le tableau 3 ceci :

    les 2 premières colonnes du tableau 2 + les autres valeurs correspondantes du tableau 1

    1 --- b – 777 – 111 – 222 - 333
    2 --- c – 444 – 555 – 666 - 777
    3 --- d – 888 – 999 – 000 – 123

    à signaler que les 3 tableaux sont dans 3 feuilles différentes

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    et dans le deuxième j’ai :
     
    1 --- b 
    2 --- c
    3 --- e 
     
    ce je compare c’est la colonne 2 des deux premiers tableaux,
    Tu veux dire que b, c et e sont dans la colonne 2 ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    et dans le deuxième j’ai :
     
    1 --- b 
    2 --- c
    3 --- e 
     
    ce je compare c’est la colonne 2 des deux premiers tableaux,
    Tu veux dire que b, c et e sont dans la colonne 2 ?
    oui tout à fait,
    l'image peut faciliter l'explication, voilà ce que je veux faire c'est de comparer la colonne 1 du tableau 1 avec les valeurs de la colonnes 1 du tableau 2, si il y a egalité, je copie les valeurs du tableaux 2 dans le tableau 3
    Images attachées Images attachées  

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je ne comprends pas l'intérêt de copier les 2 première colonne de feuille 2 puis les autres colonnes de feuille 1 dans feuille 3

    En fait, tu copies la ligne complète de la feuil1 sur la feuille 3 si la valeur lue colonne 2 de feuille1 se retrouve dans la colonne 2 de feuille 2 ?

    Si j'ai raison, tu peux déjà tester ça

    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
    Sub Recherche()
    Dim ValeurLue As Variant, c As Variant, NoLigne As Long
    Dim DerniereLigneF1 as long, DerniereLigneF3 as long
    Dim FL1 As Worksheet, Plage As Range
    Dim FL2 As Worksheet
    Dim FL3 As Worksheet
        Set FL1 = Worksheets("Feuil1")
        Set FL2 = Worksheets("Feuil2")
        Set FL3 = Worksheets("Feuil3")
        DerniereLigneF1 = FL1.Range("B65535").End(xlUp).Row
     
        'Plage de recherche dans feuil2
        Set Plage = FL2.Range(Cells(1, 2), Cells(DernièreLigne, 2))
     
        'Lecture de la cellule ds feuil1 (noligne commence à 2 si en-tête)
        For NoLigne = 2 To DerniereLigneF1
            ValeurLue = FL1.Cells(NoLigne, 2).Value
     
            'la recherche de ValeurLue dans FL1 se fait dans la feuil2
            With Plage
                Set c = .Find(ValeurLue, LookIn:=xlValues, Lookat:=xlWhole)
                If Not c Is Nothing Then 'donnée trouvée
                    DerniereLigneF3 = FL3.Range("A65535").End(xlUp).Row
                    FL1.Rows(NoLigne).Copy destination:=FL3.Rows(DerniereLigneF3 + 1)
                End If
                Set c = Nothing
            End With
        Next
    End Sub
    N'hésite pas à poser des questions si tu ne comprends pas le code

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    je compare les valeurs de la colonne 1 du tableau 1 une par une avec les valeurs de la colonne 1 du tableau 2, et dès que je trouve la même valeur dans les deux tableaux je la copie dans le tableau 3, c'est le cas du "B" par exemple, et là je copie a coté les valeurs associées au B du tableau 2 dans le tableau 3

    Au lieu du code VBA, y’a pas moyen de le faire juste en formule Excel … un truc avec SI et RechercheV…sinon si je met le code vba, est ce que je dois le mettre en macro c’est ça ?

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu veux dire que tu copies la ligne trouvée dans la feuil2 de la colonne 1 à fin de ligne + Feuil1 de début de ligne jusqu'à fin de ligne, le tout sur une seule ligne dans feuil3
    Si c'est ça, il suffit de modifier un peu le code ci-dessus.
    Tu dis

Discussions similaires

  1. comparaison tableaux (différence)
    Par paf26 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/03/2014, 17h06
  2. PL/SQL COMPARAISON DE DEUX TABLEAUX APRES BULK
    Par mimi_été dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/06/2009, 12h14
  3. [Tableaux] Comparaison de 2 tableaux
    Par vodasan dans le forum Langage
    Réponses: 9
    Dernier message: 10/01/2008, 08h51
  4. Réponses: 1
    Dernier message: 24/12/2005, 14h18
  5. [langage] Comparaison de tableaux
    Par WetzlarMan dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2004, 14h08

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