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 :

Vlookup en VBA [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Chargée de missions
    Inscrit en
    Janvier 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargée de missions

    Informations forums :
    Inscription : Janvier 2016
    Messages : 73
    Par défaut Vlookup en VBA
    Bonjour,

    Afin de remplir vite fait bien fait un Excel, je boucle son remplissage via d'autres feuilles. Tout se passe bien jusqu'à l'arrivée du Vlookup qui va piocher dans l'onglet d'un autre classeur (qui est ouvert lorsque la macro tourne).

    Cette boucle me permet de faire le passage d'un onglet avec pleins de colonnes à un onglet plus "concentré" avec des concaténations de plusieurs colonnes.



    Quand je fais la formule =recherchev(I2;pays;2;faux), la formule tourne bien et me sort le bon résultat. Quand je passe par la macro, elle ne me ressort rien, comme si elle ne trouvait pas de correspondance entre la matrice "pays" et la cellule recherchée.
    Au début, je pensais à un problème de format des cellules, mais visiblement non.

    Si vous avez une idée, astuce ou quoi que ce soit pour me dépatouiller de cela, je suis preneuse !

    Merci par avance, vous trouverez le code plus bas. Bon week end !

    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
    Dim MonClasseur As Workbook
    Dim pays As Range
     
       Set MonClasseur = Workbooks("Application V2.xlsm")
       Set pays = MonClasseur.Worksheets("DATA_macro").Range("E:F")
     
    For i = 2 To Derniere_Ligne
        Worksheets("CANAL_COURRIER").Cells(i, 1) = Worksheets("CANAL_EXPORT").Cells(i, 1)
        Worksheets("CANAL_COURRIER").Cells(i, 2) = Worksheets("CANAL_EXPORT").Cells(i, 2)
        Worksheets("CANAL_COURRIER").Cells(i, 3) = Worksheets("CANAL_EXPORT").Cells(i, 3)
        Worksheets("CANAL_COURRIER").Cells(i, 4) = Worksheets("CANAL_EXPORT").Cells(i, 4) & " " & Worksheets("CANAL_EXPORT").Cells(i, 5) & " " & Worksheets("CANAL_EXPORT").Cells(i, 6)
        Worksheets("CANAL_COURRIER").Cells(i, 5) = Worksheets("CANAL_EXPORT").Cells(i, 7)
        Worksheets("CANAL_COURRIER").Cells(i, 6) = Worksheets("CANAL_EXPORT").Cells(i, 8)
        Worksheets("CANAL_COURRIER").Cells(i, 7) = Worksheets("CANAL_EXPORT").Cells(i, 9)
        Worksheets("CANAL_COURRIER").Cells(i, 8) = Worksheets("CANAL_EXPORT").Cells(i, 10) & " " & Worksheets("CANAL_EXPORT").Cells(i, 11) & " " & Worksheets("CANAL_EXPORT").Cells(i, 12)
        Worksheets("CANAL_COURRIER").Cells(i, 9) = Worksheets("CANAL_EXPORT").Cells(i, 13)
    On error Resume Next
        Worksheets("CANAL_COURRIER").Cells(i, 10) = WorksheetFunction.VLookup(Cells(i, 9), pays, 2, False)
     
    Next i

  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
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Worksheets("CANAL_COURRIER").Cells(i, 10) = WorksheetFunction.VLookup(Cells(i, 9).Address, pays.Address, 2, False)

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

    commencer déjà par retirer la ligne n°17 … Ensuite remplacer WorksheetFunction par Application

    Et vérifier d'abord ce que retourne VLookup via une variable Variant avant de l'affecter à une cellule !


    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  4. #4
    Membre confirmé
    Femme Profil pro
    Chargée de missions
    Inscrit en
    Janvier 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargée de missions

    Informations forums :
    Inscription : Janvier 2016
    Messages : 73
    Par défaut
    Bonsoir tous les deux !

    Merci beaucoup Marc-L, ça fonctionne beaucoup mieux !! Et du coup, quelle est la différence entre worksheetfunction et application ?

  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




    En dehors de pouvoir enfin documenter dans l'aide interne les fonctions de feuille de calculs utilisables en VBA,
    j'ai toujours pensé WorksheetFunction existe pour planter les codes !

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

Discussions similaires

  1. [XL-2003] Utilisation de VLOOKUP en VBA
    Par oinjetam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/02/2016, 17h13
  2. Vlookup en VBA
    Par faamugol dans le forum Excel
    Réponses: 6
    Dernier message: 21/07/2015, 15h46
  3. Aide sur VLOOKUP dans vba
    Par Mag555 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/08/2011, 14h35
  4. [XL-2003] Vlookup dans VBA
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/11/2010, 16h15
  5. Problème avec VLookup sous VBA
    Par julio26 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/07/2007, 14h03

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