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 :

Application Vlookup/Application Match [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut Application Vlookup/Application Match
    Bonjour à tous,

    Je reviens vers vous car mon code ne fonctionne pas....

    Voici mon problème :

    contexte :

    J'ai deux onglets avec un tableau dans chaque qui sont dans le même classeur,

    Dans la premiere feuille "BaseOPE"
    en colonne A: Ordre
    en colonne B: Type (colonne à remplir)


    Dans la deuxième feuille "ListeOT"
    en colonne A: Ordre
    en colonne B: Type


    J'aimerais en VBA importer le type d'Ordre dans le 1er tableau en fonction de la première Colonne (A) du second onglet

    Je souhaiterai que le code se répète pour toute la colonne du second onglet

    Les deux tableaux n'ont pas le même nombre de lignes

    Pourriez vous y jeter un oeil

    En vous remerciant d'avance

    Voici mon code qui est en échec à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TK(R) = Join$(Application.Index(Sheets("listeOT").Columns("A:A").Value, R), "¤")


    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
     With Sheets("listeOT").Cells(1).CurrentRegion.Rows
            ReDim TK$(2 To .Count)
                  TD = Application.Index(.Offset(1).Resize(.Count - 1), , 2)
            For R& = 2 To .Count
                TK(R) = Join$(Application.Index(Sheets("listeOT").Columns("A:A").Value, R), "¤")
            Next
        End With
     
        With Sheets("BaseOPE").Cells(1).CurrentRegion.Rows
            ReDim TP$(2 To .Count, 0)
                  TS = .Columns("A:A").Value
            For R = 2 To .Count
                v = Application.Match(Join$(Array(TS(R, 1)), "¤"), TK, 0)
                If Not IsError(v) Then TP(R, 0) = TD(v, 1)
            Next
                  .Cells(2, 2).Resize(.Count - 1).Value = TP
        End With
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'aimerais en VBA importer le domaine technique dans le 2sd tableau en fonction de la première Colonne (A) du premier onglet
    Et où se trouve ce domaine technique dans ce 2ème tableau ?
    La seule explication que tu donnes, c'est
    Dans la deuxième feuille "ListeOT"
    en colonne A: Ordre
    en colonne B: Type
    soit deux colonnes.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut
    Bonjour Philippe,


    J'ai modifié le post, effectivement après relecture, ce n'était pas très claire.


    Merci

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'aimerais en VBA importer le type d'Ordre dans le 1er tableau en fonction de la première Colonne (A) du second onglet
    Je souhaiterai que le code se répète pour toute la colonne du second onglet
    Ce n'est toujours pas très clair.
    Doit on en conclure que tu souhaites copier les cellules de la première colonne du 2ème tableau dans la première colonne du 1er tableau à condition qu'elles ne s'y trouvent pas déjà ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    Bonjour,

    je vois Jérémy que tu es parti de ma solution de ta précédente discussion
    servant à utiliser une clef concaténée sur plusieurs colonnes mais cela n'a pas l'air d'être le cas ici d'où l'erreur !
    Déjà juste consulter depuis une feuille de calculs l'aide de la fonction INDEX …
    C'est du LEGO mais il faut savoir emboîter !

    Si la feuille "ListeOT" n'a pas de doublon, une simple formule de calculs dans l'autre feuille suffit via RECHERCHEV.
    Une fois qu'elle fonctionne, si vraiment un code est nécessaire, publie - la alors ici afin de t'indiquer une astuce
    pour la convertir efficacement en VBA …

  6. #6
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut
    Bonjour Marc-L,

    Et encore Merci!

    Effectivement j'ai bien essayé d'adapter ton code....

    voici le nouveau code

    si vous pouviez jeter un oeil....

    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
    Sub BaseOPE1()
    Dim oRng As Excel.Range
    Dim v As Variant, lng As Long, LigFin As Variant, LigFin2 As Variant
     
    LigFin = Sheets("BaseOPE").Cells(Rows.Count, 1).End(xlUp).Row
    LigFin2 = Sheets("listeOT").Cells(Rows.Count, 1).End(xlUp).Row
     
    Set oRng = ThisWorkbook.Worksheets("BaseOPE").UsedRange
     
    v = oRng.Value
    For lng = 2 To UBound(v, 1)
     
    Sheets("BaseOPE").Range("B2:B" & LigFin).ClearContents
     
    Sheets("BaseOPE").Range("B2:B" & LigFin).Select
     
    v(lng, 2) = Application.VLookup(Range("A2:A" & LigFin), Sheets("listeOT").Range("A2:A" & LigFin2), 2, faux)
    Next lng
     
    oRng.Value = v
    Set oRng = Nothing
    v = Empty
     
     
    End Sub

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

Discussions similaires

  1. [XL-2010] VBA Optimisation et gain de temps Application.vlookup
    Par jeremy75018 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/02/2015, 18h00
  2. [XL-2007] Application.VLookUp en boucle
    Par parmi dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 16/07/2014, 15h57
  3. [XL-2003] Application.VLookup
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/12/2009, 09h36
  4. Réponses: 1
    Dernier message: 18/03/2007, 11h20
  5. Problème affichage Excel Application.Height/Application.Width
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/01/2007, 08h15

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