Autres Fonction Date dans TextBox

  • Initiateur de la discussion Initiateur de la discussion Nonomix
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nonomix

XLDnaute Nouveau
Bonjour,

J'ai un tableau réaliser sous Excel 2007 avec un formulaire avec une TextBox que je voudrais au format date.

Actuellement je suis obliger de rentrer au format 01/02/2020 (pour 1 février 2020) mais cela me mets dans la cellule 02/01/2020 (pour 2 janvier 2020) ce qui correspond pas du tout a mon souhait.

J'aimerais qu'on puisse saisir au choix 01/02/2020 ou 01.02.2020 ou 01022020 et que cela me copie dans la cellule final A1 au format jj/mm/aaaa. La cellule A2 comprend la formule =A1 mais doit être au format exclusif mmm-aa (car actuellement cela mets au format identique que A1 malgré la configuration format cellule mmm-aa)

Merci pour votre aide.
 
j'ai repris l'idée de @mapomme avec les 3 textboxs
je remplace tout le code par ceci
c'est assez simple le bouton est disabled si la date n'est pas bonne ou entièrement remplie
et cela meme en revenant dessus
VB:
Option Explicit

Private Sub CommandButton1_Click()
    Range("a1") = Join(Array(TextBox4, TextBox3, TextBox2), "/")
End Sub

Private Sub TextBox2_Change(): verif TextBox2: End Sub
Private Sub TextBox3_Change(): verif TextBox3: End Sub
Private Sub TextBox4_Change(): verif TextBox4: End Sub

Sub verif(txtb)
   Dim x$
   CommandButton1.Enabled = False
    Select Case txtb.Name
    Case "TextBox2": If Val(txtb.Text) > 31 Then txtb.Value = "": Beep
        If Len(txtb.Value) = 2 Then TextBox3.SetFocus
    Case "TextBox3"
        If Val(txtb.Text) > 12 Then txtb.Value = "": Beep
        If Len(txtb.Value) = 2 And Not IsDate(TextBox2.Value & "/" & txtb.Value & "/2000") Then txtb.Value = "": Beep: 'TextBox4.Value = ""
        If Len(txtb.Value) = 2 Then TextBox4.SetFocus
    Case "TextBox4"
        If Len(txtb.Value) = 4 Then
            If Not IsDate(TextBox2.Value & "/" & TextBox3.Value & "/" & txtb.Value) Then txtb.Value = "": Beep 'Else CommandButton1.Enabled = True
        End If
    End Select
x = Join(Array(TextBox4, TextBox3, TextBox2), "/")
If Len(x) = 10 And IsDate(x) Then CommandButton1.Enabled = True
End Sub

Cela viens peut être de moi mais je trouve pas le bon endroit pour l'insérer correctement dans ma bva.
 
re Bonjour jmfmarques
haie haie!!!!!!!!!!!!!!!!!!!!!!
essaie ton truc avec 31/02/2019
a ben mince alors cdate il aime pas
venant de toi je suis étonné 😉
il n'y a qu'une seule fonction qui permette le control de validité de la date sans problème de gestion d'erreur en amont sans Le ("on error resume next")
dois je le dire ?

ou alors oui imbriquer les deux conditions dans un if then if et non un if and
 
Dernière édition:
Ah... Ah ? Ah AH ???
Je te suggère d'être moins "étonné" et de faire les tests tels que définis 🙄
Tu as vu le "à la fois" (que j'ai pourtant mis en gras) ?
En espérant que le développeur avancé que tu es ne s'est pas égaré à mettre ces deux vérifications sur la même ligne, hein ...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 erreur de date
Réponses
2
Affichages
468
Réponses
8
Affichages
405
Réponses
2
Affichages
459
Retour