Bonjour,

Je souhaiterais imposer un format de réponse date type "DD/MM/YY" (ou "DD/MM/YYYY") à une Inputbox qui ne se lance qu'à certaines conditions. Avec mon code actuel, le gestionnaire d'erreur ne se lance que si du texte est rempli mais si l'utilisateur rentre un format DDMMYY sans les "/", une date n'ayant rien à voir est appliquée...

Deuxième point, j'aimerais que l'utilisation du bouton "Annuler" amène l'utilisateur à confirmer son choix de vouloir quitter la macro ou non (actuellement mon code est écrit de telle sorte qu'en appuyant sur "Annuler", la macro boucle sur mon Errorhandler et je suis obligé de forcer la sortie avec CTRL+Pause).

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub dates()
'
' dates Macro
'
Dim i As Long, j As Integer, Message As String, DiffDate As Integer, NouvDate As Date, Defaut As String
 
PremLigne = 6
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
 
On Error GoTo Errorhandler
 
    For i = PremLigne To DernLigne
 
Message = "Donner la " & CStr(Range("E5")) & " de la réservation " & _
            CStr(Cells(i, 2)) & " sous la forme JJ/MM/AA (taper les ' / ')." & _
            vbCrLf & "Pour rappel : la date affichée dans le rapport est " & _
            CStr(Cells(i, 3))
Defaut = Format(Now, "dd/MM/yy")
DiffDate = DateDiff("d", Cells(i, 4), Cells(i, 5))
 
        If DiffDate < 0 Then
            NouvDate = InputBox(Message, "Erreur de date à modifier", Defaut, 1000, 500)
            Cells(i, 5) = NouvDate
        End If
 
    Next i
    Exit Sub
 
Errorhandler:
 
        MsgBox "Vous n'avez pas saisi une date à un format valide" & _
        vbCrLf & "Pour rappel, la forme doit être du type JJ/MM/AA avec les '/'", vbCritical
Resume
 
End Sub
Merci par avance pour votre aide !