Probleme avec activecell.formulaR1C1 en vba
Résolu
skykiller31
Messages postés
112
Date d'inscription
Statut
Membre
Dernière intervention
-
skykiller31 Messages postés 112 Date d'inscription Statut Membre Dernière intervention -
skykiller31 Messages postés 112 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
après plusieurs recherches je n'ai trouvé que des solutions qui ne fonctionnent pas sur mon fichier xls.
voici mon code:
Sub test()
Dim formule As String
formule = "=SI(A34="""";""-"";RECHERCHEV(A34 ;'C:\Documents and Settings\CLIENT\Mes documents\[EasyFact v1.0.xls]Tarifs Par Défaut'!$A:$C;2;0))"
'vérifier ce que formule contienne
MsgBox formule
ActiveCell.FormulaR1C1 = formule
End Sub
ce code est conçu dans le but d'attribuer une formule de calcul à la cellule sélectionée auparavant.
j'ai vérifié ce que contient la variable formule et ça correspond exactement à la formule que j'ai conçu manuellement dans un autre fichier xls.
=SI(A34="";"-";RECHERCHEV(A34 ;'C:\Documents and Settings\CLIENT\Mes documents\[EasyFact v1.0.xls]Tarifs Par Défaut'!$A:$C;2;0))
dès j'enlève le signe = mon code fonctionne mais dès que je l'remets il m'affiche un msg d'erreur 1004
j'ai cherché partout mais rien ne fonctionne, alors je me remets au pros du VBA ;)
merci d'avance!!!
après plusieurs recherches je n'ai trouvé que des solutions qui ne fonctionnent pas sur mon fichier xls.
voici mon code:
Sub test()
Dim formule As String
formule = "=SI(A34="""";""-"";RECHERCHEV(A34 ;'C:\Documents and Settings\CLIENT\Mes documents\[EasyFact v1.0.xls]Tarifs Par Défaut'!$A:$C;2;0))"
'vérifier ce que formule contienne
MsgBox formule
ActiveCell.FormulaR1C1 = formule
End Sub
ce code est conçu dans le but d'attribuer une formule de calcul à la cellule sélectionée auparavant.
j'ai vérifié ce que contient la variable formule et ça correspond exactement à la formule que j'ai conçu manuellement dans un autre fichier xls.
=SI(A34="";"-";RECHERCHEV(A34 ;'C:\Documents and Settings\CLIENT\Mes documents\[EasyFact v1.0.xls]Tarifs Par Défaut'!$A:$C;2;0))
dès j'enlève le signe = mon code fonctionne mais dès que je l'remets il m'affiche un msg d'erreur 1004
j'ai cherché partout mais rien ne fonctionne, alors je me remets au pros du VBA ;)
merci d'avance!!!
3 réponses
merci franck pour ce ptit rappel, mais même en l'adaptant au vb, ça ne marche pas, il me donne le même message d'erreur.
j'ai testé avec une formule de VLOOKUP tres simple et ça a marché, donc je me suis dit que c'est peut être ma formule qui n'est pas conforme au langage mais là c'est pas le cas non plus
j'ai testé avec une formule de VLOOKUP tres simple et ça a marché, donc je me suis dit que c'est peut être ma formule qui n'est pas conforme au langage mais là c'est pas le cas non plus
Salut,
Des p'tits trucs pour utiliser VBA avec des formules :
1- les fonctions doivent être en Anglais,
2- les délimiteurs sont différents sous VBA et sous Excel. exemple ici, le ";" d'Excel devient "," en VBA.
Ta formule devient donc :
Des p'tits trucs pour utiliser VBA avec des formules :
1- les fonctions doivent être en Anglais,
2- les délimiteurs sont différents sous VBA et sous Excel. exemple ici, le ";" d'Excel devient "," en VBA.
Ta formule devient donc :
formule = "=IF(A34="""",""-"",VLOOKUP(A34,'C:\Documents and Settings\CLIENT\Mes documents\[EasyFact v1.0.xls]Tarifs Par Défaut'!$A:$C,2,0))"
1- vire le R1C1 de La formule :
fonctionne impeccablement chez moi avec ActiveCell.Formula = formule
2- Sinon
N'aurais tu pas omis de remplacer un ";" par une ","???
Si tu n'en es pas sur ajoute :
Donc teste :