Imposer un format de réponse à une inputbox conditionnelle
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:
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 !