ComboBox Sans Doublon: ça ne marche jamais

  • Initiateur de la discussion Initiateur de la discussion Otmanes
  • 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 !

Otmanes

XLDnaute Nouveau
Bonjour,
J'ai bloqué sur un problème fréquent, et j'arrive pas à régler ça grace au discussion déjà existante.
Voila je veux que ma 2e ComboBox (CboxWBS) soit alimenter SANS DOUBLON. et SANS ligne VIDE.

Mon classeur contient deux feuille de calcul:

- Projects: contient les colonne A: CPM ; B: WBS ; C: Network
- Summury: contient un bouton CmdSelect qui lance une UserForm1.

Cette UserForm1 contient 3 ComboBox:
- CboxCPM : Alimenter a partir de la colonne A sans doublon
- CboxWBS : Alimenter dans un premier temps a partir de la colonne B, mais aprés selection dans la CboxCPM il sera alimenter par la cellule de Droite (Colonne B) de la celulle sélectionnée dans CPM SANS DOUBLON et SANS VIDE.
- CboxNetwork : alimenter par la cellule de Droite (Colonne C) de la celulle sélectionnée dans WBS.

Voici le Code:
Code:
Private Sub CmdSelect_Click()
UserForm1.Show
End Sub

Private Sub UserForm_Initialize()
    Dim Cell As Range
    Me.CboxCPM.Clear
    Me.CboxWBS.Clear
    Me.CboxNetwork.Clear
    For Each Cell In Worksheets("Projects").Range("A2:A10000")
        Me.CboxCPM = Cell
    If Me.CboxCPM.ListIndex = -1 And Me.CboxCPM <> "" Then Me.CboxCPM.AddItem Cell
    Next Cell
End Sub

Private Sub CboxCPM_Change()
Dim TheCell As Range
Me.CboxWBS.Clear
For Each TheCell In Worksheets("Projects").Range("A2:A10000")
    If TheCell.Value = Me.CboxCPM.Text And Me.CboxWBS.ListIndex = -1 Then
        Me.CboxWBS.AddItem TheCell.Offset(0, 1)
    End If
Next TheCell
End Sub

Private Sub CboxWBS_Change()
Dim iCell As Range
Me.CboxNetwork.Clear
For Each iCell In Worksheets("Projects").Range("B2:B10000")
    If iCell.Value = Me.CboxWBS.Text Then
        Me.CboxNetwork.AddItem iCell.Offset(0, 1)
    End If
Next iCell
End Sub

Si quelqu'un peut m'aider 🙁...
 
Dernière édition:
Re : ComboBox Sans Doublon: ça ne marche jamais

Bonjour otmanes et bienvenue sur ce forum 😉😀

Cette question à déjà été traitées des milliards de fois et encore je dois être loin du compte.

Merci d'effectuer une recherche avancée avec plusieurs critères différends

Tu dois trouver sur ce forum, ce n'est pas possible autrement 😉

A+
 
Re : ComboBox Sans Doublon: ça ne marche jamais

Bonjour Otmanes, Bruno 😉,

il doit manquer ce que j'ai ajouté en bleu dans ton code (ce que tu fais correctement pour alimenter CboxCPM).
Sans garantie car sans fichier...

Code:
Private Sub CboxCPM_Change()
Dim TheCell As Range
Me.CboxWBS.Clear
For Each TheCell In Worksheets("Projects").Range("A2:A10000")
    [COLOR=Blue][B]Me.CboxWBS = TheCell[/B][/COLOR]
    If TheCell.Value = Me.CboxCPM.Text And Me.CboxWBS.ListIndex = -1 Then
        Me.CboxWBS.AddItem TheCell.Offset(0, 1)
    End If
Next TheCell
End Sub
 
Re : ComboBox Sans Doublon: ça ne marche jamais

SVP Mr Bruno, je suis un débutant en VB, et je vous assure que j'ai déja essayer la methode "listIndex" et ossi "Tbound Ubound" mais ca marche pas la liste de la ComboBox CboxWBS contient toujours des doublons, j'y arrive pas seul.
SVP un petit coup de pouce sera le bienvenu. et seulement pour la ComboBox CboxWBS c'est la seul qui veut pas fonctionner comme il le faut...
je vous supplie de vouloir bien m'aider , je suis à bout ca fait une semaine que je cherche dans tout les forum, et je risque de perdre gros si j'y arrive pas d'ici mercredi...
 
