Combobox affichage inversé ?

Bonjour,

Y a t'il un moyen qu'un combobox dans un USF affiche les derniers résultats en premier (en décroissant) ?

Par exemple, disons que le combobox en question a pour source une colonne dans une feuille excel qui s'incréments vers le bas au fur et à mesure du temps.

Le but serait d'éviter d'avoir à scroller le menu déroulant de la combobox tout en bas à chaque fois puisque forcement j'ai besoin des elements les plus récents ...

Une idée ?

Merci bcp pour votre aide

Bonjour Nico, bonjour le forum,

Une proposition :

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter)
COL = 1 'définit la colonne COL (à adapter)
DL = O.Cells(Application.Rows.Count, COL).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne COL de l'onglet O
For I = DL To 2 Step -1 'boucle inversée des lignes DL à 2 (en remontant)
    Me.ComboBox1.AddItem Cells(I, COL) 'ajoute la valeur de la cellule ligne I colonne COL à la ComboBox1
Next I 'prochaine ligne de la boucle
End Sub

Merci ThauThème !!

Toute la subtilité réside dans

To 2 Step -1

Bonjour …

Ayant l’habitude d’utiliser autant que faire ce peut les tableaux ( de la classe LitObjects pour ceux dans une feuille avec de nombreuses propriétés permettant de simplifier les choses), si le tableau se nomme Tb, où qu’il soit dans le classeur :

Dim D, T, n As Long ‘D est un objet, T est un tableau VBA
Private Sub UserForm_Initialize()
    Set D = CreateObject("Scripting.Dictionary")
    T = [Tb].Value
    For n = UBound(T) To 1 Step -1: D(T(n, 3)) = "": Next
    ComboBox1.List = D.Keys
End Sub

Merci Ordonc pour ta contribution ;-)

Effectivement utile si on est dans un tableau

Rechercher des sujets similaires à "combobox affichage inverse"