Vérification (jj/mm/aaaa) inputbox

Bonjour je souhaiterai que mon inputbox ne réagisse que lorsque la valeur inscrit est une date de type jj/mm/aaaa.

J'ai déjà tout essayé et je suis désespéré ! Je veux juste qu'un opérateur rentre une date et que si elle n'est pas de type jj/mm/aaaa, un message d'erreur s'affiche.

Actuellement mon code est :

If IsDate(Nouvelledate) And Nouvelledate Like "##/##/####" Then

MsgBox "Le calendrier a été mis à jour!"

Sheets("Données").Range("X3").Value = Nouvelledate

Else

MsgBox "le format doit être jj/mm/aaaa!"

End If

Cependant que l'on rentre une date comme je le souhaite ou juste un numéro cela fonctionne ! Si on rentre 5, Excel comprend le 05/01/1900 et m'indique que mon calendrier a bien été mis à jour ! J'en perd mes cheveux ! A l'aide !

Bonjour,

Il faut bien comprendre qu'une date, pour excel, est un nombre (de jours écoulés depuis la référence du 00/01/1900).

JJ/MM/AAAA n'est qu'un format d'affichage. Tu peux par exemple changer le format d'une date vers un format numérique, si la date est valide, elle prendra une valeur du type 43740 (correspond au 02/10/2019).

Pour saisir une date, il vaut mieux demander une saisie texte selon un format particulier, et vérifier ensuite qu'elle est convertible en date ou demander la saisie en 3 temps : jour, mois puis année (voir site de Jacques Boisgontier : http://boisgontierjacques.free.fr/pages_site/FonctionsDates.htm).

Sinon, il existe des outils outils pour sélectionner directement la date dans un calendrier, type : https://www.excel-pratique.com/fr/fonctions-complementaires/date-picker.php

Je vais essayer en format "String" et je donnerai des news ci cela fonctionne ou non.

Merci pour l'idée.

Ok ben merci en deux clics c'était bon !

Dim Nouvelledate As String

Nouvelledate = InputBox("Saisissez la nouvelle date (format jj/mm/aaaa) :", "Replanification", "Inscrire ici la nouvelle date")

If Nouvelledate Like "##/##/####" Then

MsgBox "Le calendrier a été mis à jour!"

Sheets("Données").Range("X3").Value = Nouvelledate

Range("A2").Select

Else

MsgBox "le format doit être jj/mm/aaaa!"

End If

Ce code la fonctionne... J'ai incrémenté une valeur d'entrée en texte "String" puis vérifié qu'elle est du type jj/mm/aaaa. PERFECTION !

Ce code la fonctionne... J'ai incrémenté une valeur d'entrée en texte "String" puis vérifié qu'elle est du type jj/mm/aaaa. PERFECTION !

Attention, le résultat final peut ressembler à une date, c'est pas pour ça que s'en est une pour Excel...

Je pense qu'un CDate() serait le bienvenu, immédiatement après ta saisie.

Sub MaDate()

Dim Nouvelledate As String

Nouvelledate = InputBox("Saisissez la nouvelle date (format jj/mm/aaaa) :", "Replanification", "Inscrire ici la nouvelle date")
If Nouvelledate Like "##/##/####" Then
    MsgBox "Le calendrier a été mis à jour!"
    Sheets("Données").Range("X3") = CDate(Nouvelledate)
    Sheets("Données").Range("X3").NumberFormat = "mm/dd/yyyy"
Else
    MsgBox "le format doit être jj/mm/aaaa!"
End If

End Sub
Rechercher des sujets similaires à "verification aaaa inputbox"