Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Inscrire Formule dans cellule via macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Will-e-coyote

XLDnaute Occasionnel
Bonjour le Forum,

Je souhaiterai faire mettre une formule dans une cellule par une macro (Pour empecher les utilisateurs de mettre n'importe quoi).

Ma formule est la suivante =IF(OR(ISBLANK(T2),T2=0),0,ROUND(R2/T2,2))

J'ai essaye de le faire en VBA avec la commande suivante (dans une Macro Worksheet_SelectionChange), sachant que cela doit se passer dans la colonne U .

Code:
Target.Formula = "=IF(OR(ISBLANK(" & Target.Offset(0, -1).Name & ")," & Target.Offset(0, -1).Name & "=0),0,ROUND(" & Target.Offset(0, -3).Name & "/" & Target.Offset(0, -1).Name & ",2))"

Si quelqu'un pouvait me donner une piste pourquoi ce code ne fonctionne pas....

Merci les Copains😎
 
Re : Inscrire Formule dans cellule via macro

Bonjour.
En portent-elle seulement, des noms, toutes vos cellules ? J'en doute.
Étant donné qu'il n'y a aucune référence absolue dans votre formule tout d'abord mentionnée, c'est la même formule R1C1 qui doit probablement convenir quelle que soit la ligne.
P.S. C'est justement parce qu'elles sont toujours beaucoup plus claires à réétudier, même quand on affiche en A1, que l'enregistreur de macro inscrit toujours les formules en FormulaR1C1.
Cordialement
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
586
Réponses
4
Affichages
652
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…