Se connecter avec
S'enregistrer | Connectez-vous

Visual Basic pour Excel - formule inactive

Dernière réponse : dans Programmation

Bonjour à tous,

Avec VBA je souhaite écrire dans le fichier actif la formule:
='D:\PERSO\Visual Basic\[test 01.xls]Feuil1'!$C$2

avec cette macro:
  1. Sub Macro1()
  2. ' Macro1 Macro
  3. ' Macro enregistrée le 23/06/2011 par gporte
  4. ' Touche de raccourci du clavier: Ctrl+Maj+B
  5. ' recherche du chemin du fichier actif
  6. Range("A5").Select
  7. fich0 = ActiveWorkbook.FullName
  8. fich1 = ActiveWorkbook.Name
  9. longfich0 = Len(fich0)
  10. longfich1 = Len(fich1)
  11. ' chemin
  12. chem = Left(fich0, longfich0 - longfich1)
  13. ' adresse cellule donneuse d'ordre
  14. cel1 = ActiveCell.Address
  15. fich2 = Range(cel1).Value
  16. ' fichier où se trouve l'info à rapatrier
  17. fich3 = "[" & fich2 & ".xls]"
  18. fich4 = chem & fich3
  19. ' préparation de la formule
  20. rout = "'" & fich4 & "Feuil1'!$C$2"
  21. ' écriture de la formule
  22. Range("B5").Select
  23. ActiveCell.FormulaR1C1 = "'=" & rout
  24. Range("B5").Select
  25. End Sub


la formule s'écrit ainsi en B5
'='D:\PERSO\Visual Basic\[test 01.xls]Feuil1'!$C$2

le ' devant ='D:\PERSO\Visual Basic\[test 01.xls]Feuil1'!$C$2
interdit l'exécution.
je dois enlever le ' dans la cellule pour activer la formule
Si je ne mets pas le ' , j'ai une erreur 1004
La formule s'écrit correctement au ' près, mais reste inactive
je ne peux écrire sans le ' .
Comment rendre ma formule opérationnelle ou enlever le ' après coup ?

Merci aux pro de VBA
gporte
Lassé par la pub ? Créez un compte
Expert Programmation

Je n'ai pas parlé de programme.
Je t'ai dit que le caractère ' est un commentaire en VBA, donc forcément que si tu le mets tu n'as pas d'erreur, vu qeu ça ne fait rien.
Après, je t'ai dit d'entourer ta chaine de caractères avec des " plutôt que des ', justement parce que le ' est un commentaire, ce qui pose une erreur dans ta formule.

Bonjour,

En effet le ' n'est pas en cause.
l'instruction FormulaR1C1 n'est pas la bonne;
il fallait que j'écrive : ActiveCell.value = rout
Merci de m'avoir poussé à chercher comment enlever le '

Cordialement,
gporte
Lassé par la pub ? Créez un compte
Tom's guide dans le monde