re bonjour
Nous allons procéder par étape:
Dans ta proc "ComboBox1_Change()"
If TextBox1.Value = "" Then
MsgBox "Veuillez saisir l'heure de début", vbOKOnly, "ERREUR"
Exit Sub
Else: GoTo 1
End If
If TextBox2.Value = "" Then
MsgBox "Veuillez saisir l'heure de fin", vbOKOnly, "ERREUR"
Exit Sub
Else: GoTo 1
End If
If ComboBox1.Value = "" Then
MsgBox "Veuillez sélectionner un poste", vbOKOnly, "ERREUR"
Exit Sub
Else: GoTo 1
End If
1
Set plage2 = ws1.Range("A2:A" & L)
(....)
Tout d'abord, je te conseille de mettre toutes les instructions du même niveau de condition avec la même tabulation (pour moi c'est plus lisible) :
If TextBox1.Value = "" Then
MsgBox "Veuillez saisir l'heure de début", vbOKOnly, "ERREUR"
Exit Sub
Else
GoTo 1
End If
D'autre part, personellement ( mais là c'est une affaire de goût) je préfère les étiquettes explicites plutôt que numérique. mais comme ça ne change rien laisse les comme tu as envie.
En revanche, pour tes tests, je supprimerais le Else: GoTo 1.
En effet, si ta condition est réalisée, on affiche le message et on quitte la proc, et dans le cas contraire, on va au branchement 1.
Donc ton 2ème test n'est jamais exécuté.
If TextBox1.Value = "" Then
MsgBox "Veuillez saisir l'heure de début", vbOKOnly, "ERREUR"
Exit Sub
End If
If TextBox2.Value = "" Then
MsgBox "Veuillez saisir l'heure de fin", vbOKOnly, "ERREUR"
Exit Sub
End If
If ComboBox1.Value = "" Then
MsgBox "Veuillez sélectionner un poste", vbOKOnly, "ERREUR"
Exit Sub
End If
1
Set plage2 = ws1.Range("A2:A" & L)
(....)
Ensuite
'verification de l'existence de la date
adres_date = ws.Range("A65536").End(xlUp).Address
date_val = ws.Range(adres_date).Value
If date_val = "date" Then
adres_date = ws.Range(adres_date).Offset(1, 0)
ws.Range(adres_date).Value = LaDate
L1 = ws.Range(adres_date).Row
ElseIf date_val = Date Then
L1 = ws.Range(adres_date).Row
ElseIf date_val <> LaDate Then
adres_date = ws.Range(adres_date).Offset(1, 0).Address
ws.Range(adres_date).Value = LaDate
L1 = ws.Range(adres_date).Row
End If
Dans ce dernier test :
Si le contenu de la dernière cellule remplie dans la feuille "totaldujour" est égale à la chaîne "date", tu mets la valeur de la variable LaDate dans la cellule du dessous. mais comme cette variable est vide, c'est considéré comme "0" et on obtient donc la date "1 janvier 1904" (qui est la date "0" par définition)
suite de l'analyse un peu plus tard
à bientôt