inverser le contenu d'un listbox

  • Initiateur de la discussion Thomas®
  • Date de début
T

Thomas®

Guest
Bonjour le forum,

j'ai un liste box que je remplis grace à additem

Code:
derlgn = Sheets('HISTO').Range('A65536').End(xlUp).Row
lgn = 0
With Me.ListBox1
      .ColumnCount = 5
      .ColumnWidths = '150;120;110;0;0'
For Each cel In Range('A2:A' & derlgn)
R = cel.Row
 If Rows(R).Hidden = False Then
          .AddItem Cells(R, 1).Value
     For Col = 1 To 5
          .Column(Col, .ListCount - 1) = Cells(R, Col + 1).Value
          Next
        End If
     Next
 End With

Je cherche un moyen 'inverser la liste .

exemple :

ce qui est en A1 à E1 (soit à la fin du listbox)
et ce qui est en derniere ligne de A à E soit en haut du listbox.

Je vais poser une question vraiment bête mais est ce possible de faire un boucle à l'envert ?

exemple :
For Each cel In Range ('A' & derlgn & ':A1')

D'avance merci
Thomas®
 

JeanMarie

XLDnaute Barbatruc
Bonjour

Tu dois modifier l'instruction AddItem

Variant = object.AddItem [ item [, varIndex]]
La syntaxe de la méthode AddItem comprend les éléments suivants :
Élément Description
object Objet valide.
item Facultatif. Spécifie l'élément ou la ligne à ajouter. Le numéro du premier élément ou de la première ligne est 0 ; le numéro du deuxième élément ou de la deuxième ligne est 1, et ainsi de suite.
varIndex Facultatif. Nombre entier spécifiant la position d'insertion du nouvel élément ou de la nouvelle ligne.


Code:
 .AddItem Cells(R, 1).Value , 0

@+Jean-Marie
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde


Sinon tu peut tester ceci :

Dim i As Integer
derlgn = Sheets('HISTO').Range('A65536').End(xlUp).Row
lgn = 0
With Me.ListBox1
      .ColumnCount = 5
      .ColumnWidths = '150;120;110;0;0'
For i = derlgn To 2 Step -1
   
If Rows(i).Hidden = False Then
        .AddItem Cells(i, 1).Value
       
For col = 1 To 5
            .Column(col, .ListCount - 1) = Cells(i, col + 1).Value
       
Next col
   
End If
Next i
End With

ce type de synthaxe permet de boucler à l'envers :

For i = derlgn To 2 Step -1


Salut
 
T

Thomas®

Guest
Bonjour le forum,

je ne sais pas si il faut que je consacre un nouveau post pour ma question? :whistle:

en fait j'utiliste cette macro :

Code:
Dim i As Integer
derlgn = Sheets('HISTO').Range('A65536').End(xlUp).Row
lgn = 0
With Me.ListBox1
      .ColumnCount = 7
      .ColumnWidths = '150;120;70;0;0;0;60'
For i = derlgn To 2 Step -1
    If Rows(i).Hidden = False Then
        .AddItem Cells(i, 1).Value
        For Col = 1 To 7
            .Column(Col, .ListCount - 1) = Cells(i, Col + 1).Value
        Next Col
    End If
Next i
End With

Que m'a donné Hervé.

et dans la derniere colonne j'ai des infos qui sont toujours les mêmes.

ma question est :

est il possible a l'aide d'un combobox de faire un tri n'affichant que les lignes comportant le mots choisi dans la derniere colonne ?


je vous joint un exemple B)

D'avance merci
Thomas® [file name=listbox_20050523143037.zip size=11972]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/listbox_20050523143037.zip[/file]
 

Pièces jointes

  • listbox_20050523143037.zip
    11.7 KB · Affichages: 33

Hervé

XLDnaute Barbatruc
Bonjour tout le monde
salut thomas

Un exemple parmi d'autres :

Private Sub ComboBox1_Change()
Dim i As Integer
ListBox1.Clear
derlgn = Sheets('HISTO').Range('A65536').End(xlUp).Row
lgn = 0
With Me.ListBox1
For i = derlgn To 2 Step -1
   
If Rows(i).Hidden = False And Range('g' & i) = ComboBox1 Then
        .AddItem Cells(i, 1).Value
       
For Col = 1 To 7
            .Column(Col, .ListCount - 1) = Cells(i, Col + 1).Value
       
Next Col
   
End If
Next i
End With

End Sub

Dans cette exemple on boucle sur le tableau initial.

Salut
 
T

Thomas®

Guest
Bonjour,

Merci Hervé, cela fait plusieurs jours que tu me depannes.

au moment ou j'ai lu ton message j'etais pas loin il me manqué le
listbox1.clear

car ma liste etait de plus en plus grande

Merci
Thomas®
 

Discussions similaires

Réponses
2
Affichages
156

Statistiques des forums

Discussions
312 330
Messages
2 087 346
Membres
103 525
dernier inscrit
gbaipc