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 :

valeur de retour avec une form


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Par défaut valeur de retour avec une form
    Bonjour,

    est-il possible de récupérer une valeur de retour avec une forms?
    Genre vrai ou faux? sans passer par des variables globales.

    Nath

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonsoir,
    Non à ma connaissance
    Pourquoi la variable globale serait une mauvaise solution ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Par défaut
    bein je vais utiliser cela, la variable global, j'aurais trouver plus propre que la forme me renvoie une valeur, etant donnée, que cette valeur à une durée de vie très limitée....

    merci pour ta réponse!

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    ...etant donnée, que cette valeur à une durée de vie très limitée....
    alors prends une variable public
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public verif as Boolean 'en tete de module
    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    il me semble qu'en vba public ou global = même combat, global n'existant d'ailleurs pas en instruction.

    Sinon, une solution possible selon le contexte serait un déclaration au niveau module, puis le passage de paramètres si appel à d'autres procédures ou fonctions ?

    cordialement,

    Didier

  6. #6
    Expert éminent

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Il est aussi possible d'encapsuler le formulaire dans un autre objet avec gestion des évènements.

    exemple simple :

    Un formulaire UserForm1 avec un bouton et une zone de texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Event Fermeture(strValeur As String)
     
    Private Sub CommandButton1_Click()
    Unload Me
    End Sub
     
    Private Sub UserForm_Terminate()
    RaiseEvent Fermeture(Me.TextBox1.Text)
    End Sub
    Un module de classe cls_Form

    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
    Private p_Valeur As String
    Private WithEvents p_Form As UserForm1
     
     
     
    Private Sub p_Form_Fermeture(strValeur As String)
      p_Valeur = strValeur
    End Sub
     
    Function Afficher() As String
    Set p_Form = New UserForm1
    p_Form.Show 1
    Afficher = p_Valeur
     
    End Function
    Test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub essai()
    Dim oF As New Cls_form
    MsgBox oF.Afficher()
    End Sub
    Ici, le code du module récupère en retour de l'affichage le contenu de la zone de texte

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/02/2013, 15h24
  2. Réponses: 2
    Dernier message: 02/05/2011, 19h23
  3. Problème avec valeur de retour d'une fonction
    Par ouranos21 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 20/01/2009, 08h52
  4. Réponses: 7
    Dernier message: 25/09/2008, 14h13
  5. [VB6] Valeur de retour pour une Form
    Par preverse dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/08/2004, 17h16

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