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 :

récupération de variable depuis un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut récupération de variable depuis un userform
    Bonjour,
    Voici mon problème :
    je souhaite créé un userform a partir du quel je récupère une valeur string pour pouvoir l'utiliser dans un module or je n'arrive pas a "exporter' cette variable.
    Dans le module ou je souhaite la récupère elle apparaît comme var1 = " " et ce même au niveau de la déclaration en public en ligne 1...
    merci d'avance pour les solutions apportées.
    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
    16
    17
    18
    Public monchoix As Variant
     
    Public Sub CheckBox1_Click()
    Dim monchoix As String
     
    monchoix = UserForm1.CheckBox1.ControlTipText
    End Sub
     
    Public Sub CheckBox2_Click()
    Dim monchoix As String
    monchoix = UserForm1.CheckBox1.ControlTipText
    End Sub
     
    Public Sub CommandButton1_Click()
     
    UserForm1.Hide
    'Import
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Déclare ta variable Public dans un module plutôt que dans le Userform.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut
    Merci de ta réponse, je viens d'essayer, ça ne fonctionne toujours pas. Impossible de récupère ma valeur texte ...!??

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Merci de ta réponse, je viens d'essayer, ça ne fonctionne toujours pas. Impossible de récupère ma valeur texte ...!??
    C'est que tu ne l'as pas bien déclarée
    Code dans un module nommé Module1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Explicit
    Public mavar As String
    Sub main()
     UserForm1.Show
     MsgBox "Mavar = " & mavar
    End Sub
    Code dans UserForm1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub CommandButton1_Click()
     mavar = "Yes"
     'UserForm1.Hide
     Unload Me
    End Sub
    Soit Unload Me soit UserForm1.Hide
    Tu lances la procédure Main et après avoir cliqué que le bouton nommé CommandButton1 tu verras qu'il affichera le texte yes
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Perso, je n'aime pas les variables publiques.

    Il faut savoir que userform.hide n'est pas égal à unload userform. La première instruction masque le userform, la seconde le décharge de la mémoire.

    On peut dès lors travailler en quatre temps: Chargement, affichage, masquage, déchargement. L'intérêt est que entre le chargement et l'affichage, on peut lui passer des valeurs, et entre le masquage et le déchargement, on peut récupérer des valeurs.

    L'exemple qui suit illustre cela, et permet de se passer des variables publiques. Il utilise un userform possédant un textbox nommé tboText et deux boutons, btnSubmit et btnCancel. une propriété en lecture/écriture au sein du userform permet de tester quel bouton a été pressé.

    Code d'appel et de traitement dans le module standard
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Appel()
      Dim Temp As String
     
      Load usfCatchValue
      usfCatchValue.tboText.Value = "Bonjour"
      usfCatchValue.Show
      If usfCatchValue.ButtonClicked = "Submit" Then
        Temp = usfCatchValue.tboText.Value
      End If
      Unload usfCatchValue
    End Sub

    Code dans le userform
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public ButtonClicked As String
     
    Private Sub btnCancel_Click()
      ButtonClicked = "Cancel"
      Me.Hide
    End Sub
     
    Private Sub btnSubmit_Click()
      ButtonClicked = "Submit"
      Me.Hide
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [AJAX] Récupération de variable depuis la BDD
    Par patrickbunga dans le forum AJAX
    Réponses: 0
    Dernier message: 09/09/2014, 12h41
  2. Récupération de variable depuis PHP
    Par blinkman04 dans le forum jQuery
    Réponses: 3
    Dernier message: 29/01/2014, 19h52
  3. Réponses: 1
    Dernier message: 13/10/2009, 08h57
  4. [MySQL] récupération variable depuis une requête pour en déclencher une autre
    Par Baldric de Dol dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/05/2008, 20h35
  5. [MySQL] récupération de variables depuis flash avec loadvar()
    Par lochou dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/10/2006, 23h07

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