Problème avec ma variable

Cougar

XLDnaute Impliqué
Bonjour le forum,

Pour faire suite à une demande de hier, j'ai réglé une partie de mon problème. La dernière partie qui me reste à corriger est d'éliminer les doublons dans une combobox.

Voici le code :

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)
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

For L = 1 To Achat_colonneC.Count
Combo3.AddItem Achat_colonneC(L)
Next L

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

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
End With
End Sub

Quelqu'un aurait une solution ?

Merci
 

Banzai64

XLDnaute Accro
Re : Problème avec ma variable

Bonsoir

Sans avoir le prg sous les yeux pas facile à interpréter

Code:
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
 

Discussions similaires

Réponses
4
Affichages
241

Statistiques des forums

Discussions
312 677
Messages
2 090 817
Membres
104 673
dernier inscrit
lautard