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 :

Effacer des ComboBox dépendantes dans un Userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2020
    Messages : 2
    Par défaut Effacer des ComboBox dépendantes dans un Userform
    Bonjour tout le monde,

    Je me suis lancé dans un projet Excel mais étant encore débutant, j'ai rencontré un problème qui m'empêche d'avancer.

    J'aimerai pouvoir effacer des ComboBox dépendantes dans un Userform lorsqu'on en change une en amont.


    J'ai donc utilisé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cbo2_Change()
     
        UserForm1.cbo3.Clear
        UserForm1.cbo4.Clear
    Mais lorsque je change la combobox en amont, j'ai un problème dans ma boucle.

    Ensuite j'ai essayé avec un Boutton mais toujours pareil…

    J'ai donc voulu mettre une condition (if then end if) pour isoler ma boucle quand je change ma Combobox mais là j'avais ensuite un problème dans mes choix de liste déroulantes.

    4 combobox sont dépendantes (Site, Zone, Ligne, équipement) dans le Userform1
    Feuil3 => Bouton formulaire
    Feuil1 => Source Combobox

    Quelqu'un pourrait-il m'aiguiller ?

    Bien à vous
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Désolé mais je n'ouvre pas les fichiers tiers, du moin pas dès le premier poste.

    Pourrais-tu déposer le code de l'ensemble de tes cbo.

    Bat,

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2020
    Messages : 2
    Par défaut
    Salut Bat,

    Pour commencer merci de répondre,

    Voici le code :

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    Private Sub CommandButton6_Click()
        ComboBox_Pays.Clear
        cbo2.Clear
        cbo3.Clear
        cbo4.Clear
     
    End Sub
     
    Private Sub CommandButton7_Click()
        Dim lignes As Integer
        lignes = Sheets("aa").[a1].End(xlDown).Row + 1
        Sheets("aa").Range("a" & lignes) = TextBox3
        Sheets("aa").Range("b" & lignes) = TextBox4
        Sheets("aa").Range("c" & lignes) = ComboBox2
        Sheets("aa").Range("d" & lignes) = ComboBox_Pays
        Sheets("aa").Range("e" & lignes) = cbo2
        Sheets("aa").Range("f" & lignes) = cbo3
        Sheets("aa").Range("g" & lignes) = cbo4
        Sheets("aa").Range("h" & lignes) = ComboBox1
        Sheets("aa").Range("i" & lignes) = TextBox1
        Sheets("aa").Range("j" & lignes) = TextBox2
     
     
     
     
     
        Unload Me
    End Sub
     
    Private Sub CommandButton8_Click()
        Unload Me
    End Sub
     
    Private Sub UserForm_Initialize()
     
        Sheets("Feuil1").Activate
     
     
     
        For i = 1 To 3 ' => pour lister les 3 UP
            ComboBox_Pays.AddItem Cells(1, i)
            'Premi?re combobox
        Next
    End Sub
     
    Private Sub ComboBox_Pays_Change()
        'Zone de liste vid?e
        UserForm1.cbo2.Clear
        UserForm1.cbo3.Clear
        UserForm1.cbo4.Clear
     
        Dim no_colonne As Integer, nb_lignes As Integer 'd?finition variables
     
     
        'Num?ro de la s?lection (ListIndex commence ? 0) :
        no_colonne = ComboBox_Pays.ListIndex + 1
        'Nombre de lignes de la colonne du site choisi :
        nb_lignes = Cells(1, no_colonne).End(xlDown).Row
        ' prend le nombre de ligne jusqu'a la derni?re
     
        For i = 2 To nb_lignes ' => pour lister les zones
            cbo2.AddItem Cells(i, no_colonne) 'Ajoute les sites dans la liste
            '2eme combobox
     
        Next
    End Sub
     
     
    Private Sub cbo2_Change()
     
        UserForm1.cbo3.Clear
        UserForm1.cbo4.Clear
     
        Dim no_colonne As Integer, nb_lignes As Integer 'd?finition variables
        i = 1
     
        Do While Cells(8, i).Value <> "" 'Tant qu'il y a des valeurs
     
            If Cells(8, i).Value = cbo2.Value Then 'Si oui
            'SI la cellule est ?gale a valeur choisie
                Cells(8, i).Select 'S?lectionne la cellule
                no_colonne = ActiveCell.Column
                'no_colonne prend la valeur de la colonne de la zone
            End If
        i = i + 1 'on incr?mente le n? de colonne
        Loop
     
     
        If cbo2 <= 0 Then
        j = 9
        'On boucle les lignes pour r?cup?rer la liste de la cbo3
        Do While Cells(j, no_colonne).Value <> ""
            'On charge les zones dans la liste d?roulante des lignes
            cbo3.AddItem Cells(j, no_colonne)
            j = j + 1 'on incr?mente le n? de ligne
        Loop
     
        End If
     
     
    End Sub
     
    Private Sub cbo3_Change()
     
        UserForm1.cbo4.Clear
        Dim no_colonne As Integer, nb_lignes As Integer 'd?finition variables
        i = 1
     
        Do While Cells(19, i).Value <> "" 'Tant qu'il y a des valeurs
     
            If Cells(19, i).Value = cbo3.Value Then 'Si oui
            'SI la cellule est ?gale a valeur choisie
                Cells(19, i).Select 'S?lectionne la cellule
                no_colonne = ActiveCell.Column
                'no_colonne prend la valeur de la colonne des lignes(rouge)
            End If
        i = i + 1 'on incr?mente le n? de colonne
        Loop
     
        If cbo2 <= 0 Then
        j = 20
     
     
        'On boucle les lignes pour r?cup?rer la liste de la cbo3
        Do While Cells(j, no_colonne).Value <> ""
            'On charge les zones dans la liste d?roulante equipements
            cbo4.AddItem Cells(j, no_colonne)
            j = j + 1 'on incr?mente le n? de ligne
        Loop
        End If
     
     
     
     
    End Sub
    Sais-tu si il y a un moyen pour que je mette le fichier et que vous puissiez l'ouvrir sans crainte pour les prochaines fois?

    Bien à toi

Discussions similaires

  1. [Joomla!] Formulaire permettant de faire des combobox dépendantes
    Par touff972 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 23/08/2012, 17h58
  2. effacer des valeurs affichees dans un statictext
    Par Dani_krav dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 14/07/2012, 00h07
  3. Réponses: 11
    Dernier message: 26/11/2008, 20h55
  4. Réponses: 3
    Dernier message: 20/06/2007, 22h18
  5. Réponses: 1
    Dernier message: 08/02/2007, 10h11

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