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 :

Premier userform avec combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 114
    Par défaut Premier userform avec combobox
    Bonjour à tous,

    Je cherche à remplir un combobox dans mon premier userform à vie. Le remplissage du combobox est dynamique car sa plage change tout le temps.

    Je voudrais que le remplissage sois dynamique aussi, je ne veux pas tout le temps modifier le range dans mon fichier excel. Voici mon code jusuq'à maintenant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Modification_Userform_Initialize()
     
    Set Ws_Scie = Sheets("Scie")
     
    'Empty Job_ComboCox
    Job_ComboBox.Clear
     
    'Fill Job_ComboBox
        With Ws_Scie
            Job_ComboBox.List = .Range("H8:H" & .Range("H" & .Rows.Count).End(xlUp).Row).Value
        End With
     
    End Sub
    Je ne sais pas si c'est parce que je dois appeler le private sub à s'executer par lui-même.

    un coup de main serait apprécié.

  2. #2
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Bonjour,
    Dans l'événement Activate ou Initialize de votre Userform collez le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Job_ComboBox.RowSource = Range("H8:H" & Range("H65536").End(xlUp).Row).Address 
    '##### Pour une travail plus complet, remplacez H65536 par H1048576, si vous utilisez une version d'Excel supérieur à 2003 ######
    Dans ce cas, L'instruction Job_ComboBox.Clear ne vous servira à plus rien.

    Cordialement.
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 114
    Par défaut
    Ça ne fonctionne toujours pas...

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonsoir Sherman, Xlrator, bonsoir le forum,

    Ton code est correct, mis à part la ligne Clear qui ne sert à rien et la variable Ws_Scie qui n'est pas déclarée.
    Si l'Userform s'appelle Modification_Userform tu devrais avoir ta combobox correctement alimentée.
    Pour l'afficher, un CommandButton dans un onglet par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Modification_Userform.Show
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 114
    Par défaut
    Dans le Module j'ai cette partie de code qui affiche le userform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Bouton_modification()
     
    Modification_Userform.Show
     
    End Sub
    Est-ce que je devrais prendre ce bout de code et le mettre dans une private sub???

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonsoir le fil, bonsoir le forum,

    Normalement non, ce code semble correspondre à un bouton qui doit se trouver quelque part dans un onglet. Tu cliques dessus et ça t'affiche l'Userform. Mais sans le fichier on va y passer des heures !...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,

    Je ne vais pas te fournir d'exemple, mais avec la propriété .RowSource défini par une plage nommée dont sa référence (ReferTo) utilise une fonction (avec DECALER par exemple) te donnera une plage dynamique.
    Il est possible de mettre la propriété .Visible à False pour ne pas gêner les utilisateurs d'Excel.
    Dans le pire des cas, il y a de toute façon les événements Worksheet pour notifier les changement dans les cellules.

  8. #8
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Personnellement je n'utilise jamais la propriété [RowSource] qui ne permet pas, par exemple de filtrer les données d'une ComboBox ou d'une ListBox. La manière utilisée par Sherman et tout autant dynamique que la méthode avec une plage nommée à l'aide de Decaler. Mais comme on dit : les coups et les douleurs, hein...

Discussions similaires

  1. [XL-2013] Userform avec deux combobox
    Par dubdub87 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 23/01/2015, 16h03
  2. [XL-2010] Alimenter Combobox dans Userform avec noms définis variables
    Par aethangaia dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2014, 14h24
  3. [XL-2011] Userform de recherche avec ComboBox et ListBox
    Par Pesticide dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 05/05/2014, 02h58
  4. [XL-2010] Userform avec textbox et combobox
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2012, 11h17
  5. [XL-2003] imprimé feuille excel directement d'un userform avec combobox
    Par tazko dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/01/2011, 23h35

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