Re : ComboBox Sans Doublon: ça ne marche jamais

Merci Skoobi, mais quand j'ajoute Me.CboxWBS = TheCell la comboBox m'affiche au début la derniere celulle de la colonne A: CPM, puis quand je déroule la liste, j'obtiens l'ensemble des choix mais AVEC DOUBLON. toujours le méme probléme 😕
Merci tout de même...
Et je vous joint le fichier sur lequel je travaille..

PPR.xls
 
Dernière édition:
Re : ComboBox Sans Doublon: ça ne marche jamais

ça doit être plutôt la cellule de droite non?:

Private Sub CboxCPM_Change()
Dim TheCell As Range
Me.CboxWBS.Clear
For Each TheCell In Worksheets("Projects").Range("A2:A10000")
Me.CboxWBS = TheCell.Offset(0, 1)
If TheCell.Value = Me.CboxCPM.Text And Me.CboxWBS.ListIndex = -1 Then
Me.CboxWBS.AddItem TheCell.Offset(0, 1)
End If
Next TheCell
End Sub
 
Re : ComboBox Sans Doublon: ça ne marche jamais

Re,

salut Hub 🙂,

en gardant la structure de ton code chez moi ça marche.
J'ai juste ajouté la variable WBStop (rapidité du traitement)
Si ta liste est longue, le code de bhbh est plus rapide.
 

Pièces jointes

Dernière édition:
Re : ComboBox Sans Doublon: ça ne marche jamais

Bonsoir,

Ben, tu avais l'air pressé(e), pour la réponse...

je vous supplie de vouloir bien m'aider , je suis à bout ca fait une semaine que je cherche dans tout les forum, et je risque de perdre gros si j'y arrive pas d'ici mercredi...

Mais beaucoup moins, pour les remerciements.....

Au plaisir.....(quoique.....🙁)
 
Re : ComboBox Sans Doublon: ça ne marche jamais

Bonsoir,
vous savez, je viens de rentrer là, et de me connecté depuis que j'ai quitté le boulot tout à l'heur.. et je vous remercie beaucoup pour votre précieuse aide. (même si j'ai pas encore ouvert les classeur pour voir ^_^)
j'éspére que ca arrangera le probléme et que je mettrai "Résolu" ^^, MERCI encore Skoobi, Bruno ET Bhbh pour vos solutions...
🙂 à bientot
 
Re : ComboBox Sans Doublon: ça ne marche jamais

Désolé si je relance encore ce sujet, mais j'ai du effectuer quelque modification dans mon projet et là j'ai besoin de quelque conseil, pour la solution que m'a proposé SKOOBI ci dessus (Dim WBStop as Boolean).

Après avoir ajouté un nouvel ComboBox "CboxCustomer", les doublons ont réapparu au niveau du ComboBox CboxWBS 😕

Voici le fichier joint, si quelqu'un pourrait bien m'aider en y apportants quelque modifications au niveau du code??
Merci d'avance
 

Pièces jointes

Dernière édition:
Re : ComboBox Sans Doublon: ça ne marche jamais

Bonjour Otmanes,

En bleu ce que j'ai ajouté dans le code (plus mes commentaires):

Code:
Private Sub CboxCPM_Change()
Dim iCell As Range
If CPMtop Then Exit Sub
Me.CboxWBS.Clear
For Each iCell In Worksheets("Projects").Range("C2:C" & _
                        Worksheets("Projects").Range("C65536").End(xlUp).Row)
[B][COLOR=blue]    Me.CboxWBS = iCell.Offset(0, -2) il faut afficher[/COLOR][/B] [COLOR=blue][B]la donnée dans le combobox avant de la tester[/B][/COLOR]
If iCell.Value = Me.CboxCPM.Text And Me.CboxWBS.ListIndex = -1 Then
        Me.CboxWBS.AddItem iCell.Offset(0, -2)
    End If
Next iCell
[B][COLOR=blue]Me.CboxWBS.ListIndex = -1 'n'affiche rien dans le combobox[/COLOR][/B]
End Sub

Bon test.
 
- 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
9
Affichages
201
Réponses
3
Affichages
193
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
40
Affichages
3 K
Retour