fonction VBA qui inscrit la valeur d'une formule au lieu de la formule

  • Initiateur de la discussion Initiateur de la discussion man
  • Date de début Date de début

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 !

M

man

Guest
Bonjour,

un prècédent post n'ayant pas porté ses fruits, je repose la question differement :

Existe t'il une fonction VBE qui permet dans une macro d'afficher dans une cellule le résulat d'une formule sans y inscrire toute la formule ?

L'intéret étant le gain de place.


la formule de calcul serait la suivante

Range("K6").Select
Selection.FormulaArray = _
"=AVERAGE(IF(MONTH(R6C2:R65536C2)=9,IF(YEAR(R6C2:R65536C2)=2003,IF(R6C5:R65536C5<>"""",R6C5:R65536C5))))"


D'avance merci.
 
Salut !

Tu peux simplement "mettre en valeur" tes résultats après avoir fait tes calculs.

Exemple :

'on calcule une somme
Selection.FormulaR1C1= "=SUM(....)"
'on ne garde que le résultat
Selection.text=selection.value

Sinon, il est possible de faire un copier / collage spécial valeurs
Selection.copy
Selection.pastespecial (xlvalues)

Ou enfin, tu peux définir comme variable dans VBA ta formule et ne recopier dans la cellule que le résultat !

A ta disposition pour plus d'informations.

Clément

"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." (devise Shadock)
 
Bonjour Man, Kad et Forum

Tu as 2 possibilités:

1/ utiliser la fonction evaluate:
tavariable=EVALUATE("....ta formule....") ou [taformule sans guillemets]

2/ utiliser application.worksheetfunction:
dans ton cas tu aurais peut-être intérêt à transformer ta formule en utilisant SUMPRODUCT divisé par le nbre d'éléments
rappel: les références au plage doivent être arguments de range
par exemple "A1:H5" avec worksheetfunction s'écrira range("A1:H5")


Bon courage

Michel
 
Bonne fête MICHEL
smiley_396.gif


Le dicton du jour:

"A la Saint Michel Regarde le ciel...S'il se baigne l'aile il pleut jusqu'à Noël."

Le dicton du mois:

"En septembre les feignants peuvent s'aller pendre."

smiley_699.gif



Ce lien n'existe plus
 
Bonjour Kad et olivier, heu non Michel

merci pour votre aide.
Voici ce à quoi j'arrive :

avec Selection.text=selection.value
ca ne fonctionne pas

avec Selection.copy
Selection.pastespecial (xlvalues)
ca fonctionne très bien et je me demande bien pourquoi je n'y ai pas pensé avant, même si je ne trouve pas très "propre" mais l'efficacité avant tout.


avec tavariable=EVALUATE("....ta formule....") ou [taformule sans guillemets]
j'avais déja essayé cette fonction (je crois que c'est toi michel qui me l'a apprise il y qq mois). malheureusement j'ai essayé dans tous les sens et elle ne veut pas fonctionner avec sumproduct. (pourtant ca mache très bien avec somme par exemple).


avec utiliser application.worksheetfunction:
ca dépasse mes compétences.

si qq'un arrive a faire fonctionner la formule avec evaluate je lui tire mon chapeau.


En tous cas merci encore.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour