Problème vlookup ne rappatriant que des zéros (RESOLU !) [VBA Excel] - VB/VBA/VBS - Programmation
Marsh Posté le 08-12-2011 à 12:00:11
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".
Marsh Posté le 08-12-2011 à 13:57:34
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
Marsh Posté le 08-12-2011 à 23:21:42
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 :
|
en
Code :
|
le WorksheetFunction posant problème même si je n'ai pas bien compris pourquoi ...
Marsh Posté le 07-12-2011 à 20:21:23
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 :
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