Autres Fonction Date dans TextBox

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.
 

Nonomix

XLDnaute Nouveau
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.
 

patricktoulon

XLDnaute Barbatruc
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:

jmfmarques

XLDnaute Accro
Ah... Ah ? Ah AH ???
Je te suggère d'être moins "étonné" et de faire les tests tels que définis :rolleyes:
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 ...
 

Discussions similaires

Réponses
2
Affichages
243
Réponses
2
Affichages
303

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth