Re Catherine
Cet aprèm désolé mais je n'ai pas le temps de te faire un cours...
Non... Je parle dans la Mémoire virtuelle, (pas macro enregistrée....)
Pour "ComboBox2.AddItem Item" ce n'est pas simplement cette ligne recopiée qui pourra marcher... Il te faut construire tout ceci :
Dim MonBook As Workbook
Dim WS1 As Worksheet
Dim TabB() As String
Dim TabC() As String
Private Sub UserForm_Initialize()
Dim Cell As Range
Me.Caption = X
Set MonBook = ThisWorkbook
With MonBook
Set WS1 = .Worksheets("Sheet1")
End With
If WS1.AutoFilterMode Then
WS1.AutoFilterMode = False
WS1.Range("A1").AutoFilter
Else
WS1.Range("A1").AutoFilter
End If
ComboBox1.AddItem "Moto"
ComboBox1.AddItem "Voiture"
End Sub
Private Sub ComboBox1_Click()
Dim Cell As Range
Dim r As Range
Dim i As Integer
Dim L As Integer
ComboBox2.Clear
ComboBox3.Clear
With WS1.Range("A1")
.AutoFilter 1, ComboBox1
.AutoFilter 2
.AutoFilter 3
End With
L = WS1.Range("B65536").End(xlUp).Row
Set r = WS1.Range("B2:B" & L)
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim TabB(0 To r.Count - 1)
For Each Cell In r
TabB(i) = Cell.Value
i = i + 1
Next
TriTabB
DoublonTabB
End Sub
Sub TriTabB()
Dim ValMin As Integer, ValSup As Integer
Dim i As Integer, j As Integer, ii As Integer
Dim Tab1 As String
ValMin = LBound(TabB)
ValSup = UBound(TabB)
For i = ValMin To ValSup
For j = ValMin + ii To ValSup
If TabB(i) > TabB(j) Then
Tab1 = TabB(j)
TabB(j) = TabB(i)
TabB(i) = Tab1
End If
Next j
ii = ii + 1
Next i
End Sub
Sub DoublonTabB()
Dim i As Integer
Dim Item As String
Item = ""
For i = LBound(TabB) To UBound(TabB)
If Item = TabB(i) Then
Else
Item = TabB(i)
ComboBox2.AddItem Item
End If
Next i
End Sub
Et ceci rien que pour que la ComBobox2 puisse être alimentée !
Euh Lien supprimé j'ai mis trois exemples, les as tu bien regardés un par un (surtout le troisième qui est bien commenté pour une débutante)...
Sur ce je dois te laisser pour l'instant
Bon Aprèm
@+Thierry