Fonction SI dans une macro

Résolu
minijsp Messages postés 3 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous

étant complètement novice dans les macros j'aimerais insérer cette formule dans une macro : =SI(B19="";"";1)

J'ai donc écrit ma macro de cette manière : Range(D19).Formula = "=SI(B19="";"";1)"
Mais ceci ne fonctionne pas...

Pouvez vous m'aider?

Merci!!

2 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonsoir,

    En VBA la formule est écrite différemment

    Range(D19).FormulaR1C1 ="=IF(RC[-2]="""","""",1)"
    ou
    [D19].FormulaR1C1 = "=IF(RC[-2]="""","""",1)"
    ce qui veut dire R (Row ou ligne en Français) 0 ou même ligne et C (Column ou en Français Colonne)-2

    tu pourrais également pour comprendre écrire
    [D19].FormulaR1C1 = "=IF(R[0]C[-2]="""","""",1)"
    ou encore
    Range(D19).FormulaR1C1 = "=IF(R[0]C[-2]="""","""",1)"
    0
    1. minijsp Messages postés 3 Statut Membre
       
      Merci beaucoup!!! ceci fonctionne parfaitement, j'avais en effet essayé avec le IF mais sans chager la suite et ça ne fonctionnais donc pas non plus...
      Si j'ai donc bien compris pour exemple dans ma formule je ne veux pas B19 mais A20 ceci donnerais [D19].FormulaR1C1="=IF[R1]C[-3]="","",1)"
      C'est ca?
      0
    2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      Re

      Oui c'est exactement cela malgrè une petite erreur, il ne faut pas mettre entre crocher [R1] mais simplement R[1]
      [D19].FormulaR1C1 = "=IF(R[1]C[-3]="""","""",1)"
      0
    3. minijsp Messages postés 3 Statut Membre
       
      Re

      En effet c'est une erreur de ma part mais je l'avais bien compris ainsi
      merci beaucoup!!
      0
      1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783 > minijsp Messages postés 3 Statut Membre
         
        Il y a aussi :
        Range(D19).FormulaLocal = "=SI(B19="";"";1)"

        Ne pas oublier la touche magique : F1
        1