Filtrer une listbox avec une combobox

Bonsoir à tous,

Depuis quelques temps je travaille sur les Userform pour gérer des bases de données.

J'ai un nouveau besoin: filtrer une base de données dans la listbox avec un combobox.

Ca dépasse mes connaissances, donc je trouve des codes sur des forums et j'adapte mais ça ne se passe pas comme prévu.

La combobox ne se charge pas et la listbox non plus.

Je vous demande donc un coup de main pour trouver le problème afin de pouvoir filtrer la listbox avec la combobox

Merci.

Private Sub cborefcons_Change()
Dim LastLig As Long
Dim Code As String
Dim c As Range

Application.ScreenUpdating = False
With Me.lstcontr
    .Clear
    .Visible = False
End With

Code = Me.cborefcons.Value
If Me.cborefcons.ListIndex > -1 Then
    With Worksheets("Contrats")
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("A1:A" & LastLig).AutoFilter Field:=1, Criteria1:=Code
        For Each c In .Range("B2:B" & LastLig).SpecialCells(xlCellTypeVisible)
            With Me.lstcontr
                .AddItem c
                .List(.ListCount - 1, 1) = c.Offset(0, 1)
                .List(.ListCount - 1, 2) = c.Offset(0, 2)
            End With
        Next c
        Me.lstcontr.Visible = True
        .AutoFilterMode = False
    End With
End If
End Sub
35mac.xlsm (33.03 Ko)

Bonjour,

Le combobox ne se chargeait pas ... car, le code n'était pas prévu pour le charger.

Étant donné que tu utilises un tableau structuré ...

Je suggère ceci ... voir si ça convient ...

ric

125jdamine-mac.xlsm (39.35 Ko)

Bonjour,

ci-jointe une proposition avec révision complète du code et utilisation de la listbox pour sélection d'une référence

113mac1.xlsm (36.26 Ko)

Bonjour,

@Ric Je te remercie énormément pour ton aide précieuse. Tu me sauves vraiment la vie.

Toutefois, il y a quelques petits trucs à régler:

- Le filtre ne prend pas en considération la dernière ligne de la base de donnée. C'est à dire qu'au niveau du filtre "Référence", je ne retrouve pas la référence de la dernière ligne du tableau "Tcontrats"

- Aussi, je sais pas s'il y a moyen pour qu'il n'y ai pas de doublon au niveau du filtre (La même référence répétée plusieurs fois dans la combobox)

- Et dernière chose, si tu peux m'aider là dessus, je te serai reconnaissant: j'ai essayé de reprendre le même code pour d'autres filtres: (cborubcons - cbolotcons - cbocontrcons) mais ça me donne une erreur (A noter que les filtres sont indépendants)

Voilà en PJ le fichier que j'ai réadapter.

Et Merci beaucoup @Ric

24mac22.xlsm (46.77 Ko)

@Thev

Je te remercie beaucoup pour ta révision complète du code, que je trouve génial.

Je voulais savoir s'il était possible d'adapter le code de telle sorte d'avoir une combobox "Référence" qui permet de filtrer la listbox selon le choix fait et que lorsque je sélectionne un résultat du filtre parmi les lignes de la listbox je puisse modifier les valeurs des textboxs (contractant, montant, ...) en cliquant sur le bouton 'Modifier Contrat'

Merci beaucoup !

25mac1-1.xlsm (30.51 Ko)

Bonsoir,

ci-jointe version avec modification et suppression d'un contrat.

A noter qu'aucune modification de code ne sera nécessaire si tu ajoutes une colonne à ton tableau des contrats.

Il suffira juste d'ajouter un nouveau contrôle dans ton UserForm et de mettre dans la propriété ControlTipText, le nom de la nouvelle colonne.

163mac2.xlsm (40.71 Ko)
Rechercher des sujets similaires à "filtrer listbox combobox"