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érer valeur ComboBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut Récupérer valeur ComboBox
    Bonjour,

    Sachez premièrement que j'ai regardé énormément de forums sur internet sur ce sujet... En vain.

    Mon problème est simple : je veux simplement récupérer la valeur d'une ComboBox pour la rentrer dans une variable.
    Cette variable est ensuite utilisée dans un Module.

    J'ai tout essayé : ComboBox1.Value, ComboBox1.Text, j'ai essayé de passer la variable en public, j'ai essayé sans variable (UserForm1.ComboBox1.Value), j'ai essayé dans tous les événements d'UserForm possible (CommandButton1_Click, ComboBox1_Change...). Mais rien y fait. un simple MsgBox de ma variable ne m'affiche rien (même quand je met une valeur par défaut à ma ComboBox).

    Un petit coup de main me serait d'une grande utilité!
    Merci par avance

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    ce qui est surprenant, c'est que dans ton listings de tests, y'a tout ce qu'il faut ! Tout du moins pour le cas classique tel que tu l'exposes


    Me.Combobox1.Value te donne la valeur sélectionnée
    tu peux utiliser ceci dans la procédure Comobobox1_Change() qui s'active à chaque fois qu'on modifie notre choix dans la combobox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox Me.Combobox1.Value
    Maintenant, il serait opportun de nous expliquer les résultats que tu as actuellement ? Des messages d'erreurs ? Une valeur fausse qui remonte ? Une valeur vide ? etc...

    un peu de détails, ça ne fera pas de mal

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Au vue du code que tu fournis je dirais que c'est normal!

    Si tu décides a nous en montrer un peut plus peut-être pourrons nous t'aider!

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    je crois que combobox1.value fait l'affaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("monfichier").Range("A1") = ComboBox1.Value
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 365
    Points : 631
    Points
    631
    Par défaut Récupérer valeur ComboBox
    peut être :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public maVariable As Variant
     
    Private Sub ComboBox1_Click()
        maVariable = ComboBox1.Text
    End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il faut que ta variable [maVariable] soit soit déclaré en public dans un module standard et ne soit pas déclaré plusieurs fois dans le code!

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par joe.levrai Voir le message

    Maintenant, il serait opportun de nous expliquer les résultats que tu as actuellement ? Des messages d'erreurs ? Une valeur fausse qui remonte ? Une valeur vide ? etc...

    un peu de détails, ça ne fera pas de mal
    J'ai rectifié un bout de code, maintenant, après avoir fait un unload Me dans le USF, quand je fais un MsgBox de mon USF.ComboBox1, j'obtiens toujours ma valeur par défaut.
    Alors que quand je fais un MsgBox de "Me.ComboBox1.Value" dans l’événement ComboBox1_Change(), il m'affiche la bonne valeur ...

    Voila le code :
    USF :
    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
     
     
    Private Sub ComboBox1_Change() 
     
        Date_ComboBox = ComboBox1.Value                                   'Date_ComboBox correspond à la variableque je veux récupérer dans le module
        MsgBox Me.ComboBox1.Value                                             'Renvoie la valeur par défaut, puis une fois changée, renvoie la bonne valeur
     
    End Sub
     
     
    Private Sub CommandButton1_Click()
     
     
        If 
              [...]
        Else
            Date_ComboBox = ComboBox1.Value
            MsgBox ComboBox1.Value                                    'Renvoie la bonne valeur
            Unload Me
        End If
     
    End Sub
     
     
     
    Private Sub UserForm_Initialize()
        Dim i As Integer
     
        For i = 1 To Sheets.Count
            ComboBox1.AddItem Sheets(i).Name
        Next
     
        ComboBox1.Style = fmStyleDropDownList
        ComboBox1.ListIndex = 0
     
    End Sub

    Et dans mon Module :

    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
     
    Public Date_ComboBox As String
     
    [...]
     
    Sub Date1()
    [...]
        UserForm1.Show
     
        MsgBox UserForm1.ComboBox1.Text               'Renvoie la valeur par défaut
     
        MsgBox Date_ComboBox                                'Renvoie la valeur par défaut
        Sheets(Date_ComboBox).Activate
     
    [...]
    J'ai énormément élagué le code en gardant uniquement ce qui est susceptible de vous interresser

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Comment veux-tu interragir avec ton userform si tu le unload

    ta variable globale reçoit la "valeur par défaut" à la toute fin de ton Userform initialize
    si ensuite tu unload, cette variable conservera donc la valeur par défaut

    pourquoi tu déportes ton traitement dans un module standard ? Tu ne peux pas tout héberger dans le module de ton userform.

    ou alors, je suis à côté de la plaque et j'ai pas compris ta mécanique ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Si tu fais un unload tu décharge
    le formulaire !
    Il faut faire un Me.Hide !

    Code module standard : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub test()
    UserForm1.show Vbmodal
    Msgbox UserForm1.combobox1
     
    unload UserForm1
    End Sub

    Code Userform1 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private quit_click()
    Me.Hide

  10. #10
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Aah, je pensais qu'il fallait les séparer (je me suis auto-formé au VBA)...

    Donc maintenant ça marche mieux, merci

    Mais, si je veux appeler ma macro par un bouton depuis une feuille de calcul, il faut que je créé une macro avec seulement un Show UserForm1?

  11. #11
    Invité
    Invité(e)
    Par défaut
    Tu fais un clic droit sur le bouton, affecter un macro, et tu choisis sub test!

    Ou peut importe le nom de ta macro!

  12. #12
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Oui d'accord pour ça avec votre méthode, mais avec la méthode de joe ça ne peut pas être la même chose!

  13. #13
    Invité
    Invité(e)
    Par défaut
    Si en prenant des précautions, mais je laisse Joe répondre!

  14. #14
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Ce ne sont pas nos façons de faire qui doivent être ta réponse

    c'est ton besoin exact, jusqu'ici je ne sais toujours pas la finalité
    je sais simplement que tu veux récupérer dans une variable la valeur de ta combobox. Mais pour en faire quoi ensuite ?

    avec juste ce besoin, la méthode de dysorthographie fonctionnera, tout comme les autres mécaniques possibles, y comprit la mienne. D'ailleurs, on peut généraliser le schéma :

    - une variable globale pour recevoir la valeur
    - à un moment donné, on y met la valeur de la combobox
    - plus tard, on utilise cette variable

    à toi de nous donner plus d'informations sur le bon "moment donné" et le devenir de cette variable, ce que tu vas en faire

  15. #15
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Vos méthodes combinées m'ont permis de réussir à faire ce que je voulais.

    Concrètement, la variable que je récupère permet à l'utilisateur de choisir la feuille qui subira le traitement.
    Il choisi la feuille souhaitée dans la combobox et s'en suivent les traitements.

    Merci à vous tous

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Je cherche le méme probléme, c'est donner a un entier I la valeur qui existe dans un combobox
    Par exemple : I = ("Combobox.Value") cela ne marche pas??

  17. #17
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 41
    Points : 24
    Points
    24
    Par défaut
    Essaye sans les guillemets

  18. #18
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Bilgates Voir le message
    Je cherche le méme probléme, c'est donner a un entier I la valeur qui existe dans un combobox
    Par exemple : I = ("Combobox.Value") cela ne marche pas??
    Un combobox contient toujours un texte et je te conseille d'éviter les conversions implicites donc : I = VAL(Combobox.Value)
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

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

Discussions similaires

  1. [WD17] Récupérer valeur combobox
    Par xGuigui78 dans le forum WinDev
    Réponses: 10
    Dernier message: 12/02/2013, 20h55
  2. Récupérer valeur combobox dans un form
    Par Skice dans le forum VB.NET
    Réponses: 9
    Dernier message: 03/06/2011, 11h00
  3. Problème pour récupérer valeurs d'un ComboBox
    Par david71 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/08/2007, 11h10
  4. récupérer valeur combobox
    Par wiss20000 dans le forum Servlets/JSP
    Réponses: 24
    Dernier message: 11/05/2007, 08h49
  5. Récupérer valeurs de plusieurs combobox
    Par NicoO_O dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/05/2007, 15h52

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