Fin d'instruction et FormulaR1C1

thierry.bayard

XLDnaute Junior
Bonjour,

Je tente désespérement de faire accepter une formule à VBA mais il persiste à me demander une fin d'instruction.
Voici le code bloquant :

Code:
Dim BaseUF
BaseUF = "'" & Range("Dest_CREA2") & "'!Base_UF,3,False)"
Range("G2:G" & Range("B1").End(xlDown).Row).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-5],"&BaseUF&"),""Erreur"",VLOOKUP(RC[-5],"&BaseUF&")"

(Les lignes 3 et 4 sont sur une seule ligne sur VBA)
Remarque : en mettant seulement la fonction VLOOKUP (
Code:
FormulaR1C1 = "=VLOOKUP(RC[-5],"&BaseUF
), ça fonctionne...

Est-ce que vous voyez ce qui dysfonctionne ?

Merci d'avance

Thierry B
 

thierry.bayard

XLDnaute Junior
Re : Fin d'instruction et FormulaR1C1

Je viens de modifier mon code en faisant :
Code:
Dim BaseUF
BaseUF = "'" & Range("Dest_CREA2") & "'!Base_UF,3,False"
Range("G2:G" & Range("B1").End(xlDown).Row).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-5],"&BaseUF&")),""Erreur"",VLOOKUP(RC[-5],"&BaseUF&"))"

Cela ne change rien : on transfert seulement les parenthèses de BaseUF à la ligne suivante.
 

thierry.bayard

XLDnaute Junior
Re : Fin d'instruction et FormulaR1C1

Après plusieurs test, il semble impossible dans une FormulaR1C1 d'ouvrir plusieurs fois des guillemets :
FormulaR1C1 = "="blabla1" & variable définie & "blabla2"

Il est uniquement possible de faire : FormulaR1C1 = "="blabla1" & variable définie

Avez vous déjà eu ce problème ?
 

Misange

XLDnaute Barbatruc
Re : Fin d'instruction et FormulaR1C1

Non je n'ai jamais eu ce problème car je n'écris jamais une formule en VBA :)
Et encore moins de formula R1C1, je déteste ce mode d'écriture

Soit j'écris la formule dans la feuille
soit je calcule le résultat de la formule dans VBA et je n'injecte dans la cellule que le résultat de la formule.
Je ne vois pas trop l'intérêt d'écrire une formule dans une feuille avec du code. Les tableaux excel permettent de gérer très facilement l'écriture automatique d'une formule dans la nouvelle ligne d'un tableau.
J'ai toujours trouvé galère les guillemets dans les formules VBA.

essaie si tu y tiens d'écrire
mon texte = et la tes concaténations de bouts de formules
puis de mettre
formulaR1C1=montexte (je n'ai jamais tenté, donc c'est sans garantie !)
 

thierry.bayard

XLDnaute Junior
Re : Fin d'instruction et FormulaR1C1

J'ai essayé. Ca ne fonctionne pas non plus pour la même raison (fin d'instruction).

Je suis tout à fait d'accord avec toi : je n'aime pas utiliser de FormulaR1C1 mais n'étant pas du tout expert en VBA, je rame pour passer par Application.VLOOKUP... :
- Je ne sais pas l'appliquer sur un ensemble de cellules comme je le fait avec FormulaR1C1.
- Visiblement, il n'est pas possible pour le 1er argument de mettre RC[-5] pour rechercher la valeur de la colonne correspondante...
- Je sais encore moins traduire de façon simple les fonctions SI et ESTERREUR en VBA...

Bref, je pensais plus simple ma solution et ne voulais pas abreuver le forum de questions... Visiblement, je me suis un peu planter.

Simplement, pour terminer d'expliquer ma méthode : après avoir fais mes fonctions, je fige les valeurs par un bête copier/collage spécial valeur.

Merci quand même pour ton aide
 

thierry.bayard

XLDnaute Junior
Re : Fin d'instruction et FormulaR1C1

Effectivement, vu comme ça, c'est peut-être mieux...
Et pour l'appliquer sur toute une zone, la boucle For / Next reste la meilleure solution ?

Encore merci pour l e temps que tu as passé à me dépanner... (N'empêche que j'aurais bien aimé comprendre d'où venait mon problème de fin d'instruction !!!)

Bonne soirée à toi
 

Misange

XLDnaute Barbatruc
Re : Fin d'instruction et FormulaR1C1

Oui tu peux faire cela avec une boucle.
Mais on discute vraiment dans le vide sans fichier, sans connaitre l'ensemble du "problème".
Encore une fois, avant toute autre solution, je préconise l'emploi des tableaux excel Ce lien n'existe plus si c'est adapté.
 

Discussions similaires

Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 371
Messages
2 087 697
Membres
103 644
dernier inscrit
bsalah