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 :

Combobox VBA - Filtrer commerciaux Agence sélectionnée [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mai 2021
    Messages : 2
    Par défaut Combobox VBA - Filtrer commerciaux Agence sélectionnée
    Bonjour,

    Je me suis embrouiller dans l'avancement de mon projet et je bloque :

    J'ai un formulaire avec une combobox qui affiche la liste de mes commerciaux

    J'aimerai ajouter une deuxième combobox qui m'affiche la liste de mes agences et que quand je choisis une agence , la combobox des commerciaux affiche seulement les commerciaux de l'agence choisie.

    J'ai regardé du côté des filtres mais je n'y arrive pas .

    Un âme charitable pour me donner une piste de réflexion ou me montrer la démarche à suivre à l'aide de mon petit fichier

    Merci à vous

    AgenceCommerciale.xlsm

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Warnex75 Voir le message
    Bonjour,

    Si j'avais à faire cela, je transformerais votre table en tableau structuré (TableDesCommerciaux) et j'ajouterais une table des agences (TableDesAgences).
    J'ajouterais une colonne Nom prénom qui sera utilisée dans le userform. Perso, je préfère utiliser une ListBox plutôt qu'une ComboBox.
    Les deux tables sont triées.

    Pièce jointe 597445

    Dans un module standard :
    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
     
    Option Explicit
     
    Public AireNomPrenom As Range, AireAgence As Range
     
    Sub LancerLeUserform()
     
       Set AireNomPrenom = Range("TableDesCommerciaux[Nom prénom]")
       Set AireAgence = Range("TableDesCommerciaux[Agence]")
     
     
        With UserForm1
             .ComboBoxAgence.List = Range("TableDesAgences").Value
             .Show
        End With
     
       Set AireNomPrenom = Nothing
       Set AireAgence = Nothing
     
    End Sub
    Dans le module du 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    Option Explicit
     
    Private Sub ComboBoxAgence_Change()
     
    Dim I As Integer
     
        Me.ComboBoxCommerciaux.Clear
        Me.ListBoxCommerciaux.Clear
     
       For I = 1 To AireNomPrenom.Count
           With AireNomPrenom(I)
                If AireAgence(I) = Me.ComboBoxAgence Then
                   ComboBoxCommerciaux.AddItem AireNomPrenom(I)
                   ListBoxCommerciaux.AddItem AireNomPrenom(I)
                End If
           End With
       Next I
     
    End Sub
     
    Private Sub ComboBoxCommerciaux_Change()
     
    Dim I As Integer
     
       For I = 1 To AireNomPrenom.Count
           With AireNomPrenom(I)
                If .Value = ComboBoxCommerciaux.Value Then
                   Me.LabelMatricule = AireNomPrenom(I).Offset(0, 1)
                   Me.LabelNom = AireNomPrenom(I).Offset(0, 2)
                   Me.LabelPrenom = AireNomPrenom(I).Offset(0, 3)
                End If
           End With
       Next I
     
     
     
    End Sub
     
    Private Sub ListBoxCommerciaux_Click()
     
    Dim I As Integer
     
       For I = 1 To AireNomPrenom.Count
           With AireNomPrenom(I)
                If .Value = Me.ListBoxCommerciaux.Value Then
                   Me.LabelMatricule = AireNomPrenom(I).Offset(0, 1)
                   Me.LabelNom = AireNomPrenom(I).Offset(0, 2)
                   Me.LabelPrenom = AireNomPrenom(I).Offset(0, 3)
                End If
           End With
       Next I
     
    End Sub

    Dans le module de l'onglet Feuil1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Option Explicit
     
    Private Sub BoutonLancer_Click()
            LancerLeUserform
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mai 2021
    Messages : 2
    Par défaut
    Merci Eric tout fonctionne, bonne journée à vous.

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

Discussions similaires

  1. [XL-2007] filtrer les premières lettres d'un mot en tapant dans un combobox vba excel
    Par chombriko dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2012, 12h20
  2. [Formulaire][VBA]Filtrer un sous-formulaire
    Par rantanplan81 dans le forum IHM
    Réponses: 11
    Dernier message: 29/03/2007, 17h39
  3. Combobox VBA Excel 97.probleme de valeurs
    Par paflolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/10/2006, 16h24
  4. [VB.NET] [ListBox / ComboBox] Label de l'item sélectionné?
    Par Giuseppe dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/12/2005, 14h22
  5. Réponses: 4
    Dernier message: 30/03/2005, 18h30

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