Mise en place d'un etat mensuel

mythiac Messages postés 72 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 23 février 2009 - 20 oct. 2008 à 11:18
mythiac Messages postés 72 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 23 février 2009 - 20 oct. 2008 à 11:49
bonjour, je débute en vba sur excel

j'ai créé un userform pour que les utilisateurs puissent se renseigner sur des opérations qui seront triées en fonction de la date. pour cela, il apparait une combobox de selection du mois (liste sur ma feuil9), un textbox pour l'année.

ainsi, l'utilisateur ne peut sélectionner que ces deux choses. je veux rendre automatique la sélection du 1er jour du mois sélectionné au dernier jour du mois selectionné, en affichant ces deux dates dans les textbox 3 et 4 que j'ai crée. (pour les réutiliser par la suite...)

pour l'instant les sélection que j'ai crée fonctionnent, la où j'ai un problème, c'est pour la deuxième date, découlant de la premiere (afin de determiner si il y a 31, 30, 28 ou 29 jours...)
Je me sert de ma feuil9 pour les opérations intermédiaire pour info...

merci par avance, je vous mets mon code ci-dessous...

Private Sub userform_initialize()
ComboBox1.Clear
ComboBox1.AddItem ("JANVIER")
ComboBox1.AddItem ("FEVRIER")
ComboBox1.AddItem ("MARS")
ComboBox1.AddItem ("AVRIL")
ComboBox1.AddItem ("MAI")
ComboBox1.AddItem ("JUIN")
ComboBox1.AddItem ("JUILLET")
ComboBox1.AddItem ("AOUT")
ComboBox1.AddItem ("SEPTEMBRE")
ComboBox1.AddItem ("OCTOBRE")
ComboBox1.AddItem ("NOVEMBRE")
ComboBox1.AddItem ("DECEMBRE")
ComboBox1.ListIndex = 0

End Sub

Private Sub ComboBox1_Change()

End Sub

Private Sub CommandButton1_Click()

Dim l As Object 'transition pour mois
Dim m As Object 'année en fonction de la textbox1
Dim q As Object '1er jour
Dim s As Object 'dernier jour

'mois
Feuil9.Range("g1").Value = ComboBox1.Value
    If Feuil9.Range("g1").Value = "JANVIER" Then
    Feuil9.Range("g2").Value = 1
    ElseIf Feuil9.Range("g1").Value = "FEVRIER" Then
    Feuil9.Range("g2").Value = 2
    ElseIf Feuil9.Range("g1").Value = "MARS" Then
    Feuil9.Range("g2").Value = 3
    ElseIf Feuil9.Range("g1").Value = "AVRIL" Then
    Feuil9.Range("g2").Value = 4
    ElseIf Feuil9.Range("g1").Value = "MAI" Then
    Feuil9.Range("g2").Value = 5
    ElseIf Feuil9.Range("g1").Value = "JUIN" Then
    Feuil9.Range("g2").Value = 6
    ElseIf Feuil9.Range("g1").Value = "JUILLET" Then
    Feuil9.Range("g2").Value = 7
    ElseIf Feuil9.Range("g1").Value = "AOUT" Then
    Feuil9.Range("g2").Value = 8
    ElseIf Feuil9.Range("g1").Value = "SEPTEMBRE" Then
    Feuil9.Range("g2").Value = 9
    ElseIf Feuil9.Range("g1").Value = "OCTOBRE" Then
    Feuil9.Range("g2").Value = 10
    ElseIf Feuil9.Range("g1").Value = "NOVEMBRE" Then
    Feuil9.Range("g2").Value = 11
    ElseIf Feuil9.Range("g1").Value = "DECEMBRE" Then
    Feuil9.Range("g2").Value = 12
    End If
Set l = Feuil9.Range("g2")
j = l.Value

'année
Set m = UserForm12.TextBox1
r = m.Value

'1er jour
Set q = Feuil9.Range("g3")
p = q.Value

'dernier jour
Feuil9.Range("f1").Value = DateSerial(r, j, p)

Set s = Month(Feuil9.Range("f1"))
k = s.Value

If j = "01" Then
k = 31
ElseIf j = "02" Then
    If Day(DateSerial(Year(Now), 2, 28) + 1) = 29 Then
    k = 29
    Else
    k = 28
    End If
ElseIf j = "03" Then
k = 31
ElseIf j = "04" Then
k = 30
ElseIf j = "05" Then
k = 31
ElseIf j = "06" Then
k = 30
ElseIf j = "07" Then
k = 31
ElseIf j = "08" Then
k = 31
ElseIf j = "09" Then
k = 30
ElseIf j = "10" Then
k = 31
ElseIf j = "11" Then
k = 30
ElseIf j = "12" Then
k = 31
End If

  
    TextBox3.text = DateSerial(r, j, p)
    TextBox2.text = DateSerial(k, j, s)

       
End Sub

1 réponse

mythiac Messages postés 72 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 23 février 2009
20 oct. 2008 à 11:49
pour information, j'ai ce messsage d'erreur:
Erreur d’exécution ‘424’
Objet requis

pour la ligne : Set s = Month(Feuil9.Range("f1"))
0
Rejoignez-nous