Ecrire ac VBA formule ds case Excel
Résolu
ptit81
Messages postés
30
Statut
Membre
-
ptit81 Messages postés 30 Statut Membre -
ptit81 Messages postés 30 Statut Membre -
Je suis novice en vba.
je voudrais écrire dans la case A3 d'excel une formule dépendant d'une case que l'utilisateur écris dans un userform.
Pour simplifier, on appelle cette case b et on dit qu'elle est égale à B13
mon code est le suivant:
Dim a, b As String
b = "B13"
a = "=SI(" & b & ">0;1;0)"
Range("A3").select
Selection.Value = a
ça ne marche pas.
J'ai aussi essayé de mettre
ActiveCell.FormulaR1C1 = a
ça ne marche pas non plus.
quelle est la fonction à utiliser?
je voudrais écrire dans la case A3 d'excel une formule dépendant d'une case que l'utilisateur écris dans un userform.
Pour simplifier, on appelle cette case b et on dit qu'elle est égale à B13
mon code est le suivant:
Dim a, b As String
b = "B13"
a = "=SI(" & b & ">0;1;0)"
Range("A3").select
Selection.Value = a
ça ne marche pas.
J'ai aussi essayé de mettre
ActiveCell.FormulaR1C1 = a
ça ne marche pas non plus.
quelle est la fonction à utiliser?
Configuration: Windows XP Firefox 2.0.0.6
4 réponses
-
Bonjour,
Amusant ton truc, je dirai que ça devrait marcher. Apparement Excel ne supporte pas les ; dans la chaine... (bug?)
En attendant pour palier à ça tu pourrais utiliser INDIRECT.
Ex
en A3 ta formule: =SI(INDIRECT(A4)>0;0;1) qui restera inchangée,
en A4 tu mets à jour la reference A13 par ton prog.
Dim b As String
b = "B13"
Range("A4").Value = b
cdt -
OK, j'vois l'idée. Je connaissais pas la fonction Indirect
C'est pas exactement ce que je veux mais ça me dépanne.
Si quelqu'un a une autre idée, je suis preneur.
En tout cas, merci à toi eriiic -
Bonjour,
Votre formule est écrit en français sous Excel. Sous VBA toute formule doit être écrite en anglais !
Range("A3").Value = "=IF("" & b & "">0,1,0)"
astuce : pour connaitre la formule sous VBA, créer d'abord une formule type sous l'enregistreur de macro,
vous aurez ainsi la syntaxe exacte.
Lupin -