VBA USF Combobox ???

xvella

XLDnaute Occasionnel
Bonjour Tous,
Bonjour Forum,

Dans un Userform, j'utilise une Combobox alimenter par List.
Cette fait juste une colonne de date dans le classeur.(Début à Fin d'année)
Quand j'ouvre le Userform, je réinscris la dernière date qui à été demandée qui est dans une simple cellule du classeur.
Voilà je voudrai si il est possible que lorsque je clic sur la petite flèche de la combobox je puisse me retrouver sur la dernière valeur et non sur le début de l'année.
Car sinon je dois tous faire défilée et cela est fastidieux.

Merci d'avance pour vos réponse.
Bonne Journée.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @xvella , le Forum

orsque je clic sur la petite flèche de la combobox je puisse me retrouver sur la dernière valeur et non sur le début de l'année

Tu entends quoi par là ?
  • Avoir les items dans la ComboBox dans l'ordre inverse de saisie de la Feuille ?
  • Avoir les dates dans l'ordre descendant ?
C'est assez différent ...

Bon week-end
@+Thierry
 

xvella

XLDnaute Occasionnel
Déjà bonjour à tous les deux,
Pour répondre à _Thierry ce que je souhaite faire c'est que lorsque on ouvre la Combobox.
Se serait que celle-ci s'ajuste sur la dernière valeur et non quel me présente dans mon cas le 01/01/2020 à chaque fois.
Sinon pour le topindex c comme le listindex il prennent les valeurs 0 ou -1 mais refuse de s'ajuster.
Je posterais plus tard un fichier exemple si besoin.

Merci à tous les deux.
Bonne fin de journée.
 

patricktoulon

XLDnaute Barbatruc
re
essaie ca
VB:
Private Sub UserForm_Initialize()
Dim x&
cboDay.List() = Sheets("Datum").Range("B5:B89").Value
cboDay.Value = Sheets("Datum").Range("E2").Value
x = Sheets("Datum").Range("E2").Value - DateValue(cboDay.List(0, 0)) - 1
cboDay.ListIndex = x
End Sub
 

ChTi160

XLDnaute Barbatruc
Bonjour
Bonjour Patrick ,le Forum
une méthode qui semble correspondre à la demande(ai je bien Compris ? Lol)
VB:
Option Explicit
Dim Lgn As Integer
Dim Indx As Integer
Dim T
Dim DteRef As Date
Private Sub UserForm_Initialize()
Indx=0
With Sheets("Datum")
DteRef = CDate(.Cells(2, 5).Value)
With .Range("B5:B89")
        .Sort key1:=Cells(5, 2), order1:=xlAscending, Header:=xlYes
T = .Value
End With
End With
With Me.cboDay
    For Lgn = 1 To UBound(T, 1)
       .AddItem T(Lgn, 1)
       If T(Lgn, 1) = DteRef Then Indx = Lgn - 1 'On détermine le ListIndex de la date 
    Next Lgn
       .ListIndex = Indx
End With
End Sub
Bonne journée
jean marie
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 611
dernier inscrit
sebboes