Ecrire ac VBA formule ds case Excel

Résolu
ptit81 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
ptit81 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -
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?
A voir également:

4 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
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
0
ptit81 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   2
 
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
0
Utilisateur anonyme
 
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
0
ptit81 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   2
 
CA MARCHE

Merci beaucoup...
0