VBA excel instertion formule

cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 29 mai 2007 à 17:51
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 31 mai 2007 à 00:21
Bonjour,

Je viens de réaliser une petite macro:
Dim ma_var as string
ma_var  = InputBox("Indiquer ma_var", "ma_var ")
    ActiveCell.FormulaR1C1 = "=ARRONDI.SUP(RC[2]/(1-0." & ma_var  & "),2)" 'mettre la formule

Lorsque j'execute ma macro il y a dans ma case #NOM? or quand je fais F2 puis Entré la formule est prise en compte et la valeur calculée apparaît, donc ma formule est bien bonne.

je ne comprends pas.
Merci pour votre aide!

5 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
29 mai 2007 à 21:40
Je vois deux possibilités :

- Tu n'es pas en calcul automatique, mais à lire ton pb, je ne suis pas convaincu
- Cette option me convainc plus : .FormulaR1C1 est utilisé au format international de mémoire, c'est à dire que les formules sont à inscrire en anglais (va falloir chercher l'équivalent, par ex., quand tu veux utiliser RECHERCHEV, tu dois écrire VLOOKUP).
Ton code doit en fait inscrire ta formule dans la cellule, sauf qu'Excel ne l'interprète comme une formule qu'après que tu sois allé valider dans Excel.
Donc, soit tu mets l'équivalent anglais, soit tu utilises (toujours de mémoire), .LocalFormulaR1C1 ou .FormulaLocalR1C1 je ne sais plus, qui te permet cette fois d'utiliser la formule en Français (à condition bien sûr que ta version d'Excel soit française ^^)

Molenn
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
29 mai 2007 à 22:15
Salut Molenn,

Merci pour ta réponse.
J'ai déjà essayé avec le nom en anglais (en faisant une nouvelle macro et en saisissant la formule pendant que la macro est enregistrée, puis j'ai récupéré le code) mais celà n'arrange pas mon pb!

C'est quoi le calcul automatique? Si je saisie la formule manuellement, la valeur calculée apparaît bien, si après avoir lancé la macro je fais F2 puis entrée la valeur calculée apparaît aussi!
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
29 mai 2007 à 23:58
J'y comprend rien à ces [R1C1]

Pourrais-tu écrire la formule telle que tu la vois dans la barre de formule (F2)
La formule anglaise, au cas où, est RoundUp

    Dim MaVar As String
   
    MaVar = InputBox("Entrer MaVar")
    ActiveCell.Formula = "=RoundUp(A17/0." & MaVar & ",2)"

Mais est-ce l'équivalent de ce que tu recherches avec ce R1C1 ?

MPi
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
30 mai 2007 à 18:44
R1C1 signifie que tu sélection la cellule ou tu es placé.

Pour info la solution c'était d'ajouter avant:
ActiveCell.select même si un ami m'a confirmé que chez lui ça ne marche pas même avec cet ajout.

Bonne soirée!
0

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

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
31 mai 2007 à 00:21
En fait, je connais R1C1 comme étant Row1Column1
Mais quand j'écris une formule en Excel, j'écris A1
Quand Excel écrit une formule dans une cellule d'une feuille, il écrit A1
Quand je veux parler d'une cellule dans une feuille, je vais dire A1
et jamais 1A

Je ne sais même pas pourquoi cette notation existe... mais bon ... mon vieux cerveau va y survire

Que vaut donc R dans RC[2] ?

MPi
0