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 :

Recherche valeur & copier coller tableau [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 50
    Par défaut Recherche valeur & copier coller tableau
    Bonjour,
    Je débute actuellement en VBA et je souhaiterai réaliser quelque chose de simple.
    Je vous joins un fichier excel avec un exemple.
    Je souhaiterai dans la "feuil1" rechercher en fonction de chaque N° les valeurs qui correspondent et les copier dans la "feuil2" dans la colonne valeur en fonction de leur numéro.

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

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

    En D2 et tirer vers le bas jusqu'à D7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =RECHERCHEV(A2;Feuil1!$A$2:$B$7;2)
    Hervé.

  3. #3
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    la une simple formule de feuille suffit
    mais pour le faire par VBA
    il va falloir jongler avec des tableaux( c'est assez prise de tête)
    premier tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with sheets(2)
    tablo=.range("A2" & .range("a65535").end(xlup).row).value
    end with
    with sheets(1)
    Table=.range("a2:b" & .range("a65535").end(xlup).row).value
    end with
    ça ça va créer deux tableau en mémoire
    maintenant on compare chaque ligne du tableau feuille 2 à celui de la feuille 1
    le principe
    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
     
    dim reponse() as variant ' ça c'est pour les réponse
    i=1
    for t=1 to unbound(tablo,1)' le premier indice du tableau va être trié
                                        ' il est du style tablo(1,1) ; tablo(2,1)...tablo(n,1)
    for u=1 to ubound(table,1) ' celui-ci table(1,1)  -table(1,2);table(2,1)-table(2,2)..table(n,1)-table(n,2)
    if tablo(t,1)= table(u,1) then
    redim preserve reponse(1 to 4, 1 to i)
    reponse(1,i)=table(u,1)
    reponse(4,i)=table(u,2)
    i=i+1
    exit for
    end if
    next 
    next
    with sheets(2)
    .range("f2:i" & i).value=reponse
    end with
    (directement ecrit sur le forum

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

    Tu peux également utiliser la méthode Find
    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
    Sub CopierValeurs()
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim DerLig1 As Long, DerLig2 As Long
    Dim MaPlage1 As Range, MaPlage2 As Range, Cel As Range, Valeur As Range
        Set Ws1 = Worksheets("Feuil1")
        Set Ws2 = Worksheets("Feuil2")
        DerLig1 = Ws1.Range("A" & Ws1.Rows.Count).End(xlUp).Row
        DerLig2 = Ws2.Range("A" & Ws2.Rows.Count).End(xlUp).Row
        Set MaPlage1 = Ws1.Range("A2:A" & DerLig1)
        Set MaPlage2 = Ws2.Range("A2:A" & DerLig2)
        For Each Cel In MaPlage2
            Set Valeur = MaPlage1.Find(Cel, LookIn:=xlValues, lookat:=xlWhole)
            If Not Valeur Is Nothing Then Cel.Offset(0, 3) = Valeur.Offset(0, 1)
        Next Cel
    End Sub
    Cordialement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 50
    Par défaut
    Merci à vous!!!!!

    Bonjour,

    Dans le même esprit.
    Je souhaiterai tester en fonction du numero les valeurs.
    Dans la feuil1, j'ai valeur 1 et dans la feuil 2: valeur2
    Si valeur 1-valeur2 = 0 alors afficher la valeur 1 dans la feuil2 (valeur2) et dans la cellule E DE LA FEUIL2 afficher "OK"

    Par contre , si Valeur1-valeur2<>0 alors afficher valeur 1 dans la feuille 2 (valeur2) (même chose) mais dans la colonne E afficher "NOK"
    Fichiers attachés Fichiers attachés

  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,

    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
    Sub CopierValeurs()
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim DerLig1 As Long, DerLig2 As Long
    Dim MaPlage1 As Range, MaPlage2 As Range, Cel As Range, Valeur1 As Range
        Set Ws1 = Worksheets("Feuil1")
        Set Ws2 = Worksheets("Feuil2")
        DerLig1 = Ws1.Range("A" & Ws1.Rows.Count).End(xlUp).Row
        DerLig2 = Ws2.Range("A" & Ws2.Rows.Count).End(xlUp).Row
        Set MaPlage1 = Ws1.Range("A2:A" & DerLig1)
        Set MaPlage2 = Ws2.Range("A2:A" & DerLig2)
        For Each Cel In MaPlage2
            Set Valeur1 = MaPlage1.Find(Cel, LookIn:=xlValues, lookat:=xlWhole)
            If Not Valeur1 Is Nothing Then
                If Cel.Offset(0, 3) = Valeur1.Offset(0, 1) Then
                    Cel.Offset(0, 4) = "OK"
                Else
                    Cel.Offset(0, 3) = Valeur1.Offset(0, 1)
                    Cel.Offset(0, 4) = "NOK"
                End If
            End If
        Next Cel
    End Sub
    Cordialement.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 50
    Par défaut [XL-2007] Recherche valeur & copier coller tableau
    Merci

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

Discussions similaires

  1. [PPT-2003] Copier coller tableau Excel vers PP
    Par Kam's11 dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 15/12/2017, 12h23
  2. Réponses: 1
    Dernier message: 18/12/2013, 14h14
  3. [XL-2003] Macro recherche valeur et copier coller
    Par pm18340 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/08/2011, 23h47
  4. recherche valeur max dans un tableau
    Par www.rubis dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2011, 18h43
  5. [XL-2000] macro copier/coller tableau : amélioration du code
    Par Needz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/11/2010, 17h23

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