Vérifier si la date est correct
Bonjour à tous,
dans le fichier en pj, j'ai mis des conditions pour voir si la date est inclut entre le mois de janvier et décembre donc 1 à 12 mais je n'arrive pas à afficher la box au cas où la date n'est pas au format jours-mois. Savez-vous comment faire?
merci pa
r avance
MonthNum = Month(.Range("F" & i))
If MonthNum = 1 Then
janv = .Range("D" & i) + janv
ElseIf MonthNum = 2 Then
fev = .Range("D" & i) + fev
ElseIf MonthNum = 3 Then
mars = .Range("D" & i) + mars
ElseIf MonthNum = 4 Then
avr = .Range("D" & i) + avr
ElseIf MonthNum = 5 Then
mai = .Range("D" & i) + mai
ElseIf MonthNum = 6 Then
juin = .Range("D" & i) + juin
ElseIf MonthNum = 7 Then
juil = .Range("D" & i) + juil
ElseIf MonthNum = 8 Then
aout = .Range("D" & i) + aout
ElseIf MonthNum = 9 Then
sept = .Range("D" & i) + sept
ElseIf MonthNum = 10 Then
oct = .Range("D" & i) + oct
ElseIf MonthNum = 11 Then
nov = .Range("D" & i) + nov
ElseIf MonthNum = 12 Then
dec = .Range("D" & i) + dec
Else
MsgBox "Il y a une erreur dans le format des dates de l'onglet Frais KM - Tableau"
End If
Bonsoir,
je vous propose une solution ainsi que la raison du non fonctionnement du votre :
Il y a la ligne de code : On Error Resume Next
elle permet de dire à "VBA" que s'il rencontre une erreur lors du déroulé du code et bien il continue le déroulé.
En arrivant sur la date en erreur, VBA fait ce que l'on lui a dit, il continue et le MsgBox ne s'affiche pas.
Dans le code proposé, je fais un test sur la variable système Err qui contient le code l'erreur si il y en a une, il suffit de tester si elle est supérieur à 0, si c'est le cas c'est qu'une erreur s'est produite, dans notre cas elle est probablement du à une erreur de date car je teste juste après "l'égalité" de la date :
MonthNum = Month(.Range("F" & i))
If Err > 0 Then
MsgBox "Il y a une erreur dans le format des dates de l'onglet Frais KM - Tableau, ligne " & i
On Error GoTo 0
Exit sub
End If
If MonthNum = 1 Then
janv = .Range("D" & i) + janv
ElseIf MonthNum = 2 Then
fev = .Range("D" & i) + fev
ElseIf MonthNum = 3 Then
mars = .Range("D" & i) + mars
ElseIf MonthNum = 4 Then
avr = .Range("D" & i) + avr
ElseIf MonthNum = 5 Then
mai = .Range("D" & i) + mai
ElseIf MonthNum = 6 Then
juin = .Range("D" & i) + juin
ElseIf MonthNum = 7 Then
juil = .Range("D" & i) + juil
ElseIf MonthNum = 8 Then
aout = .Range("D" & i) + aout
ElseIf MonthNum = 9 Then
sept = .Range("D" & i) + sept
ElseIf MonthNum = 10 Then
oct = .Range("D" & i) + oct
ElseIf MonthNum = 11 Then
nov = .Range("D" & i) + nov
ElseIf MonthNum = 12 Then
dec = .Range("D" & i) + dec
End If
Après la "gestion de l'erreur" on repasse la gestion sur marche et on quitte la sub.
@ bientôt
LouReeD
merci!!!!! C'est super!!
Bonne journée
Bonjour,
Merci pour votre retour et vos remerciements !
@ bientôt
LouReeD