Problème de mise à jour d'une comboBox

HakunaMatata

XLDnaute Nouveau
Bonjour le forum,

Je suis actuellement en train de créer un userForm qui contient :
- une comboBox récupérant les mois de janvier jusqu'au mois actuel

Code:
Private Sub UserForm_Initialize()
  If Day(Date) = 1 Then
  mo = Month(Date) - 1
  Else
  mo = Month(Date)
  End If
  For mois = 1 To mo
        If mois = 1 Then ComboMois.AddItem ("Janvier")
        If mois = 2 Then ComboMois.AddItem ("Février")
        If mois = 3 Then ComboMois.AddItem ("Mars")
        If mois = 4 Then ComboMois.AddItem ("Avril")
        If mois = 5 Then ComboMois.AddItem ("Mai")
        If mois = 6 Then ComboMois.AddItem ("Juin")
        If mois = 7 Then ComboMois.AddItem ("Juillet")
        If mois = 8 Then ComboMois.AddItem ("Août")
        If mois = 9 Then ComboMois.AddItem ("Septembre")
        If mois = 10 Then ComboMois.AddItem ("Octobre")
        If mois = 11 Then ComboMois.AddItem ("Novembre")
        If mois = 12 Then ComboMois.AddItem ("Décembre")
   Next mois
End Sub

- une comboBox récupérant les jours de 1 à au chiffre du jour dépendant du mois.

Je m'explique pour cette deuxième comboBox :

1-

Les mois de Janvier, Mars, Mai, Juillet, Août, Octobre, Décembre contiennent 31 jours
Février contient 29 jours au plus
et les autres mois à savoir Avril, Juin, Septembre et Novembre en contiennent 30.

2-

Si on sélectionne le mois de Juillet, il faut que les chiffres de 0 à 31 s'affichent dans cette 2ème comboBox.
Jusque là, c'est bon.

Or, je fais en sorte que si on est le mois courant, on affiche les jours de 1 jusqu'au jour actuel - 1.

Code:
Private Sub ComboMois_Click()
    Select Case ComboMois.Value
        Case "Janvier"      
            JourImpair        
        Case "Février"      
            JourDiff      
        Case "Mars"
            JourImpair
        Case "Avril"
            JourPair
        Case "Mai"
            JourImpair
        Case "Juin"
            JourPair
        Case "Juillet"
            JourImpair
        Case "Août"
            JourImpair
        Case "Septembre"
            JourPair
        Case "Octobre"
            JourImpair
        Case "Novembre"
            JourPair
        Case "Décembre"
            JourImpair
    End Select
End Sub

Private Sub JourPair()
    ' concerne les mois de avril, juin, septembre, novembre
        Dim m As Integer
    Dim mois As String
    m = Month(Date)
    If m = 4 Then mois = "Avril"
    If m = 6 Then mois = "Juin"
    If m = 9 Then mois = "Septembre"
    If m = 11 Then mois = "Novembre"
    Dim j As Integer
    If ComboMois.Text = mois Then
            For j = 1 To Day(Date) - 1
                ComboJour.AddItem ("" & j)
            Next j
     Else
            For j = 1 To 30   
                ComboJour.AddItem ("" & j) 
            Next j                  
     End If
End Sub

Private Sub JourImpair()
    'concerne les mois de janvier, mars, mai, juillet, aout, octobre, décembre
    Dim m As Integer
    Dim mois As String
    m = Month(Date)
    If m = 1 Then mois = "Janvier"
    If m = 3 Then mois = "Mars"
    If m = 5 Then mois = "Mai"
    If m = 7 Then mois = "Juillet"
    If m = 8 Then mois = "Août"
    If m = 10 Then mois = "Octobre"
    If m = 12 Then mois = "Décembre"
    Dim j As Integer
    If ComboMois.Text = mois Then
       For j = 1 To Day(Date) - 1
            ComboJour.AddItem ("" & j)
        Next j
     Else
       For j = 1 To 31                
         ComboJour.AddItem ("" & j) 
            Next j                    
    End If
End Sub

Private Sub JourDiff()
    'concerne le mois de février
    Dim m As Integer
    Dim mois As String
    m = Month(Date)
    If m = 2 Then mois = "Février"
    Dim j As Integer
        If ComboMois.Text = mois Then
            For j = 1 To Day(Date)
                ComboJour.AddItem ("" & j)
            Next j
        Else
            For j = 1 To 29                
                ComboJour.AddItem ("" & j) 
            Next j                      
        End If
End Sub

Par exemple, nous sommes le 07 août. Donc, dans la comboBox, ca m'affiche bien les jours de 01 à 06.

Maintenant, si j'ai envie de "jouer" avec mes comboBox (pour remplacer l'utilisateur qui ne sait pas trop ce qu'il veut) :
- je choisis le mois d'août, j'ai les chiffres 01 à 06 qui s'affichent. Là, c'est ok.
- je choisis maintenant le mois de juillet, j'ai les chiffres de 01 à 31 qui s'affichent, on est ok sur ca. Cependant, on a ces chiffres mais on a aussi ceux d'avant.

3-

C'est ici ce que se trouve mon problème : comment puis je mettre à jour ma comboBox pour qu'elle n'affiche qu'une seule série de chiffres et non toutes celles des mois que j'aurais choisi ... ?

Il est vrai que dans le code, je n'ai pas mis quelque chose pour mais c'est dû au fait que j'ai essayé plusieurs trucs en vain ...

Merci à l'avance si vous pouvez m'aider !

Cordialement,
 
D

Denis

Guest
Re : Problème de mise à jour d'une comboBox

Bonjour HakunaMatata et le forum
Ecris comme ceci :
Private Sub ComboMois_Click()
me.combobox1.clear
etc

Ton combo se vide avant d'y integrer de nouvellex valeurs

Bon courage et à+
Denis
 

Discussions similaires

Réponses
5
Affichages
191

Statistiques des forums

Discussions
312 237
Messages
2 086 489
Membres
103 234
dernier inscrit
matteo75654548