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

10frais-km.xlsm (36.58 Ko)

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

Rechercher des sujets similaires à "verifier date correct"