Comment écrire une formule dans une plage de cellules en VBA ?

Introduction

Question fréquemment posée dans les forums est l’insertion de formule à l’aide d’une procédure VBA.
Une façon simple d’intégrer une formule dans un code VBA est l’utilisation de l’enregistreur de macros. Cependant l’enregistreur génère la formule en style R1C1 ce qui n’est pas toujours simple à gérer.
Le plus simple est d’écrire la formule dans excel et de la lire ensuite à l’aide d’une simple instruction en utilisant la propriété Formula de l’objet Range.

Comment écrire une formule simple dans une cellule ?

Exemple 1 :

Prenons un exemple en plaçant en cellules A2 et B2 un nombre quelconque et en cellule C2, une formule qui renvoie le produit de la valeur de ces deux cellules.

Les différentes étapes illustrées plus bas sont :

  1. En cellule C2 la formule =A2*B2
  2. Dans la fenêtre d’exécution de l’éditeur VBA (Ctrl+G), nous taperons l’instruction « ? Range("C2").Formula » en la validant par la touche Entrée (Enter).  « ? » est une commande raccourcie pour l’instruction Debug.Print)

    Formule simple 1

  3. Le code va donner =A2*B2 qu’il suffira d’intégrer dans une instruction VBA en utilisant la propriété Formula de l’objet Range en lui passant la formule comme valeur Alphanumérique.
    Soit

Exemple 2 :

Nous allons maintenant, écrire une fonction de base d’excel, la somme d’une plage en ligne ($B$2 :$G$2) que l’on placera en cellule H2
Répétons les étapes 1 à 3 décrites plus haut.

  1. Ecriture de la formule =SOMME(B2:G2) en H2
  2. La ligne tapée dans la fenêtre d’exécution nous renvoie =SUM(B2:G2)
  3. Formule qu’il suffit maintenant de placer comme valeur alphanumérique dans la propriété Formula

Comment écrire sa formule dans une plage de cellules ?

Par exemple pour la plage H2:H101 de la feuille [Feuil1], il suffit tout simplement d’écrire.

 

La suite dans ce billet A l’aide de VBA, comment écrire une formule plus complexe dans une cellule ?

 

 

 

 

 

2 pensées sur “Comment écrire une formule dans une plage de cellules en VBA ?

  • 30 juin 2016 à 0 h 13 min
    Permalink

    D’autres utilisateurs de votre classeur peuvent ne pas comprendre vos formules. Dans la pratique, les formules matricielles n’etant generalement pas expliquees, si d’autres personnes sont appelees a modifier vos classeurs, vous devez soit eviter les formules matricielles, soit veiller a ce que ces personnes connaissent les formules matricielles et sachent comment les modifier en cas de besoin.

    Répondre
    • 12 juillet 2016 à 14 h 37 min
      Permalink

      Bonjour,
      Merci pour votre commentaire.
      Toutefois et sauf erreur de ma part dans aucun de mes billets je n’ai utilisé de formule matricielle (au sens excel du terme en validant par Ctrl+Shift(Maj)+Enter(Retour) ).
      De plus votre commentaire se trouve à la suite d’une explication de « Comment traduire une formule dans une plage de cellules en VBA« ) où l’exemple donné est fait sur la fonction SOMME qui est une des fonctions de base d’excel.
      Philippe Tulliez

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.