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 :

VBA dépendance Combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2012
    Messages : 21
    Par défaut VBA dépendance Combobox
    Bonjour,

    Je réalise un formulaire avec entre autre deux combobox dépendante.
    La combobox3 qui gère les secteurs (cher, indre, loiret) situés sur cette plage : Infos!B22:B24
    La combobox 4 gère les commerciaux :
    les commerciaux du cher sont en =Infos!D20:D25
    les commerciaux de l'indre sont en =Infos!D26:D28
    les commerciaux du loiret sont en =Infos!D29:D32

    Comment faire en sorte que lorsque je choisis "cher" dans la combobox 1, j'obtienne uniquement les commerciaux de la plage Infos!D20:D25 ??
    et de même pour le loiret avec les commerciaux du loiret etc....

    Je suis sûr que ce n'est pas compliqué mais j'y suis depuis un moment sans y arriver....

    Help !!!

    merci..

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonsoir,
    tu peux t'inspirer de ce sujet :faire interagir 2 combobox

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2012
    Messages : 21
    Par défaut
    Honnêtement je ne comprends plus rien
    Je voulais faire un truc simple avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If ComboBox3.Value = "Cher" Then
    ComboBox4.RowSource = Infos!D20:D25
    etc

    Mais pourquoi ça ne marche pas ..

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Mais pourquoi ça ne marche pas .
    c'est une bonne question, mais pour avoir la réponse il serait très pratique que tu mettes le code que tu as déjà fait et que tu nous donnes plus de précision.

    Ce formulaire est une sur feuille ou sur un userform? comment est construit ton tableau etc...

    bref dans l'hypothèse ou tu utilises un userform:
    Dans initialize du formulaire tu remplis la combobox 3 ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
    Me.ComboBox3.RowSource = "Infos!B22:B24"
    End Sub
    ensuite pour remplir la combobox 4 en fonction du choix fait dans la 3 il faut utiliser l'événement change de la combobox 3 comme ceci :
    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 ComboBox3_Change()
    Select Case Me.ComboBox3.Value
    Case "cher"
        Me.ComboBox4.RowSource = ""
        Me.ComboBox4.RowSource = "Infos!D20:D25"
    Case "indre"
        Me.ComboBox4.RowSource = ""
        Me.ComboBox4.RowSource = "Infos!D26:D28"
    Case "loiret"
        Me.ComboBox4.RowSource = ""
        Me.ComboBox4.RowSource = "Infos!D29:D32"
    End Select
    End Sub
    J'ai utilisé select case au lieu de if then. Personellement je ne trouve pas pratique pour beaucoup de raisons d'utiliser rowsource pour initializer les combo.

    en attendant d'en savoir plus

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2012
    Messages : 21
    Par défaut
    Hey mais ça marche ! J'ai repris tout votre code...
    Alors oui j'ai un formulaire nommé formulaire_sys_sol

    Dans les propriété de la ComboBox3 onglet Rowsource : =Infos!B21:B23

    mon code est donc :

    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
    Private Sub UserForm_initialize()
     
    End Sub
    Private Sub ComboBox3_Change()
     
    Select Case Me.ComboBox3.Value
    Case "Cher"
        Me.ComboBox4.RowSource = ""
        Me.ComboBox4.RowSource = "Infos!D20:D25"
    Case "Indre"
        Me.ComboBox4.RowSource = ""
        Me.ComboBox4.RowSource = "Infos!D26:D28"
    Case "Loiret "
        Me.ComboBox4.RowSource = ""
        Me.ComboBox4.RowSource = "Infos!D29:D32"
    End Select
    End Sub

    Il suffit juste que je crée une commande clear pour effacer à chaque changement...

    Je peux continuer sur cette conversation si j'ai d'autre question ?

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    normalement tu n'as pas besoin de mettre la commande clear car à chaque fois rowsource prend la valeur "" et ensuite d20 : D etc...

    Si ton problème est résolu il est préférable de cloturer le sujet en cliquant sur résolu.

    En ouvrant un nouveau sujet tu augmenteras tes chances de recevoir des réponses appropriées à tes problèmatiques

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    Dansun premier temps, pprends à mettre les Balises sur ton code et tu ne verras plus de smiley,
    Reprends ton message => Editer => selectionnes le code => appuyes sur #
    ci-dessous, je reprends ton code ave effacementdu combo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ComboBox3_Change()
     
    Select Case Me.ComboBox3.Value
    ComboBox4.clear
    Case "Cher"
    Me.ComboBox4.List = Sheets("Infos").Range("d20:d25")
    Case "Indre"
    Me.ComboBox4.List = Sheets("Infos").Range("d26:d28")
    Case "Loiret "
    Me.ComboBox4.List = Sheets("Infos").Range("d29:d32")
    End Select
    End Sub
    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. [VBA-E] Combobox alimenté que de samedi
    Par Aazouf dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/05/2006, 21h17
  2. [VBA-E]ComboBox + RowSource ne concerne que les lignes ?
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/04/2006, 14h29
  3. [VBA-E][ComboBox]Erreur 380 Aléatoire ??
    Par Moskito dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/04/2006, 10h43
  4. [VBA-E]Combobox et code trop long!! (debutante)
    Par legend dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/03/2006, 14h23
  5. [VBA-E]COMBOBOX, et base de données
    Par legend dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/02/2006, 13h22

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