combobox et doublons

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

jammy17

XLDnaute Occasionnel
bonsoir le forum

je cherche a remplir le combobox 'nation' de mon userform se trouvant dans le fichier joint sans doublons.
est ce possible et comment? [file name=essais_20060103212912.zip size=17765]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essais_20060103212912.zip[/file]
 

Pièces jointes

MERCI BEAUCOUP MICHEL, j'ai lu quasiment tous tes fil....mais

j'ai inseré le code dans mon fichier mais cela ne semble pas le prendre en compte,du fait que ma premiere combobox se remplie en fonction de la deuxieme....

voila le bout de code qui me sert a repmlir la combobox que je n'arrive pas dedoublonner.
je pense que le probleme vient de al mais je bloque.
Private Sub contr2_Change()
Me.contr1.Clear

Dim Derligne%
With Sheets('Feuil1')
Derligne = .Range('C65536').End(xlUp).Row
For I = 6 To Derligne
If .Range('C' & I) = Me.contr2 Then
Me.contr1.AddItem .Range('A' & I)
End If
Next
End With

Message édité par: jammy17, à: 03/01/2006 21:42
 
rebonsoir

dans le premier message ce n'etait qu'un exemple : je n'avais pas ouvert ton classeur

par contre je ne comprends pas ta question , car dans ton classeur tu avais déja une methode pour alimenter le ComboBox contr2 sans doublon ...


tu peux tester cette adaptation pour alimenter le Combobox contr1

Private Sub contr2_Change()
Dim Derligne%
Dim Plg As Range, Cel As Range
Dim colA As New Collection

Me.contr1.Clear
Derligne = Sheets('Feuil1').Range('C65536').End(xlUp).Row
Set Plg = Sheets('Feuil1').Range('C6:C' & Derligne)

For Each Cel In Plg
If Cel.Value = contr2 Then
On Error Resume Next
colA.Add Cel.Offset(0, -2).Value, CStr(Cel.Offset(0, -2).Value)
End If
Next Cel

For Each it In colA
contr1.AddItem colA(it)
Next it

End Sub



bonne soiree
MichelXld
 
REBONSOIR MICHEL


Oui, merci beaucoup encore une fois, c'est exactement ce que je voulais....

je n'arrive pas bien a comprendre les methode du type/colA.Add Cel.Offset(0, -2).Value, CStr(Cel.Offset(0, -2).Value)

soit les new collection quoi....mais je vais apprendre. :unsure:

de meme a quoi correspond exactement la variable 'it' dans le code que tu m'as joint:
For Each it In colA
contr1.AddItem colA(it)
Next it

je te remercie encore.....
 
rebonsoir

j'espere que ces annotations pourront t'aider

Me.contr1.Clear 'suppression des données existantes dans dans le Combobox

'recuperation du numero de la derniere ligne vide
'dans la colonne C
Derligne = Sheets('Feuil1').Range('C65536').End(xlUp).Row

'definition d'une plage de cellules dans la colonne C
Set Plg = Sheets('Feuil1').Range('C6:C' & Derligne)

For Each Cel In Plg 'boucle sur toutes les cellules de la plage

'si la cellule est identique au contenu du Combobox contr2
If Cel.Value = contr2 Then
On Error Resume Next
'ajout de l'element dans la collection (sans doublons )
'L'objet Collection permet de créer un jeu d'elements uniques (voir l'aide en ligne Excel )
colA.Add Cel.Offset(0, -2).Value, CStr(Cel.Offset(0, -2).Value)
End If
Next Cel

'boucle sur tous les elements de la collection pour alimenter la combobox contr1
For Each it In colA
contr1.AddItem colA(it)
Next it



bonne soiree
MichelXld
 
- 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
8
Affichages
238
Réponses
2
Affichages
389
Réponses
2
Affichages
168
Réponses
13
Affichages
630
Réponses
6
Affichages
722
Réponses
3
Affichages
456
Retour