Problème de syntaxe avec la fonction vlookup

Résolu/Fermé
Keufi - 8 juil. 2009 à 16:57
 le père - 9 juil. 2009 à 14:08
Bonjour,

J'ai un problème de syntaxe pour la ligne de code suivante:

ActiveCell.Formula = "=VLookup(ActiveCell.Offset(-1, 0).Value, Range("AV:AX" & Range("AX65536").end(xlup).row)), 3, FAUX)

Quelqu'un saurait-il ou se situe mon erreur?

Merci

12 réponses

De rien :)
2
Bonjour

Tu écris une formule entourée de ", il faut doubler tous les " qui sont à l'intérieur de la formule
0
Merci le père

je n'ai plus de pb de syntaxe mais par contre une erreur 1004 "Erreur définie par l'application ou par l'objet" survient sur la même ligne activecell.formula...

Voici mon code complet:

Sub EURIBOR()
Dim cpt As Long
Dim i As Long
Dim longueur As Long

Sheets("Crédits CMB").Activate
Range("W13").Select

Set cellules = Range(Selection, Selection.End(xlToRight))
longueur = cellules.Count
For i = 1 To longueur

ActiveCell.Formula = "=VLookup(ActiveCell.Offset(-1, 0).Value, Range(""AV:AX"" & Range(""AX65536"").end(xlup).row)), 3, FAUX)"
ActiveCell.Offset(0, 1).Select
Next i

End Sub

Quelqu'un arrive à voir ce qui cloche?

Merci
0
Je ne m'y connais pas en VBA, mais il me semble que dans ton instruction tu mets une formule dans une cellule. Or "ActiveCell.Offset(-1, 0).Value", c'est du VB, pas de la syntaxe des formules excel. Il faudrait le convertir en quelque chose du genre "A2" ou "C3", calculé en fonction de la cellule active. Comme ce que tu mettrais si tu écrivais ta formule à la main.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ah il doit bien y avoir un moyen de ne pas passer par une cellule fixe. Je souhaite réaliser une boucle donc c vraiment indispensable que la valeur recherchée soit variable
0
Je m'aperçois que le même problème est présent un peu partout dans ta formule ...Tu utilises des Range qui sont du langage VB à un endroit où tu devrais avoir des références de cellules. J'essaye de déterminer une expression
0
Merci pour ton aide, je débute sur vba...
0
....Formula = "=VLookup(" & ActiveCell.Offset(-1, 0).Value & ", ""AV1:AX" & Range("AX65536").End(xlUp).Row & """, 3, FAUX)"
Ça ne doit pas être trop loin de la vérité
0
En effet, la macro s'éxecute bien mais elle me renvoie #Valeurs dans les cellules supposées contenir les valeurs recherchées...

Je pense que tu brûles mais c pas encore ca, en tout merci pour ton temps le père, je vais essayer de chercher une solution, si tu vois ce qui peut clocher, je suis à l'écoute!
0
Regarde dans la feuille excel quelles sont les formules effectivement générées, et compare avec celles que tu voulais. ça devrait te donner les corrections à faire
0
Bonjour le père,

J'ai l'impression que c'est une question de format. Les valeurs que je recherche sont des dates et avec ta formule, quand je lance la macro, les valeurs recherchées s'incrémentent 'en dur', provoquant ainsi l'erreur #N/A...

Aurais-tu une solution?

Merci
0
J'ai fait des essais, il y a quelques problèmes dans la formule. (il faut FALSE et non pas FAUX, et pas de " autour de la plage de recherche)
Si la valeur cherchée est du type date, la recherche marche bien en convertissant la date en double :
....Formula = "=VLookup(" & CDbl(ActiveCell.Offset(-1, 0).Value) & ", AV1:AX" & Range("AX65536").End(xlUp).Row & ", 3, FALSE)"
0
Merci énormément pour ton aide le père, la formule marche parfaitement!!!

You're the King!
0