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

VBA Discussion :

Liste d'arguments prédéfinis dans fonction personnalisée


Sujet :

VBA

  1. #1
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut Liste d'arguments prédéfinis dans fonction personnalisée
    Bonjour à toutes et tous !

    Comme indiqué dans le titre, je souhaiterai mettre à disposition du développeur VBA (moi-même en l'occurrence ) une liste de valeurs prédéfinies pour un argument dans une fonction personnalisée, de la même manière qu'on a la liste des constantes intrinsèques correspondant aux boutons d'une MsgBox (vbOkOnly, vbOkCancel, ...).

    Pour vous situer un peu mieux, je suis en train de me créer une fonction de conversion du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function ConvertDimensions(ByVal Valeur As Double, ByVal UniteDepart As String, ByVal UniteCible As String)
     
    End Function
    et je souhaiterai que la saisie de UniteDepart et UniteCible soit facilitée par l'apparition d'une liste de constantes représentant les unités de mesure disponibles au moment de les renseigner.

    J'ai eu beau fouiller, je n'ai rien trouvé à ce sujet...

    En vous remerciant par avance pour votre aide,
    Eric.
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Que veux-tu faire exactement ?

    1) Modifier l'intellisence de VBA ?

    C'est impossible en VBA mais possible avec les dernières versions de VB.net en utilisant des fichiers XML.

    2) Imposer des constantes de calcul dans une fonction ou une sub ?

    Cela devrait être possible.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut
    Bonjour Clément, et merci pour cette réponse rapide.

    L'idéal serait... les deux !

    Pour imposer des constantes, je me disais que ça se réglerait avec un simple Select Case, mais si tu as autre chose sous le coude, je suis preneur.

    Mon idée était plus proche de la modification ponctuelle de l'Intellisence.

    La création de ma fonction ne me pose aucun problème particulier, c'est du côté de l'assistance à celui qui va l'utiliser que je m'interroge : le principe d'un convertisseur veut qu'on lui donne une unité de départ et une unité cible, et que chacun de ces deux paramètres peut prendre des valeurs diverses et variées.
    L'absence d'aide visuelle lors de la saisie implique que l'utilisateur doit connaître l'ensemble des possibilités.
    C'est cette dernière contrainte que je voudrais éliminer.

    Si tu as des billes sur l'éventuelle solution en VB .Net (que j'avoue ne pas connaître, mais bon, j'ai commencé avec Basic à la fin des années 70, ça ne devrait pas trop me dérouter), je suis aussi intéressé.

    Cordialement,
    Eric.
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Enum MyUnit
        cm = 0
        dm = 1
        m = 2
    End Enum
     
     
    Function ToCm(v As Integer, mU As MyUnit)
    ToCm = v * 10 ^ mU
    End Function
     
     
    Sub test()
    MsgBox ToCm(1, MyUnit.m)
    End Sub
    Ce qui permet, quand on écrit ToCm(1, de disposer de l'inteliscence

  5. #5
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut
    WAHOU !!!

    J'ai presque honte de dire que j'ai commencé à la fin des années 70 avec le Basic...

    Mille merci pour cette réponse aussi rapide qu'efficace et pour tous les services qu'elle va me rendre !

    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/05/2014, 14h53
  2. [XL-2003] Description des arguments attendus dans une fonction personnalisée
    Par jfontaine dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/11/2011, 18h27
  3. Réponses: 1
    Dernier message: 28/06/2010, 17h52
  4. Réponses: 4
    Dernier message: 04/03/2010, 15h13
  5. [Débutant] Utiliser des listes en argument d'une fonction
    Par erkenbrand dans le forum Windows Forms
    Réponses: 10
    Dernier message: 29/05/2008, 12h56

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