IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fonction Minimum et manière de la programmer [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Par défaut Fonction Minimum et manière de la programmer
    Bonjour à tous,

    Existe-t-il en VBA une fonction donnant le minimum d'une série de valeurs, du genre Min(1,2,3) ? Je n'ai pas réussi à en trouver dans l'aide...

    D'autre part, comme je n'en trouvais pas, j'ai essayé de m'en fabriquer une, mais elle ne marche pas. Voilà ce que j'ai fait (je n'ai pas besoin de comparer plus de 4 valeurs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function Min(ByVal Val1 As Single, ByVal Val2 As Single, Optional ByVal Val3 As Single, Optional ByVal Val4 As Single) As Variant
     
        'Renvoie le minimum de Val1, Val2, Val3 et Val4
     
        Dim Result As Single
        Result = Val1
        If Val2 < Result Then Result = Val2
        If Val3 <> Null And Val3 < Result Then Result = Val3
        If Val4 <> Null And Val4 < Result Then Result = Val4
        Min = Result
     
    End Function
    Pour Min(3,2,1), elle me renvoie 2. Je subodore donc que c'est ma syntaxe pour lui dire "S'il y a quelque chose dans Val3" qui est fausse, mais je n'ai pas trouvé la bonne (j'ai essayé avec <> Nothing et Not Val3.IsNull également). Quelqu'un connaîtrait-il la bonne manière d'écrire ça ?

    Merci d'avance !

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Les formules excel sont utilisable en VBA via l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction
    pour ton besoin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Min(Range("A1:A5"))
    Bonne continuation

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Par défaut
    Muchas gracias, c'est exactement ce qu'il me fallait. En plus, je pense que je vais pouvoir un peu utiliser les autres WorksheetFunctions... Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction minimum et recordset
    Par KGUTBM dans le forum VBA Access
    Réponses: 7
    Dernier message: 08/07/2008, 10h15
  2. VstI, les fonctions minimums
    Par NiamorH dans le forum Bibliothèques
    Réponses: 8
    Dernier message: 08/01/2008, 19h09
  3. La sous-fonction ne marche pas dans le programme principal
    Par lematlabeur dans le forum MATLAB
    Réponses: 11
    Dernier message: 15/11/2007, 21h04
  4. Réponses: 18
    Dernier message: 06/10/2007, 23h03
  5. appel des fonctions d'un driver dans un programme en c
    Par richie25 dans le forum Windows
    Réponses: 5
    Dernier message: 10/01/2006, 08h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo