Ecrire ac VBA formule ds case Excel

Résolu
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?
Configuration: Windows XP
Firefox 2.0.0.6

4 réponses

  1. Contributeur
    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
    1. 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
      1. 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
        1. CA MARCHE

          Merci beaucoup...
          0