Cbx ssdoublon triée

pompaero

XLDnaute Impliqué
Bonjour à vous

J'essai de mettre en place un ComboBox sans doublon avec ordre alphabétique.
Concernant les doublons j'y suis arrivé mais n'arrive pas à adapter l'ordre alphabétique dans le code, donc je viens vers vous pour de l'aide svp.
Merci
Mon code :
Code:
Sub AlimCbxFonction()
    Dim i As Integer
    'Boucle sur les cellule de la colonne F
    For i = 1 To Sheets("employés").Range("F65536").End(xlUp).Row
        'Remplit la zone d'édition du ComboBox
        UsF_Employe.CBxAjouFonction = Sheets("employés").Range("F" & i)
        'ComboBox1.ListIndex renvoie -1 si la donnée n'existe pas dans
        'la liste déroulante. Dans ce cas, on va pouvoir utiliser la méthode AddItem
        'pour intégrer la donnée dans le ComboBox.
        '(Range("F" & i) <> "" permet simplement de gérer les éventuelles cellules vides
        'dans la colonne F).
        If UsF_Employe.CBxAjouFonction.ListIndex = -1 And Sheets("employés").Range("F" & i) <> "" Then _
            UsF_Employe.CBxAjouFonction.AddItem Sheets("employés").Range("F" & i)
    Next i
End Sub

par avance merci de votre aide.
Cordialement
 

Lone-wolf

XLDnaute Barbatruc
Re : Cbx ssdoublon triée

Bonsoir pompaero,

Normalement si tu trie la colonne en question, tu devrais avoir la combo dans l'ordre alphabétique. Mais la macro est inutile si tu part depuis un formulaire.

Dans UserFormi1_Initialize

Code:
Private Sub UserForm_Initialize()
With Sheets("employés")
For i = 2 To .Range("f65536").End(xlUp).Row
Combobox1 = .Range("f" & i)
If ComboBox1.ListIndex = -1 Then Combobox1.AddItem Range("F" & i)
Next i
End With
Combobox1 = ""
End Sub


Si tu as un bouton pour enregistrer les données (noms des employés par ex.), voici comment trier les colonnes

With Sheets("employés")
'Plage à adapter
.Range("A2:J1500").Sort .Range("f2"), xlAscending
End With
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Cbx ssdoublon triée

Bonjour.

Si vous installez mon module MSujetCBx (vous l'avez quelque part) vous pouvez le faire comme ça :
VB:
With Sheets("employés"): Me.ComboBox1.List = SujetCBx(.[F1].Resize(.[F65536].End(xlUp).Row)(0): End With
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Cbx ssdoublon triée

Bonsoir,

Additem est lent

Code:
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Set mondico = CreateObject("Scripting.Dictionary")
  a = f.Range("A2:A" & f.[A65000].End(xlUp).Row)  ' tableau a(n,1) pour rapidité
  For i = LBound(a) To UBound(a)
   If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
  Next i
  'Me.ComboBox1.List = MonDico.keys
  '--avec tri
  temp = mondico.keys
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.ComboBox1.List = temp
End Sub

http://boisgontierjacques.free.fr/fichiers/Cellules/FormListeSansDoublonsDict.xls

JB
 

pompaero

XLDnaute Impliqué
Re : Cbx ssdoublon triée

Bonjour lone-wolf, dranreb, boisgontier

Merci d'être arrêté sur mon post pour y apporter votre aide.
Le fichier que j'essai de construire servira à la gestion des casques (EPI) au niveau national donc ma direction m'en a donné la gestion, responsabilité, pour le stock et suivi d'entretien avec un code (ID) unique par personne. (j'essai de mettre en place un fichier).

lone-wolf :
Le souci est que ma colonne F n'est pas trié et ne peux la trier justement car je tri déjà sur les colonnes C, D, E. C'est pour cela que j'aimerai effectuer le tri directement dans la Combo (CBxAjouFonction).

dranreb :
Désolé, mais pas trouvé le module MSujetCBx donc pas essayer ta proposition.

boisgontier :
Après essai de ta proposition, cette dernière m'annonce :
[Variable non définie] pour les (f, mondico, i, a, temp)
[Sub ou Fonction non définie] pour Call tri

Je travaille sur l'UsF_Employe que j'essai d'adapter à mon fichier, dont pour le moment la CBxAjouFonction que j'aimerai mettre en ordre alphabétique car je ne peu trier la colonne F dans feuille "Employés" qui sert de BDD.

ensuite il y a la :
Modification qui faut améliorer car pour l'instant je ne peu effectuer de modifs
Créer le principe des ID dont je n'arrive pas à faire.

De l'aide serait la bienvenue en vous en remerciant par avance.
Fichier en PJ
Cordialement
 

Pièces jointes

  • Gestion Casques.xlsm
    72.6 KB · Affichages: 37

Lone-wolf

XLDnaute Barbatruc
Re : Cbx ssdoublon triée

Bonjour à toutes et as tous :)

Au meilleur des pompiers (SAM) ;) . Pour les variables de Jacques Boisgontier, quand tu met Option Explicit, il est évdent quil faut les déclarer. A mettre en dessous de Option Explicit. Pour Call tri, il faut copier la macro sur son site et là aussi il faut déclarer toutes les variables.
 

Discussions similaires

Réponses
11
Affichages
579

Statistiques des forums

Discussions
314 204
Messages
2 107 186
Membres
109 771
dernier inscrit
herve1979