Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives


 
 
LinkBack Outils de la discussion
Vieux 29/09/2004, 09h58   #1 (permalink)
man
Guest
 
Messages: n/a
Par défaut fonction VBA qui inscrit la valeur d'une formule au lieu de la formule

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:R 65536C2)=2003,IF(R6C5:R65536C5<>"""",R6C5:R65536C5 ))))"


D'avance merci.
 
ANNONCES
Vieux 29/09/2004, 10h33   #2 (permalink)
K@d
Guest
 
Messages: n/a
Par défaut Re: fonction VBA qui inscrit la valeur d'une formule au lieu de la formule

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)
 
Vieux 29/09/2004, 10h43   #3 (permalink)
Michel_M
Guest
 
Messages: n/a
Par défaut Re: fonction VBA qui inscrit la valeur d'une formule au lieu de la formule

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
 
Vieux 29/09/2004, 15h02   #4 (permalink)
Vériland
Guest
 
Messages: n/a
Par défaut Re: fonction VBA qui inscrit la valeur d'une formule au lieu de la formule

Bonne fête MICHEL

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




A+ Vériland
 
Vieux 29/09/2004, 15h40   #5 (permalink)
man
Guest
 
Messages: n/a
Par défaut Re: fonction VBA qui inscrit la valeur d'une formule au lieu de la formule

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

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 14h19.


(C) 2006 Excel Downloads