Probleme saisi d'une date dans un useform

Bonjour,

Voici mon souci. Dans un useform , j'ai une case a remplir dans laquelle l'utilisateur doit renseigner une date.

Cette date est vérifiée. Si le champ n'est pas renseigné, un label s'affiche en rouge et n"enregistre rien. Si la date est erronée, un autre label s'affiche en rouge et rien ne s'enregistre. Si la date est bonne alors on enregistre et on ferme le useform.

Sauf que si j'indique par exemple 12/02/2012 pour 12 Février il va m'enregistrer 02/12/2012 pour 2 Décembre

et si j'indique une date complétement débile du style : 02/24/2012 pour le 2eme jour du 24eme mois il va m'indiquer 24 Février eu lieu de m'envoyer le 2eme label

Alors que si j'indique 14/12/2012 , il m'a enregistrer correctement la date du 14 décembre.

En faite, le code intervertie le jour et le mois un peu comme il veut. et c'est la que je coince.

Voici mon code. Si quelqu'un pouvais de donner un petit coup de pouce ça serait cool.

Merci d'avance.

PS : je suis obliger d'indiquer DateE comme As String plutôt que As Date pour éviter une erreur de compatibilité de type lorsque je contrôle si le champ est vide.

Private Sub CommandButton1_Click()
Dim DateE As String
' *******************************************************
'   Récupération des données écrites du masque de saisie
' *******************************************************
'   Date 'enregistrement
    DateE = TextBox8.Value
' **********************************************
'   Contrôle des entrées saisis
' **********************************************
    Label_erreur1.Visible = False 'Label invisible
    Label_erreur2.Visible = False 'Label invisible
    If DateE = "" Then
          Label_erreur2.Visible = True 'Label visible
          Me.Width = 688 'Largeur de l'UserForm
          TextBox8.BackColor = 230
          Else
          If IsDate(DateE) = False Then
                Label_erreur1.Visible = True 'Label visible
                Me.Width = 688 'Largeur de l'UserForm
                TextBox8.BackColor = 230
                Else
      ' **********************************************
      '   Ecriture des données sur l'onglet LD
      ' **********************************************
      '   Date enregistrement
      ActiveSheet.Cells(Ligne, 3).Select
      Selection.Value = Format(DateE, "dd/mm/yyyy")
      ActiveWorkbook.Save
      Unload Me

Bonjour

Pourquoi ne pas utiliser le DTPicker

Moins de risque d'erreur

Merci Banzai64, je ne connaissais pas.

Par contre j'ai une autre question du coup.

Certain des utilisateurs de cette futur macro (qd elle sera terminée) sont sous excel 2007 d'autres en 2003 .

Est ce que DTPicker fonctionnera sur les différentes versions ?

++

Bonjour

Forte chance que cela fonctionne

Mais un utilisateur de 2007 ou + pourra le confirmer ou .....l'infirmer

Ok et encore Merci

++

Saf

Rechercher des sujets similaires à "probleme saisi date useform"