Se connecter avec
S'enregistrer | Connectez-vous

Problème avec les dates vba excel

Dernière réponse : dans Programmation

Bonjour le forum.
J'ai fait un userform composé de 3 combobox ou l'utilisateur doit entrer des dates (combobox1="jour", combobox2="mois" et combobox3="année"). Mon problème est de traduire les données saisies par l'utilisateur en date (format JJ/MM/AA), de vérifier si la date saisie existe (ex: problème si la date est le 30/02/81) et si cette date n'est pas encore passée (elle doit etre antérieur à la date d'activation de la macro).
Pourriez-vous m'aider.
Merci.

Autres pages sur : probleme dates vba excel

Lassé par la pub ? Créez un compte

steve-o21 a dit :
Bonjour le forum.
J'ai fait un userform composé de 3 combobox ou l'utilisateur doit entrer des dates (combobox1="jour", combobox2="mois" et combobox3="année"). Mon problème est de traduire les données saisies par l'utilisateur en date (format JJ/MM/AA), de vérifier si la date saisie existe (ex: problème si la date est le 30/02/81) et si cette date n'est pas encore passée (elle doit etre antérieur à la date d'activation de la macro).
Pourriez-vous m'aider.
Merci.


Bonjour
mmmmh... oui en toute logique tu as en fait deux vérifications à faire: une assez classique Est-ce que c'est bien une date (valide en fonction de ton format)
il doit bien avoir une fonction ou une propriété type "IsDate"
La seconde verif est une fonction que tu dois créer et qui compare la date saisie avec la date en cours (DiffDat) en imposant qu'elle soit inférieure ou égale à 0.
J'espère t'avoir compris et aidé
neguib

Bon alors tout d'abord merci pour vos réponses. Alors effectivement je ne connaissais pas le datepicker et c'est super utilie pour ce que je veux faire (merci Kangol). Du coups je n'ai plus de problème sur le format des dates. J'en ai donc fait un. Mais j'ai a nouveau quelques petits problèmes:
=> en fait je voudrais que le calendar1 soit caché jusqu'à ce que l'utilisateur clike sur le TextBox1 (pour entrer la date) et qu'il disparaisse une fois la date choisie (uniquement dans le calendrier et pas manuellement).
=> ensuite, je ne sais pas si celà est possible mais j'aimerais que le calendrier n'affiche que les dates entre le 27/11/04 et la date ou l'utilisateur utilise le programme (date en cours).
Voilà donc ce que j'ai fait pour le moment:
  1. Private Sub Calendar1_Click()
  2. TextBox1.Value = Format(Calendar1.Value, "dd/MM/YY")
  3. End Sub
  4.  
  5. Private Sub TextBox1_Change()
  6. Calendar1.Visible = True
  7. Calendar1.Value = Now() 'sélectionne par défaut la date du jour
  8. End Sub

Merci d'avance.
Lassé par la pub ? Créez un compte