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 :

Userform présélection d'une valeur variable dans une combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 20
    Par défaut Userform présélection d'une valeur variable dans une combobox
    Bonjour à tous,

    J'ai créé un userform pour pouvoir modifier les liens hypertexte de boutons présent sur plusieurs feuilles, les liens hypertextes sont répertoriés dans une autre feuilles nommé "Listes".
    J'aimerais pouvoir pré sélectionner la valeur de la première combo box en fonction du nom de la page active.

    exemple.xlsm

    Dans mon fichier exemple, cela voudrait dire que lorsque je suis sur la feuille appelé A, ma première combobox, préselectionnera la valeur A.
    La subtilité est que mes combobox sont remplis par des listes déroulantes en cascade, il ne faudrait donc pas que la pré attribution de la valeur vienne chambouler tout ce qu'il y a derrière.

    Je vous remercie d'avance pour le temps que vous prendrez à étudier mon problème

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    Il suffit de compléter votre procédure d'initialisation (lignes 8 et 9):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
        'Définit la feuille contenant les données
        Set Ws = Worksheets("Listes")
        'Définit le nombre de lignes dans la colonne A
        NbLignes = Ws.Range("A1000").End(xlUp).Row
        'Remplissage du ComboBox1
        Alim_Combo 1
        Me.ComboBox1 = ActiveSheet.Name
        ComboBox1_Change
    End Sub
    Cordialement.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 20
    Par défaut
    C'est super merci beaucoup !
    C'était pas si compliqué, je le saurai pour la prochaine fois

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 20
    Par défaut
    j'ai une ultime question
    Si je veux pré remplir la seconde combo box, où dois-je placer la commande ?
    si je la place comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ComboBox1_Change()
        'Remplissage Combo2
        Alim_Combo 2, ComboBox1.Value
        Me.ComboBox2 = "Divers"
        ComboBox2_Change
     
    End Sub
    il n'y a la prise en compte de la combo box 2 lors de la sélection de la combo box 3, c'est comme si ça ne filtrait plus les valeurs en fonction de celle sélectionnée dans les combobox précédente...

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    Pour préremplir les listes déroulantes en cascade:
    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
    Private Sub UserForm_Initialize()
        'Définit la feuille contenant les données
        Set Ws = Worksheets("Listes")
        'Définit le nombre de lignes dans la colonne A
        NbLignes = Ws.Range("A1000").End(xlUp).Row
        'Remplissage du ComboBox1
        Alim_Combo 1
        Me.ComboBox1 = ActiveSheet.Name
        ComboBox1_Change
        On Error Resume Next
        Me.ComboBox2.ListIndex = 0
    End Sub
     
    Private Sub ComboBox1_Change()
        'Remplissage Combo2
        Alim_Combo 2, ComboBox1.Value
        ComboBox2_Change
        On Error Resume Next
        Me.ComboBox2.ListIndex = 0
    End Sub
     
    Private Sub ComboBox2_Change()
        'Remplissage Combo3
        Alim_Combo 3, ComboBox2.Value
        On Error Resume Next
        Me.ComboBox3.ListIndex = 0
    End Sub
    Cordialement.

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 20
    Par défaut
    Je te remercie pour ta réponse.
    Le problème c'est que l'index de la valeur "Divers" que j'aimerais pré-sélectionner, est variable. Car il y a plusieurs divers, une dans chaque client A, B, C etc...
    Serait-il possible qu'a la place du 0 de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    On Error Resume Next
        Me.ComboBox2.ListIndex = 0
    cela prenne la dernière valeur (une fois filtrer par la première combo box), car la sous catégorie "Divers" sera toujours placé en dernier avec la sélection de la première combobox.

    deuxième question : quand le client et la sous catégorie "Divers" sont sélectionnés, la troisième comboBox affiche les boutons correspondants au catégorie Divers de TOUS les clients, comme si le premier filtre sur le client ne se faisait pas ....

    As-tu une idée ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/12/2017, 09h00
  2. [XL-2010] Renvoi à une valeur variable dans une MsgBox
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/03/2014, 18h42
  3. Réponses: 2
    Dernier message: 20/02/2013, 19h17
  4. afficher valeur variable dans une gridview
    Par fido1 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/09/2008, 11h48
  5. [VB.net 2005] Définir une valeur nulle dans ma comboBox
    Par WriteLN dans le forum Framework .NET
    Réponses: 4
    Dernier message: 04/04/2008, 17h11

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