[Déplacé .Net --> VBA] afficher le min de plusieurs valeurs, problème de synthax

cs_anna81 Messages postés 7 Date d'inscription jeudi 26 février 2009 Statut Membre Dernière intervention 31 mars 2010 - 30 mars 2010 à 14:50
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 31 mars 2010 à 21:21
BONJOUR

Je n'arrive pas à exprimer le min parmis plusieurs valeurs, j'ai un problème de synthaxe.


Public Function Min()
Min(largeurpoteau - 4, 0.9 * hauteurutile)=m
End Function


???????
Le min sera ma variable m que je vais devoir utiliser dasn las suite des calculs.

Merci !!

3 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
30 mars 2010 à 20:25
Salut
Pas clair du tout.
Commence par respecter la syntaxe logique :
Si ta fonction doit renvoyer quelque chose, il faut forcemment qu'on voit, à l'intérieur, quelque chose du genre
Min = ...

Ensuite, tu ne peux pas appeler une fonction en l'utilisant elle-même à l'intérieur.
Ta fonction s'appelle MIN et tu appelles une commande, à l'intérieur, qui semble aussi s'appeler MIN !

... un doute m'habite : Serais-tu sous Excel ?
Et essayerais-tu d'utiliser la fonction interne Min de Excel ?

Si tel est le cas, tu ne peux pas appeler une de tes propres fonctions du même nom !
En plus, pour l'appeler, il faut faire référence à
Application.WorksheetFunction.Min(...

Tu veux simplement que ta fonction te renvoie une valeur issue de ton calcul ?
-1- Faire une déclaration propre de la fonction :
Si ta fonction doit renvoyer un chiffre à virgule, simple précision :
Public Function monMin() As Single

-2- Faire en sorte que ta fonction renvoie qqchose :
Public Function monMin() As Single
    monMin = Application.WorksheetFunction.Min(largeurpoteau - 4, 0.9 * hauteurutile)
End Function 

-3- Appeler ta fonction depuis ton code :
m = monMin


Par pitié, la prochaine fois :
- Choisis la bonne catégorie : ça influence beaucoup les réponses et évite de perdre du temps (et des nerfs)
- Soit plus précis dans tes explications. Là, ça va que je suis champion du monde de boule cristal 2005-2006, parce que sinon, impossible de déméler l'écheveau !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_anna81 Messages postés 7 Date d'inscription jeudi 26 février 2009 Statut Membre Dernière intervention 31 mars 2010
31 mars 2010 à 15:54
Salut,

Tes explications sont très claires et très bien exposées, merci pour cette réponse.
je suis très touchée qu'une personne aussi confirmée que toi ait pris la peine de me répondre.D'autant que le statut de débutant n'est pas toujours facile à assumer...

Tu as bien cerné mon problème en dépit du fait que mon message n'était pas clair du tout.Par contre, je suis désolé mais je ne comprends pas en quoi je me suis trompée de catégorie, "Divers/débutant" bien que j'aurai du préciser que je travaillais sur excel.

J'avoue que je me suis très mal exprimée...Cela ne fait que 15 jours que je suis sur VB,et ce n'est pas évident. Je dois améliorer une feuille de calcul excel en intégrant du VB pour faciliter la lisibilité et la mise en place des équations.En fait je suis étudiante en génie civil et actuellement en stage de fin d'étude sauf que mon tuteur n'est jamais là ou bien trop débordé.


Anna.
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
31 mars 2010 à 21:21
Ok Anna et merci pour ces compliments.
Pour la catégorie, regarde celle que j'ai remplacée : Il est important de bien le préciser car certaines solutions ne fonctionnent pas / ou ne fonctionnent qu'avec / un type de VB.
Dans ton cas, le VB de Excel est du VBA.

Bonne continuation.
0