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 :

Tri inverse d'une ListBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 129
    Par défaut Tri inverse d'une ListBox
    Bonjour,

    Dans mon classeur j'ai une ListBox qui contient le noms de mes feuilles excel (dont l'ordre n'es pas alphabétique). Je souhaiterai inverser l'ordre d'affichage de ma Listbox. J'ai trouvé comment faire un tri alphabétique croissant ou décroissant mais pas juste inversé.. Pouvez-vous m'aider ?? Merci

  2. #2
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonjour blackstrange,

    Faudrait tester la formule suivante dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.AddItem intIndex, 0
    Et nous tenir au courant.
    C'est qu'une simple tentative.

    Bertrand

  3. #3
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 129
    Par défaut
    Bonjour!

    J'ai cherché un peu et j'ai mieux compris cette histoire d'index

    donc j'ai ajouté "0" à la fin de ma formule permettant de remplir ma listbox, cela fonctionne bien! le seule truc c'est que si mes noms de feuilles sont inversés, le "focus" se fait sur le premier de la liste (qui est maintenant le dernier) alors que ce que je souhaite c'est rendre plus facile d'accès les dernières feuilles du classeur qui seront les plus récentes!

  4. #4
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 129
    Par défaut
    Alors j'ai trouvé une solution : je les insère dans l'ordre puis à la fon de mon code j'écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.TopIndex = ListBox1.ListCount
    et ça fonctionne plutôt bien, cela m'affiche la fin de ma ListBox et l'ordre reste le même!

    Que pensez-vous de cette solution ?

  5. #5
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Citation Envoyé par blackstrange Voir le message
    Alors j'ai trouvé une solution : je les insère dans l'ordre puis à la fon de mon code j'écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.TopIndex = ListBox1.ListCount
    et ça fonctionne plutôt bien, cela m'affiche la fin de ma ListBox et l'ordre reste le même!

    Que pensez-vous de cette solution ?
    Je n'ai pas testé mais ça me parait étrange car .ListCount renvoie le nombre d'articles présents... Je ne vois pas la logique.

    Sinon tu peux charger "en inversant" les éléments dans une liste/array/"tableautranfert" et les retourner ensuite dans la ListBox

    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
    Sub inversionlistbox()
    ' Macro qui permet l'inversion des éléments présents dans une listbox
     
        Dim i, j As Long
        Dim tableautransfert() As String
        Dim itemlist, nombrecolonne As Integer
     
        ' A modifier en fonction du nom de la listbox
        With ListBox1
     
            ' détermine les dimensions à retenir pour le tableau
            itemlist = .ListCount - 1
            nombrecolonne = .ColumnCount
     
            ' Initialise le tableau à 2 dimensions qui va recevoir les infos
            ReDim tableautransfert(itemlist, nombrecolonne)
     
            'boucle pour remplir le tableau
            For i = 0 To nombrecolonne - 1
                For j = 0 To itemlist
                    tableautransfert(j, i) = .List(itemlist - j, i)
                Next j
            Next i
            .List = tableautransfert
     
        End With
     
    End Sub
    C'est plus long comme code mais ça fonctionne.

    Bertrand

  6. #6
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 129
    Par défaut
    Merci! je garde ma simple petite ligne car pour l'instant cela fonctionne même en ajoutant des feuilles!

    mais si je vois que cela ne fonctionne plus à un moment je prendrais ton code! merci beaucoup!

Discussions similaires

  1. [XL-2007] Créer une Listbox Filtré trié et classé
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/08/2014, 12h07
  2. [XL-2007] Faire en sorte d'insérer des données triées dans une ListBox.
    Par EtherniTy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/09/2010, 13h35
  3. [Toutes versions] Tri alpha d'une listbox renseignée
    Par LeForestier dans le forum Contribuez
    Réponses: 0
    Dernier message: 14/08/2009, 10h10
  4. Réponses: 0
    Dernier message: 15/01/2009, 12h00
  5. Tri dans une listbox
    Par JLDpilot dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/04/2008, 15h28

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