Excel VBA

Résolu
Bonjour,

Je cherche à écrire une macro pour que dans une cellule donnée, elle me rentre la formule suivante :
=SI(A1=1;"";2)
Lorsque j'essaye en VBA cela donne ça :
Activecell.value="=SI(A1=1;"";2)"
Cela ne fonctionne pas.

Avez vous une solution à me proposer

Cordialement

5 réponses

  1. bonjour

    esasaie ceci
    f = "=SI(A1=1;"""";2)"
    ActiveCell.FormulaLocal = f


    bonne suite
    1
    1. J'ai tester, ça fonctionne. En revanche je n'arrive pas à le mettre en application pour une formule plus complexe telle que celle ci :

      f= "=SI('[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & "="""";"""";'[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & ")"
      ActiveCell.Value =f

      adresse_cellule est une variable dans laquelle j'ai collecter l'adresse d'une cellule. Je pense que le problème viens de la partie en gras et souligné, mais je n'y trouve pas de solution

      Merci d'avance pour votre aide
      0
      1. C'est bon en remplaçant ActiveCell.value par ActiveCell.FormulaLocal comme dans la réponse de ccm81, cela fonctionne !!!

        Encore merci ccm81

        Bonne fin de journée
        0
        1. peut être comme ceci

          f = "=SI('[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & "=" & """" & ";" & """" & ";" & "'[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & ")"
          ActiveCell.FormulaLocal = f

          RQ. mettre la formule dans f permet de voir ce qui se passe à l'exécution en faisant un suivi des variables

          bonne suite
          0
          1. je crois qu'il y a erreur, essaies ceci

            vide = Chr(34) & Chr(34)
            f = "=SI('[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & "=" & vide & ";" & vide & ";'[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & ")"
            ou ceci
            f = "=SI('[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & "=" & """""" & ";" & """""" & ";'[Tableau de suivi centre.xlsm]Centre'!" & adresse_cellule & ")"

            ActiveCell.FormulaLocal = f
            0