VBA - Insérer une formule pour certaines cellules

Bonjour,

J'ai des formules dans les cellules des colonnes M et T que je souhaiterais mettre dans un code VBA plutôt qu'inscrire dans chaque cellule.

Voici les formules en question:

Cellules lignes 7 à l'infini de la colonne M: =SI(ET(J<>"";K<>"";L<>"");J*K*L;"")
Cellules lignes 7 à l'infini de la colonne T: =SI(ET(Q<>"";R<>"";S<>"");Q*R*S;"")

Avez-vous une astuce qui pourrait m'aider?

Mes meilleures salutations,

Thierry

Je joins un fichier test comme exemple:

44test.xlsm (18.21 Ko)

Bonjour, si vous utilisez un tableau structuré (option : "Mettre sous forme de tableau" ).

votre formule se répètera toute seule quand vous écrivez sur la première ligne qui suit votre tableau.

Formule qui peut s'écrire aussi =SI(NBVAL(J7:L7)=3;J7*K7*L7;"")

Ci-après dans l'exemple écrivez en B10 vous constaterez que les formules sont répétées.

38test-retour.xlsm (91.26 Ko)

Bonjour,

Méthode : vous faites apparaître la fenêtre exécution dans l'éditeur VBA (Ctrl-G)

Vous vous positionnez successivement sur les cellules où vous avez déjà mis en place vos formules.

Dans la fenêtre exécution vous tapez ? Activell.FormulaR1C1. Vous allez obtenir cela :

capture

Ensuite, dans votre module standard, vous ajoutez ces lignes de code où vous reconnaissez vos formules. Vous avez juste à encadrer les guillemets existantes dans vos formules.

Sub test()

    With Sheets("Test")
         .Range("M7:M10").FormulaR1C1 = "=IF(AND(RC[-3]<>"""",RC[-2]<>"""",RC[-1]<>""""),RC[-3]*RC[-2]*RC[-1],"""")"
         .Range("T7:T10").FormulaR1C1 = "=IF(AND(RC[-3]<>"""",RC[-2]<>"""",RC[-1]<>""""),RC[-3]*RC[-2]*RC[-1],"""")"
   End With

End Sub

Bonjour Eric,

Merci pour votre code mais je ne souhaite pas garder de formule excel dans les cellules.

Je souhaiterais que ça calcul automatiquement par code VBA lorsque les 3 colonnes (JKL ou QRS) sont remplies.

Je joins le fichier avec votre code.

Meilleures salutations,

Thierry

23test.xlsm (18.15 Ko)

Bonjour Xmenpl,

Merci pour votre proposition mais je souhaite absolument passer par un code VBA sans formule dans mes cellules.

Meilleures salutations,

Thierry

Une fois les formules mises en place, vous copiez les plages et vous les collez sur elles-mêmes en special valeur. Utilisez l'enregistreur de macro.

Re Eric,

Désolé mais je ne comprends pas votre dernier message.

Puis-je vous demander le fichier test en retour avec votre proposition ?

Mes meilleures salutations,

Thierry

Vous créez une macro et vous enregistrez les séquences :

  • Sélection de la plage M7:M10
  • Copie des cellules.
  • Clic droit
  • Collage spécial
  • Cocher Valeurs et valider.

Vous arrêtez l'enregistrement de la macro et vous regardez le code obtenu.

capture
Rechercher des sujets similaires à "vba inserer formule certaines"