Chargement d'une ComboBox par tableau filtré grâce à autre ComboBox

Bonjour,

je souhaite charger la combo TabHoraires_Code_horaire en fonction de la valeur de la combo TabHoraires_Client. Je souhaite utiliser la méthode suivante:

la valeur de la première Combo est utilisée comme critère de filtre pour la table TabHoraires, et seules les lignes apparentes de celui-ci alimenteront la deuxième combo. J'ai essayé d'utiliser SpecialCells(xlCellTypeVisible), mais je n'arrive pas au résultat voulu:

voici le code et un classeur test:

Private Sub TabHoraires_Client_Change()

Dim iLigne As Integer

Dim n As Integer

If Me.TabHoraires_Client.ListIndex = -1 And IsError(Application.Match(Me.TabHoraires_Client, choix1, 0)) Then

Me.TabHoraires_Client.List = Filter(choix1, Me.TabHoraires_Client.Text, True, vbTextCompare)

Me.TabHoraires_Client.DropDown

Else

'salarie_a_modifier_click

End If

wksBDD_horaires.ListObjects("TabHoraires").Range.AutoFilter Field:=1

wksBDD_horaires.ListObjects("TabHoraires").Range.AutoFilter Field:=1, Criteria1 _

:=TabHoraires_Client.Value

n = wksBDD_horaires.Range("TabHoraires_Client").End(xlDown).Row - 1

For iLigne = 1 To n

Me.cTabHoraires_Code_horaire.AddItem wksBDD_horaires.Cells(iLigne + 1, Range("TabHoraires_Code_horaire").Column).Value

' c'est ici que j'ai essayé de positionner SpecialCells(xlCellTypeVisible)

Next iLigne

End Sub

merci d'avance

Bonjour pierrebastres le forum

de quel userform ??? tu en as trois dans ton fichier

a+

Papou

Bonsoir,

Il s'agit de la UF_modif_horaire.

Merci .

Pierre

Bonjour à tous

Un essai à tester.

Bye !

Bonjour le Forum, bonjour Gmb,

ça marche en effet, merci!

Quelle modif as-tu apporté s'il te plaît?

Merci d'avance!

Pierre

Quelle modif as-tu apporté s'il te plaît?

J’ai d’abord modifié le code attaché au bouton ‘’ Modifier un horaire‘’ de la feuille ‘’ bdd_horaires’’

pour n'y avoir qu'une instruction qui affiche l'Userform.

Puis, j’ai neutralisé cette partie de code, dans la macro initialize de l’Userfom ‘’UF_modif_horaire’’ :

'Chargement préférences horaires
Exit Sub

n = Application.CountA(wksBDD_horaires.Range("TabHoraires_Code_horaire").EntireColumn)
For iLigne = 1 To n
    'Me.cTabHoraires_Code_horaire.AddItem wksBDD_horaires.SpecialCells(xlCellTypeVisible).Cells(iLigne + 1, Range("TabHoraires_Code_horaire").Column)
    Me.cTabHoraires_Code_horaire.AddItem wksBDD_horaires.Cells(iLigne + 1, Range("TabHoraires_Code_horaire").Column)
Next iLigne

Et j’ai enfin ajouté ce code la macro attachée au ComboBox ‘’TabHoraires_Client’’ de l’Userform ‘’ ’UF_modif_horaire’’

'Chargement des code
    cTabHoraires_Code_horaire.Clear
    For iLigne = 2 To wksBDD_horaires.Range("A" & Rows.Count).End(xlUp).Row
        If wksBDD_horaires.Range("A" & iLigne) = TabHoraires_Client Then
            cTabHoraires_Code_horaire.AddItem wksBDD_horaires.Range("B" & iLigne)

        End If
    Next iLigne

Si je n'ai rien oublié, c''est tout.

OK ?

Bye !

gmb,

merci beaucoup, ça fonctionne parfaitement!

Pierre

Rechercher des sujets similaires à "chargement combobox tableau filtre"