Vérifier une date dans un Textbox

Al capone

XLDnaute Junior
Bonjour à tous,

Petit nouveau dans l'univers VBA :)

J'ai préféré créer un sujet que faire remonter un vieux vieux Topic ou vous parliez déjà de celà.

J'ai crée un formulaire ou à un moment l'utilisatuer doit saisir dans un textbox (txtdar) une date au format jj/mm/aa. Puis j'ai mis un petit contrôle pour s'assurer que la date est cohérente. Le soucis est que si le mois est > 12 il réagit, efface et se repositionne.
Le hic est que si on saisit un jour >31 il ne bronche pas. ... Je me suis dit mettons 32 par exemple derrière au cas ou VBA prend le dernier champs comme les jours. Mais il ne bronche pas et accepte la date.....
Voici mon petit bout de code... qui apparemment fait des caprices :

Code:
Private Sub txtdar_Change()

Dim Valeur As Byte
Dim D As Date
txtdar.MaxLength = 8 'nb caracteres maxi dans textbox
Valeur = Len(txtdar)
If Valeur = 2 Or Valeur = 5 Then txtdar = txtdar & "/"
If Len(txtdar.Text) >= 8 Then
If Not IsDate(Me.txtdar.Value) Then
Me.txtdar.Text = ""
Me.txtdar.SetFocus
Exit Sub
End If
txthar.SetFocus
End If
End Sub

Merci pour votre aide
 

Bebere

XLDnaute Barbatruc
Re : Vérifier une date dans un Textbox

bonjour Al capone
avec ce code c'est suffisant

Private Sub TextBox7_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0: Exit Sub
End Sub

Private Sub TextBox7_Change()
Select Case Len(TextBox7.Text)
Case 2, 5
TextBox7.Text = TextBox7.Text & "/"
Case 10
If Not (IsDate(TextBox7.Value)) Then
MsgBox "Entrée la date sous la forme jj/mm/aaaa": TextBox7.Value = ""
Else
SendKeys "{TAB}"
End If
End Select

End Sub

à bientôt
 

Al capone

XLDnaute Junior
Re : Vérifier une date dans un Textbox

Hello,

@Modeste : Tiens je l'avais zappé ce Topic. Merci

@Bebere : Parfait celà fonctionne nickel. Merci :)

Sinon à part celà j'ai un petit bug sur un optionbutton... Par défaut la Value = False
Je fais une condition et si la condition est remplie, je veux que soit coché ce optionbutton.
Le truc que je n'arrive pas à comprendre est que lorsque la condition est remplie il me remplit les champs de mon userform mais ne me coche pas le bouton alors que j'ai mis comme ligne :
Code:
Me.ouiate.Value = True
Pour l'histoire j'ai mis deux optionbuttons : un pour non et un pour oui. Par défaut la valeur du bouton non est sur True

Merci encore

Edit : En fait je viens de me rendre compte que les optionbuttons sont intéractifs et comme j'en ai 4 en tout, le fait de cliquer sur un autre bouton que les choix oui et non, celà me décoche le non ou le oui.... Peut-on rendre indépendants deux boutons dans un même userform ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 082
Membres
103 458
dernier inscrit
Vulgaris workshop