Donner une valeur par défaut à une combobox

troopers87

XLDnaute Occasionnel
Bonjour à tous,

je souhaite que la combobox de mon UserForm dispose d'une valeur par défaut particulière : le mois en cours.

En clair, le but est que l'utilisateur n'ait pas à saisir le mois dans la liste déroulante car celle-ci le sera déjà : gain de temps et erreurs de saisies évitées. Evidemment, j'utilise une combobox pour laisser le choix à l'utilisateur de saisir un autre mois si le coeur lui en dit.

Je joins un petit fichier Exemple pour illustrer le tout, merci d'avance pour votre aide !
 
G

Guest

Guest
Re : Donner une valeur par défaut à une combobox

Bonsoir,

Le fichier est resté coincé dans les tuyaux!!!

Truc:
Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then ComboBox1.ListIndex = Month(Date) - 1
End Sub

'Chargement et initialisation du combobox
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 12: ComboBox1.AddItem MonthName(i): Next
ComboBox1.ListIndex = Month(Date) - 1
End Sub

A+
 

troopers87

XLDnaute Occasionnel
Re : Donner une valeur par défaut à une combobox

Oups, oui effectivement !

Par contre, je ne comprends pas trop ta méthode... Pourrais-tu regarder mon fichier et me dire ce que tu en penses ?

Merci !
 

Pièces jointes

  • Exemple_v1.xlsm
    19.9 KB · Affichages: 57
  • Exemple_v1.xlsm
    19.9 KB · Affichages: 75
G

Guest

Guest
Re : Donner une valeur par défaut à une combobox

Re,

La méthode est la même, seule la manière de charger la combobox est différente.

Dans l'évènement Change:
Les mois sont affichés et ont pour index dans la combobox de 0 (Janvier) à 11 (Décembre)
Listindex=-1 indique qu'aucun choix n'est effectué
donc on force le choix au numéro de mois de la date en cours 'Month(Date)' -1 puisque les index des combobox vont de 0 à count-1 items.

Vois en bas de l'évènement Initialize du userform également.

Et vois dans l'aide VBA sur les mots clefs Listindex, Month etc.

Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then ComboBox1.ListIndex = Month(Date) - 1
End Sub
Private Sub Userform_initialize()
Me.ComboBox1.AddItem "Janvier"
Me.ComboBox1.AddItem "Février"
Me.ComboBox1.AddItem "Mars"
Me.ComboBox1.AddItem "Avril"
Me.ComboBox1.AddItem "Mai"
Me.ComboBox1.AddItem "Juin"
Me.ComboBox1.AddItem "Juillet"
Me.ComboBox1.AddItem "Août"
Me.ComboBox1.AddItem "Septembre"
Me.ComboBox1.AddItem "Octobre"
Me.ComboBox1.AddItem "Novembre"
Me.ComboBox1.AddItem "Décembre"
'initialiser avec le mois en cours
ComboBox1.ListIndex = Month(Date) - 1
End Sub

A+
 

Discussions similaires

Réponses
6
Affichages
116

Statistiques des forums

Discussions
312 249
Messages
2 086 599
Membres
103 256
dernier inscrit
Melomaniak