IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

modifier le tri d'une combo


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut modifier le tri d'une combo
    Bonjour,
    actuellement, une combo affiche les données en les triant par id croissant (colonne A du fichier Excel).
    Comment les trier maintenant par une autre colonne du fichier ? (ordre alphabétique du champ NOM USAGE situé en colonne H)?

    Le code actuel de la combo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cboMember_Click()
     CurrentRecord = Me.cboMember.ListIndex
     ReadRecord CurrentRecord ' Lecture de l'enregistrement sélectionné
     CheckButton
    End Sub
    Je mets le code complet du formulaire en pièce jointe.
    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Bonjour,

    Sans regarder le code, tu auras ta réponse en utilisant l'enregistreur de macro, qui fera 99% du travail, si ce n'est qu'un simple tri.

    Cdt,

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonsoir,

    Le tri utilisé est le plus lent que l'on puisse imaginer (Buble Sort)!

    Voir un exemple en PJ avec un tri sérieux (quuick-sort).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Option Compare Text
    Private Sub UserForm_Initialize()
     ComboBox1.List = Range("A2:B" & Range("a65000").End(xlUp).Row).Value
    End Sub
     
    Private Sub OptionButton1_Click()
       Dim a()
       a = Me.ComboBox1.List
       Call tri(a(), LBound(a), UBound(a), 0)
       Me.ComboBox1.List = a
    End Sub
     
    Private Sub OptionButton2_Click()
       Dim a()
       a = Me.ComboBox1.List
       Call tri(a(), LBound(a), UBound(a), 1)
       Me.ComboBox1.List = a
    End Sub
     
    Sub tri(a(), gauc, droi, colTri)        ' Quick sort
     ref = a((gauc + droi) \ 2, colTri)
     g = gauc: d = droi
     Do
         Do While a(g, colTri) < ref:  g = g + 1: Loop
         Do While ref < a(d, colTri): d = d - 1: Loop
         If g <= d Then
           For c = LBound(a, 2) To UBound(a, 2)
             temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
           Next
           g = g + 1: d = d - 1
         End If
     Loop While g <= d
     If g < droi Then Call tri(a, g, droi, colTri)
     If gauc < d Then Call tri(a, gauc, d, colTri)
    End Sub
    Boisgontier
    http://boisgontierjacques.free.fr
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Modifier le style d'une combo box
    Par Imageek dans le forum Struts 1
    Réponses: 2
    Dernier message: 14/05/2010, 13h45
  2. [1.x] Comment définir l'ordre de tri des choix d'une combo ?
    Par lr dans le forum Symfony
    Réponses: 2
    Dernier message: 21/01/2010, 12h40
  3. Réponses: 5
    Dernier message: 12/10/2007, 10h06
  4. Réponses: 3
    Dernier message: 30/03/2007, 14h58
  5. Modifier la couleure d'une liste a choix (combo box)
    Par echantillon dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 03/02/2007, 22h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo