combobox triée ordre alphabétique

Blafi

XLDnaute Occasionnel
Bonjour à tous les forumeurs du soir...,

J'essaye d'utiliser un exemple de fichier de base de données trouvé sur ce forum, qui permet de rentrer et de modifier des données insérées dans une base..

Pardon d'avance à son auteur mais je ne sais plus qui a créé ce fichier et à la demande de qui ( il s'agit au départ de la gestion de CV...si ça peut aider à le retrouver).

Ce fichier correspond bien à mes besoins mais il ya une chose que je souhaiterais faire et que je n'arrive pas à réaliser :

lorsque l'on clique sur le bouton "modifier un CV", une combobox s'affiche en proposant de choisir dans la liste des personnes figurant dans la base. C'est très bien car dans l'exemple il n'y a que 6 noms dans la base et le tri de cette liste par ordre alphabétique ne s'impose pas.
Par contre dès que l'on a plusieurs dizaines de personnes dans la base, il devient très dur de trouver la personne voulue si les noms ne sont pas triès dans l'ordre alphabétique.

Ma question : est-il possible de modifier le code pour que la liste des personnes apparaisse trièe dans la combobox sans pour autant que la base ne soit elle-même triée (car les enregistrements rentrés dans la base se mettent à la suite les uns des autres sans ordre alphabétique) ??

Ou alors faut-il systématiquement trier la base entière par ordre alphabétique sur les noms à chaque fois que l'on rentre une nouvelle personne ??

Merci d'avance de vos réponses. Ci-joint le fichier d'origine.

A plus...
 

Pièces jointes

  • Forum_01.zip
    41.1 KB · Affichages: 52
  • Forum_01.zip
    41.1 KB · Affichages: 55
  • Forum_01.zip
    41.1 KB · Affichages: 53

Blafi

XLDnaute Occasionnel
Re : combobox triée ordre alphabétique

Rebonjour..
Je viens de retrouver les auteurs de ce fichier il s'agit de jmblondel au départ et de la réponse de cbea, échange réalisé en février 08...
Si ça peut aider les auteurs à me renseigner...
Merci et à plus...
 

Cousinhub

XLDnaute Barbatruc
Re : combobox triée ordre alphabétique

Bonsoir,
par cet excellent code De JB (Boisgontier)

Modifie le code ainsi, et rajoute la fonction de tri

Code:
Private Sub UserForm_Initialize()
    Dim Plage As Range

    With Sheets("CV")
        Set Plage = .Range("Q2:Q" & .Range("Q65536").End(xlUp).Row)
    End With
    n = Plage.Rows.Count
    Call tri(Plage, 1, n)
    ComboBox1.List = Plage.Value
End Sub

Sub tri(a, gauc, droi) ' Quick sort
   ref = a((gauc + droi) \ 2)
   g = gauc: d = droi
   Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
   Loop While g <= d
   If g < droi Then Call tri(a, g, droi)
   If gauc < d Then Call tri(a, gauc, d)
End Sub
 

Discussions similaires

Réponses
6
Affichages
341

Statistiques des forums

Discussions
312 362
Messages
2 087 635
Membres
103 619
dernier inscrit
TRANCART