fanjomtl
Messages postés20Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention27 janvier 2008
-
18 mai 2007 à 21:20
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
19 mai 2007 à 16:07
Bonjour à tous !
Toujours à la découverte du VBA pour Excel et quelques problèmes:
1) petite question pour commencer: Comment utiliser le retour d'un InputBox?
Je récupère un nombre avec un Input box qui demande le "dénominateur" voulu par l'usager:
Denominateur = InputBox(Message2, Titre2)
Pourquoi dans mon code
ActiveCell.Formula = "PiFo(Denominateur)" ne donne rien ( message dans EXCEL : #VALEUR!)
alors que
A
ctiveCell.Formula = "PiFo(1000)" me donne un résultat valide dans la cellule active ??
2) Combiner texte et résultat d'une fonction
Ensuite, je voudrai afficher dans la cellule active la phrase :
La fonction PiFo retourne le nombre *résultat de la fonction*
(sachant que ma fonction "PiFo" prend un nombre en parametre et en retourne un autre.)
J'ai essayé pour tester avec le chiffre 10000 :
ActiveCell.Formula = "La fonction PiFo retourne le nombre :" & "=PiFo(10000)"
ça ne marche pas
ActiveCell.FormulaR1C1 = "La fonction PiFo retourne le nombre :=PiFor(10000)" qui ne marche pas non plus...
Je vous remercie beaucoup !
@+
A voir également:
Comment concatener texte + résultat d'une fonction ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 18 mai 2007 à 21:33
Salut,
pour ton 1), sache que VB interprête ce qu'il y a entre guillemets comme chaine de caractères, il ne comprend donc pas les variables qui s'y trouvent.
Avec ActiveCell.Formula = "PiFo(" & Denominateur & ")", tu verras, ça ira mieux !
Pour ton 2), c'est quoi PiFo, une function créée par tes soins ?
Si oui, elle est forcémment en publique, donc il suffit de faire ça :
ActiveCell.Formula = "La fonction PiFo retourne le nombre : " & PiFo(10000)
Si c'est une fonction d'Excel (et que je n'ai pas), tu mets le résultat dans une cellule (de PiFo) et tu concatènes comme 2 textes.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 19 mai 2007 à 16:07
Tu peux utiliser Value ou Formula ou même rien du tout
C'est plus une question de lisibilité (ou de convention)
Si on voit le mot Formula dans une commande, on pourrait s'attendre à y retrouver une formule telle quelle.
ex:
ActiveCell.Formula = "=Pifo(1000)"
Tu retrouveras le résultat de ta Function dans la cellule, mais ce sera la formule qui sera inscrite dans la barre de formule.
Ici, tu veux transférer une valeur dans la cellule, alors aussi bien y aller avec .Value.