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 :

Problème de récupération d'une variable créée par un userform dans un module [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut Problème de récupération d'une variable créée par un userform dans un module
    Pièce jointe 154744Bonjour à tous,
    Je débute en VBA.
    J'ai créé un UserForm dont le résultat est inséré dans une variable. J'ai déclaré la variable au début de la feuille avant les macros sous la forme Public. Cependant la valeur de la variable reste vide dans la macro, alors qu'elle évolue correctement dans l'UserForm.

    Voici le code de l'UserForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Valeure_propriete_machine As String
     
    Private Sub CommandButton1_Click()
     
        Valeure_propriete_machine = ComboBox1.Value
        Unload UserForm_Machine
     
    End Sub
    Et le code le macro récupérant la variable :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub Insertion_propriete_Machine()
    'Renseigne la propriete Machine : Menus déroulants soit une machine choisie par l'utilisateur
     
    If MsgBox("Souhaitez-vous appliquer une seule machine à l'ensemble des pièces et assemblages non resneignés ?", vbYesNoCancel + vbDefaultButton2, "Insertion de la propriété Désignation") = vbNo Then
     
        Dim V3 As Integer
        V3 = 12
        While Cells(V3, 1) <> ""
        Cells(V3, 12).Select
            If Not ActiveCell <> "" Then
                With Selection.Validation
                    .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="=Listes_menus_deroulants!$A$2:$A$26" 'VOIR POUR INSERER VARIABLE
                    .IgnoreBlank = True
                    .InCellDropdown = True
                    .InputTitle = ""
                    .ErrorTitle = ""
                    .InputMessage = ""
                    .ErrorMessage = ""
                    .ShowInput = True
                    .ShowError = True
                End With
            End If
            V3 = V3 + 1
        Wend
    Else
        'Valeure_propriete_machine = InputBox("Indiqué la valeur appliqué", "Valeure de la propriété désignation")
        UserForm_Machine.Show
     
        Dim V4 As Integer
        V4 = 12
        While Cells(V4, 1) <> ""
        Cells(V4, 12).Select
            If Not ActiveCell <> "" Then
                ActiveCell = Valeure_propriete_machine
            End If
            V4 = V4 + 1
        Wend
     
    End If
     
    End Sub
    Je joins également le classeur.
    Je vous remercie par avance.
    Salutations.
    Merci de ainsi que d'utiliser les boutons et

  2. #2
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Voici un code que j'utilise actuellement, qui permet de faire ce que tu veux

    Dans L'userform :

    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
    19
    Private mSelected As String
     
    Property Let Str_Selection(Str_Selection As String)
         mSelected = Str_Selection
    End Property
     
    Property Get Str_Selection() As String
        Str_Selection = mSelected
    End Property]
     
    Private Sub CommandButton2_Click()
     
    With Lbx_Select
        mSelected = .List(.ListIndex)
    End With
     
    Me.Hide
     
    End Sub
    Ici, je créer une nouvelle propriété de l'Userform, et lorsque je clic sur un bouton, je renseigne cette propriété.

    Ensuite, pour récupérer la valeur, rien de plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Load Userform1
    Userform1.show
    UneVariable = Userform1.Str_Selection
    Unload Userform1


    Sinon, pour ton problème, essaie de déclarer la variable publique dans un module, et pas dans l'Userform.
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    il faut déclarer ta varible comme public sans le dim dans un module stamdard et supprimer les autres déclarations

  4. #4
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut MERCI !!
    Cela fonctionne j'ai déclaré la variable dans le module est ça fonctionne.
    Et dire que cela fait plusieurs heures que je cherche...
    Merci.
    Merci de ainsi que d'utiliser les boutons et

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

Discussions similaires

  1. [MySQL] problème avec la récupération d'une variable session
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/06/2011, 15h01
  2. [MySQL] Récupération d'une variable passée par l'URL
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/01/2010, 19h45
  3. Réponses: 10
    Dernier message: 08/10/2009, 14h41
  4. Réponses: 5
    Dernier message: 25/05/2007, 10h22

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