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 Run dans un Userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut fonction Run dans un Userform
    Bonjour,

    je galère avec la fonction run dans une sub dans un userform.

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Calculate_Button_Click()
        Dim MyVal As String
     
        Call GetValues ' une sub qui recupere des données pour completer le dico MyDicoParam
     
    'Le nom de la sub selon le valeur qui est choisi dans le combobox
    MyVal = Application.WorksheetFunction.Substitute(Me.Pricing_Name.Value, " ", "") & "PO"
        T = 90 ' MyDicoParam("StrikeDate") - Date 'jour ouvré?
    Call ThisWorkbook.Application.Run("NewDatas." & MyVal, 1, MyDicoParam("UnderPrice"), MyDicoParam("Strike"), MyDicoParam("FreeRate") / 100, MyDicoParam("Vol") / 100, T)
    Le nom de mon userform c'est NewDatas

    Il n'arrive pas executer la sub que je veux utiliser avec le run, je sais le faire pour utiliser une sub dans un module mais il semble que dans un userform ca ne fonctionne pas .

    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bonjour à toi,

    Pourrais tu être plus précis quand tu dit qu'il n'arrive pas à exécuter la sub.
    Tu as un message d'erreur ?
    Que se passe t'il exactement ?

    Pour info sur MSDN à propos de la fonction Run il est indiqué :
    Les objets qui sont transmis à la macro en tant qu’arguments sont convertis en valeurs (en appliquant la propriété Value à l’objet). Cela signifie que vous ne pouvez pas passer d’objets aux macros à l’aide de la méthode Run.
    Hors tu passe quasiment que des objets....

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Je ne comprends pas, si tu veux utiliser un userform et si il s'appel NewDatas olors NewDatas.show.

    Si tu veux utiliser un méthode avec passage de paramètres il faut déclarer une sub en public.
    Code NewDatas : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Pubic sub Test(param as string)
    Msgbox param
    Me.show
     
    Sub Main()
    NewDatas.test "Toto"
    End sub

  4. #4
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    D'accord donc je ne peux pas le faire à priori. J'ai mis ma sub dans un module du coup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call ThisWorkbook.Application.Run("Sub_Pricing." & MyVal, OptionType, MyDicoParam("UnderPrice"), MyDicoParam("Strike"), MyDicoParam("FreeRate") / 100, MyDicoParam("Vol") / 100, T / 365)
    Tempis donc on ne peux effectivement pas le faire

    Merci en tout cas.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Un userform c'est une classe, pour accéder à un sub de la classe en dehors de la classe il faut déclarer cet sub en public.mais il faut appeler cette sub via une déclinaison de la classe.

    MyUserForm.MYSubPublicJe ne vois pas le problème je pense que tu peux faire un run si tu décline bien la classe!

  6. #6
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut
    Pourquoi utilises tu Run et pas un call ?
    Par défaut dans un userform une macro est précédée de private, pour la lancer d ailleur il faut qu elle soit PUBLIC.
    On ne peut pas lancer directement un userform d un autre classeur, il faut avoir une macro dans un module du classeur contenant l userform
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/04/2016, 16h43
  2. [XL-2010] Utiliser une fonction contenue dans un module standard dans un userform
    Par tony76 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/05/2015, 07h14
  3. Appel de fonction dans un userform
    Par bsangoku dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/01/2013, 21h23
  4. Fonction RECHERCHEV dans UserForm
    Par RussellD dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/04/2010, 18h36
  5. Réponses: 7
    Dernier message: 20/07/2009, 14h50

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