Problème de syntaxe avec la fonction vlookup
Résolu/Fermé
A voir également:
- Problème de syntaxe avec la fonction vlookup
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Cette fonction n'est pas disponible actuellement tv lg - Forum Téléviseurs
- Fonction filtre excel n'existe pas - Forum Excel
- Fonction somme excel - Guide
12 réponses
Bonjour
Tu écris une formule entourée de ", il faut doubler tous les " qui sont à l'intérieur de la formule
Tu écris une formule entourée de ", il faut doubler tous les " qui sont à l'intérieur de la formule
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
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
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.
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
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
....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é
Ça ne doit pas être trop loin de la vérité
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!
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!
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
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)"
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)"