trie Alpha listbox

  • Initiateur de la discussion josé
  • Date de début
J

josé

Guest
bonjour à tous

j'ai cette macro ( fourni par Hervé et fort bien commenté par Robert) qui me permet d'incrémenté une lisbox.
je voudrais arriver à trier la listbox2 alphabétiquement. Est ce réalisable ou dois je revoir la conception au départ de cette listebox?

Public Sub initlistbox2() 'procédure
Dim i As Integer 'déclare la variable i
Dim dataperso As Collection 'deçlare la variable dataperso
Set dataperso = New Collection 'définit la variable dataperso
If ListBox1.ListIndex = -1 Then 'si aucune année n'est sélectionnée
MsgBox ' Merci de sélectionner une année.' 'message
Exit Sub 'sort de la procédure
End If
If ListBox4.ListIndex = -1 Then 'si aucune couleur n'est sélectionnée
MsgBox ' Merci de sélectionner une couleur.' 'message
Exit Sub 'sort de la procédure
End If
ListBox2.Clear 'vide la ListBox2

'**************************************************************************************************
'Ajout des membres à la Collection dataperso
'quand dans une collection on ajoute un membre qui existe déjà cela provoque une erreur
'à cause de la clé : 'Ctr(tablo(i,3))' pour la collection dataperso
'le 'On Error Resume Next' garantit l'absence de doublon
'il est est donc utile de passer par une Collection pour remplir une ComboBox/ListBox sans doublons
'**************************************************************************************************

For i = 1 To UBound(tablo) 'boucle sur les lignes de tablo
'condition : si l'année en colonne A est la même que celle de la ListBox1 et
' que la couleur correspondante est la même que la ListBox4
If CStr(Year(tablo(i, 1))) = ListBox1 And tablo(i, 2) = ListBox4 Then
On Error Resume Next 'gestion des erreurs (évite les doublons)
'ajoute le membre Colonne 3 (Personnels) à la collection dataperso
dataperso.Add tablo(i, 3), CStr(tablo(i, 3))
On Error GoTo 0 'annule la gestion des erreurs
End If 'fin de la condition
Next i 'prochane ligne de tablo

'remplissage de la Listox2 'Personnels'
For i = 1 To dataperso.Count 'boucle sur tous les membres de la collection dataperso
ListBox2.AddItem dataperso(i) 'ajoute le membre à la ListBox2
Next i 'prochain membre de la collection dataperso
End Sub


MERCI pour vos conseils
 

Hervé

XLDnaute Barbatruc
Bonjour josé, le forum

en pièce jointe ton fichier modifié.

j'ai essayé de commenter le code, mais je n'ai pas le talent de robert.

salut :) [file name=essai4.zip size=20856]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essai4.zip[/file]
 

Pièces jointes

  • essai4.zip
    20.4 KB · Affichages: 84
  • essai4.zip
    20.4 KB · Affichages: 82
  • essai4.zip
    20.4 KB · Affichages: 82

Discussions similaires

Réponses
4
Affichages
234

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry