Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème avec ma variable

  • Initiateur de la discussion Initiateur de la discussion Cougar
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
661
Réponses
5
Affichages
909
Réponses
8
Affichages
390
Réponses
15
Affichages
779
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
293
Réponses
4
Affichages
730
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…