Filtre Listbox avec Combobox
j
Bonjour à 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
Private Sub frmsaisiecontrat_Initialize()
Dim LastLig As Long, j As Long
Dim plg As Range
Dim cw
Set plg = Range("B2:K" & Range("K65536").End(xlUp).Row)
plg.Columns.AutoFit
With cborefcons
.ColumnCount = 1
.Visible = False
End With
With lstcontr
cw = ""
.ColumnCount = plg.Columns.Count
For I = 1 To .ColumnCount
cw = cw & plg.Columns(I).Width + 10 & ";"
Next
.ColumnWidths = cw
.Visible = False
End With
Application.ScreenUpdating = False
With Worksheets("Contrats")
LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
Me.cborefcons.Clear
For j = 2 To LastLig
If .Range("A" & j) <> "" Then
Me.cborefcons = .Range("A" & j)
If Me.cborefcons.ListIndex = -1 Then Me.cborefcons.AddItem .Range("A" & j)
End If
Next j
End With
With Me.cborefcons
.Visible = True
.ListIndex = -1
End With
End Sub
Bonjour
même si l'on change le nom de son userform, initialize reste sur userform et non sur frmsaisiecontrat
'Private Sub frmsaisiecontrat_Initialize()
Private Sub UserForm_Initialize()