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

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    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 chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonsoir,
    Non à ma connaissance
    Pourquoi la variable globale serait une mauvaise solution ?

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    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 éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    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

  5. #5
    Expert éminent
    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
    Points : 6 699
    Points
    6 699
    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 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 : 41
    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
    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

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    merci pour vos réponses, j'ai utilisé l'idée de la variable globale, bverif....tout simple ce qui me fallait, en plus cette meme variable peut etre utilisée pour toutes mes form....

  8. #8
    Expert éminent
    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
    Points : 6 699
    Points
    6 699
    Par défaut
    sans passer par des variables globales.
    .../...

    merci pour vos réponses, j'ai utilisé l'idée de la variable globale


    Didier

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    oui mais dans ce cas là cela me convient car j'en cree qu'une de variable globale et que je peux réutiliser pour toutes mes form...
    Je ne voulais pas avoir plein de variables globales qui me servent que dans un cas...

+ 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