Private Sub combo2_Change()
Dim c As Range, L As Long
Dim i As Byte, j As Byte
Dim temp As String ' , cd As ??? 'Ici une partie du problème, voir plus bas où problème survient
Dim x As New Collection
Set ColonneC = ColonneA.Offset(0, 2)
[COLOR="red"]'
'A quoi sert ce qui suit
' Si c'est pour effacer tous les éléments d'une collection
' Peut-être Set Achat_colonneC = Nothing (Connais pas trop)
'[/COLOR]
Do While Achat_colonneC.Count > 0
Achat_colonneC.Remove 1
Loop
On Error Resume Next
For Each c In ColonneC.Cells
If c.Offset(0, -2) & c.Offset(0, -1) = Combo1 & Combo2 Then
Achat_colonneC.Add c, CStr(c)
End If
Next
[COLOR="Red"]'
' Ici tu as les éléments de ta combobox dans Achat_colonneC
' SANS DOUBLONS
'[/COLOR]
For L = 1 To Achat_colonneC.Count
Combo3.AddItem Achat_colonneC(L)
Next L
'
' Tri
'
With Combo3
For i = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
If .List(i) < .List(j) Then
temp = .List(i)
.List(i) = .List(j)
.List(j) = temp
End If
Next j
Next i
[COLOR="Red"]'
' Tu peux enlever ce qui suit
'
'For Each cd In Combo3 'Ne fonctionne pas car je ne peux utiliser les données dans la combo3 et je ne veux pas de .range
'On Error Resume Next
'x.Add cd, CStr(cd)
'If Err = 0 Then Combo3.AddItem (CStr(cd))
'On Error GoTo 0
'Next cd[/COLOR]
End With
End Sub