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

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.
 
K

K@d

Guest
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)
 
M

Michel_M

Guest
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
 
V

Vériland

Guest
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
 
M

man

Guest
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.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
314 162
Messages
2 106 603
Membres
109 637
dernier inscrit
lafforest