Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
928 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel] Problème vlookup ne rappatriant que des zéros (RESOLU !)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA Excel] Problème vlookup ne rappatriant que des zéros (RESOLU !)

n°2115443
Alex_94
Posté le 07-12-2011 à 20:21:23  profilanswer
 

Bonsoir,  
 
Après avoir retourner le problème dans tous les sens (je ne suis pas expert mais j'ai déjà touché à la programmation...), je lance un appel à l'aide  :(  
 
Pour des raisons de confidentialité, je ne peux pas vous donner le code mais je vais faire de mon mieux pour décrire le problème...
 
J'essaye d'automatiser une tâche hebdomadaire.  
J'ai 2 grands tableaux placés chacun dans un Workbook différent. Pour simplifier, je les appelerai Table1 et Table2 (les 2 sont enregistrés au format .xlsm)
Il y a 2 macros (Macro_table1 et Macro_table2) et 1 userform, tous rattachés à Table1.xlsm  
 
Macro_table1 : Insert 3 colonnes dans table 1 (boucle for pour extraire les coordonnées de l'emplacement voulu puis méthode Insert) puis change le format de ces colonnes (format painter + changement format des valeurs General --> Custom # ##0)
                     Réalise un filtre (autofilter) puis un calcul en fonction de valeurs contenues dans d'autres colonnes (boucle for)  ---> Remplissage de la 1ère colonne
                     Réalise un autre filtre (autofilter) puis un autre calcul en fonction de valeurs contenues dans une autre colonne (boucle for) ---> Remplissage de la 2ème    
                     Clear sur le filtre
                     Appel Userform (qui appellera Macro_table2)
Jusqu'ici tout va bien, les calculs sont bons, bien placés dans les colonnes et au format voulu.
 
Macro_table2: Même base que la 1ère macro sans filtre, cette fois-ci dans table 2 (insertion de 4 colonnes en ayant préalablement fait un scan pour leur position (x, y) etc...)
                             Réalise un vlookup et remplit l'une des colonnes tout juste créée (la plage de recherche se situe dans table 1)
                             Idem sur une autre colonne créée (les 2 dernières serviront pour un simple calcul d'écart)
                             [...]
Les vlookup sont écrits de cette manière :  

Code :
  1. For i=x+1 to z
  2. Workbooks("table2.xlsm" ).Worksheets("Sheet1" ).Cells(i,y).value = Application.WorksheetFunction.Vlookup(cellule voulue,plage table1,position colonne,false)
  3. Next i


 
Mais là problème, les valeurs remontées sont toutes nulles (ce n'est bien-sûr pas le cas dans table1). Je tente alors de le faire manuellement comme d'habitude et là, même problème (je l'ai déjà fait avec les même tableaux de façon manuelle 2 jours avant sans problème. Pour réaliser ces tests, j'ai créé une copie des 2 fichiers). A noter que je l'ai aussi fait manuellement dans une colonne à part dans le fichier Table2.xlsm pour voir si c'était un problème avec la colonne créée mais j'ai eu le même problème ...  
J'utilise Excel 2007.  
 
En espérant que quelqu'un puisse m'aider ...


Message édité par Alex_94 le 08-12-2011 à 23:22:21
mood
Publicité
Posté le 07-12-2011 à 20:21:23  profilanswer
 

n°2115512
olivthill
Posté le 08-12-2011 à 12:00:11  profilanswer
 

Workbooks("table2.xlsm" ).Worksheets("Sheet1" ).Cells(i,y).value = Application.WorksheetFunction.Vlookup(cellule voulue,plage table1,position colonne,false)
 
Si c'est un Excel français, il faudrait écrire "Feuil1".

n°2115543
Alex_94
Posté le 08-12-2011 à 13:57:34  profilanswer
 

Bien entendu, ma version d'Excel est an anglais. D'ailleurs le nom n'est pas Sheet1, c'est juste un nom que j'ai mis pour montrer comment j'ai articulé la ligne de code

n°2115650
Alex_94
Posté le 08-12-2011 à 23:21:42  profilanswer
 

J'ai finalement résolu le problème. Pour ceux qui seraient intéressés et qui passent par là :  
 
1 - j'ai réenregistré les fichiers au format .xls
 
2 - Le problème venait du premier argument du vlookup qui n'était pas incrémenté ... La première valeur étant égale à zéro, je me suis retrouvé avec des zéros partout. J'ai donc redéfini cette variable en incluant i dedans.
 
3 - j'ai fais le changement suivant :  

Code :
  1. Application.WorksheetFunction.Vlookup(...)


 
en  
 

Code :
  1. Application.Vlookup(...)

  le WorksheetFunction posant problème même si je n'ai pas bien compris pourquoi ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel] Problème vlookup ne rappatriant que des zéros (RESOLU !)

 

Sujets relatifs
Problème de décalage horaire avec un CalendarVBA Exel problème copie feuille
Select Case en VBA : question de débutantMacro excel supprimer une ligne sous conditions
Problème-écriture-image-GIFProblème-écriture-image-GIF
Calcul de la valeur actuelle avec VBACalculs financiers avec vba excel
Calcul financiers avec VBA excel 
Plus de sujets relatifs à : [VBA Excel] Problème vlookup ne rappatriant que des zéros (RESOLU !)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR