Ecrire ac VBA formule ds case Excel

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

4 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. ptit81 Messages postés 30 Statut Membre 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
  3. 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
  4. ptit81 Messages postés 30 Statut Membre 2
     
    CA MARCHE

    Merci beaucoup...
    0