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 :

Comment trier une listbox? [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Août 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Comment trier une listbox?
    Bonjour a tous,

    J'ai chercher sur ce très bon forum ou j'ai trouver plein de choses, pour m'améliorer sur le VBA. Mais la je bloque voila j'ai une listbox sur un userform.

    Nom : userform.PNG
Affichages : 4859
Taille : 18,5 Ko


    La listbox a droite est remplit grâce a mon textbox du milieu. Je fais une recherche sur mon fichier excel pour trouver tous les noms commençant par 10. Cela fonctionne, mais la chose que je n'arrive plus a faire ces trier ma listbox par ordre alphabétique .

    voici le code que j'ai mis pour réaliser la recherche sur mon fichier ainsi que le tri par ordre alphabétique. Mais cela ne fonctionne pas. Est ce que quelqu'un peut me donner un coup de main?

    PS : la textbox 7 est la case du milieu sur le userform avec le 10 a l'intérieur.


    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Private Sub CommandButton4_Click() 'OK
    Dim I As Byte
     
      For I = 1 To 5
       Next I
      Me.TextBox7 = ""
      For I = 1 To 5
       Me.TextBox7 = Me.TextBox7 & Me.Controls("TextBox" & I)
      Next I
      a = Me.TextBox7
     
    Dim oCel As Range
     
     
    ListBox1.Clear
     
     
    If TextBox7.Text = "" Then
    TextBox7.SetFocus
    MsgBox "Aucun critère de recherche saisi !", vbCritical
    Exit Sub
    End If
     
     
    Worksheets("feuil1").Select
     
     
    For Each oCel In ActiveSheet.Range("I2:I" & ActiveSheet.Range("I65536").End(xlUp).Row)
    If oCel.Value Like TextBox7.Text & "*" Then
    ListBox1.AddItem oCel.Value
    End If
    Next oCel
     
        If ListBox1.ListCount = 0 Then
            With TextBox7
            .SelStart = 0
            .SelLength = Len(TextBox7.Text)
            .SetFocus
        End With
        MsgBox "La référence demandé n'existe pas. ", vbOKOnly
        Else
        ListBox1.ListIndex = 0
    End If
     
       If ListBox1.ListIndex <> 0 Then
            With UserForm1.ListBox1
              For I = 0 To .ListCount - 1
                For j = 0 To .ListCount - 1
                   If .List(I) < .List(j) Then
                        strTemp = .List(I)
                        .List(I) = .List(j)
                        .List(j) = strTemp
                    End If
                Next j
            Next I
     
          End With
        End If
     
     
    End Sub

    Merci d'avance pour vos réponse.

  2. #2
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Août 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If ListBox1.ListIndex <> 0 Then
    l'erreur ce trouvait ici cette ligne me bloqué le tri après l'avoir mis en commentaire mon tri ce fait parfaitement.

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour,
    j'arrive trop tard mais bon!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub UserForm_Initialize()
    Me.ComboBox1.List = Array("z", "a")
     
    Me.ComboBox1.List = TrieListe(Me.ComboBox1)
    End Sub
    Function TrieListe(L)
    Dim a, b, i As Integer
    a = L.List
    For i = 1 To UBound(a)
        If a(i, 0) < a(i - 1, 0) Then b = a(i, 0): a(i, 0) = a(i - 1, 0): a(i - 1, 0) = b: i = i - 2
        If i < 0 Then i = 0
    Next
    TrieListe = a
    End Function

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]Comment faire une ListBox a 2 Colonnes
    Par patoch76 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/05/2006, 22h12
  2. Réponses: 7
    Dernier message: 10/05/2006, 11h15
  3. [C#] Comment trier une DataTable ?
    Par royto dans le forum C#
    Réponses: 2
    Dernier message: 23/03/2006, 01h15
  4. Comment trier une table paradox dans un Ttable sur un Dbgrid
    Par amireve dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/12/2005, 19h28
  5. Comment trier une DBGRID en cliquant sur une colonne
    Par sessime dans le forum Bases de données
    Réponses: 8
    Dernier message: 09/10/2004, 16h18

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