OVH Cloud OVH Cloud

Re: Date dans TextBox

16 réponses
Avatar
David
Et une autre erreur repérée

Quand on tape 1213 par exemple

6 réponses

1 2
Avatar
David
Re

Désolé Ilan

1°si l'on supprime le jour erreur içi
jour = CInt(Left(DateEntree, SepPos - 1)): DateEntree = Right(DateEntree,
Len(DateEntree) - SepPos)

2°si l'on supprime le mois erreur içi
mois = CInt(Left(DateEntree, SepPos - 1)): DateEntree = Right(DateEntree,
Len(DateEntree) - SepPos)

3°si l'on supprime l'année erreur içi
annee = CInt(DateEntree)

4°et impossible de tout supprimer
Avatar
Ilan
Bonsoir,

M'ouais, il faisait quoi au fait ton code au depart ?!

tiens test celui-ci

Sub TextBox5_AfterUpdate()
Dim jour As Integer, mois As Integer, annee As Integer
Dim JourMax As Integer
jour = Day(Date)
mois = Month(Date)
annee = Year(Date)
JourMax = 31
Select Case Len(DateEntree)
Case Is = 1, Is = 2
jour = DateEntree
Case Is = 3, Is = 4
jour = Left(DateEntree, 2)
mois = Right(DateEntree, Len(DateEntree) - 2)
Case Is > 4
jour = Left(DateEntree, 2)
mois = Mid(DateEntree, 3, 2)
annee = Right(DateEntree, Len(DateEntree) - 4)
End Select
If mois = 0 Then mois = 1
If mois > 12 Then mois = 12
If mois <> 12 Then JourMax = Day(DateAdd("d", -1, "01/" & mois + 1 & "/" &
annee))
If jour <= 0 Then jour = 1
If jour > JourMax Then jour = JourMax
TextBox5.Value = Format(jour & "/" & mois & "/" & annee, "dd/mm/yyyy")
End Sub

Private Sub TextBox5_Change()
Dim i As Byte, car As String
DateEntree = ""
For i = 1 To Len(TextBox5.Value)
If Mid(TextBox5.Value, i, 1) <> "/" Then DateEntree = DateEntree &
Mid(TextBox5.Value, i, 1)
Next i
End Sub




Re

Désolé Ilan

1°si l'on supprime le jour erreur içi
jour = CInt(Left(DateEntree, SepPos - 1)): DateEntree = Right(DateEntree,
Len(DateEntree) - SepPos)

2°si l'on supprime le mois erreur içi
mois = CInt(Left(DateEntree, SepPos - 1)): DateEntree = Right(DateEntree,
Len(DateEntree) - SepPos)

3°si l'on supprime l'année erreur içi
annee = CInt(DateEntree)

4°et impossible de tout supprimer







Avatar
David
Re.....Ilan

M'ouais, il faisait quoi au fait ton code au depart ?!
Une erreur comme maintenant !!!!





ici

Variable "DateEntree" non défini dans Sub TextBox5_AfterUpdate() et Private
Sub TextBox5_Change()

mille merci

David




Avatar
Ilan
Bonjour David,declare cette variable dans l'entete du code
Dim DateEntree as string


Re.....Ilan

M'ouais, il faisait quoi au fait ton code au depart ?!
Une erreur comme maintenant !!!!





ici

Variable "DateEntree" non défini dans Sub TextBox5_AfterUpdate() et Private
Sub TextBox5_Change()

mille merci

David









Avatar
David
Re bonjour Ilan

Désolé mais pas encore bon !!!

1° Quoi que l'on saisie, c'est la date du jour qui s'affiche

2° Impossible de supprimer la date

Merci de ta patiente

David
Avatar
Ilan
Bonsoir, David

Voila le code complet que j'utilise et qui ne me pose pas de probleme.

Dim DateEntree As String

Sub TextBox5_AfterUpdate()
Dim jour As Integer, mois As Integer, annee As Integer
Dim JourMax As Integer
jour = Day(Date)
mois = Month(Date)
annee = Year(Date)
JourMax = 31
Select Case Len(DateEntree)
Case Is = 1, Is = 2
jour = DateEntree
Case Is = 3, Is = 4
jour = Left(DateEntree, 2)
mois = Right(DateEntree, Len(DateEntree) - 2)
Case Is > 4
jour = Left(DateEntree, 2)
mois = Mid(DateEntree, 3, 2)
annee = Right(DateEntree, Len(DateEntree) - 4)
End Select
If mois = 0 Then mois = 1
If mois > 12 Then mois = 12
If mois <> 12 Then JourMax = Day(DateAdd("d", -1, "01/" & mois + 1 & "/" &
annee))
If jour <= 0 Then jour = 1
If jour > JourMax Then jour = JourMax
TextBox5.Value = Format(jour & "/" & mois & "/" & annee, "dd/mm/yyyy")
End Sub

Private Sub TextBox5_Change()
Dim i As Byte, car As String
DateEntree = ""
For i = 1 To Len(TextBox5.Value)
If Mid(TextBox5.Value, i, 1) <> "/" Then DateEntree = DateEntree &
Mid(TextBox5.Value, i, 1)
Next i
End Sub

Private Sub TextBox5_Enter()
TextBox5.MaxLength = 10
End Sub

Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii <> 8 And KeyAscii <> 10 And KeyAscii <> 13 And (KeyAscii < 48 Or
KeyAscii > 57) Then
KeyAscii = 0
Exit Sub
Else
If Len(TextBox5.Text) = 2 Or Len(TextBox5.Text) = 5 Then TextBox5.Text
= TextBox5.Text + "/"
End If
End Sub

Private Sub UserForm_Activate()
TextBox5.Value = Format(Date, "dd/mm/yyyy")
End Sub



Re bonjour Ilan

Désolé mais pas encore bon !!!

1° Quoi que l'on saisie, c'est la date du jour qui s'affiche

2° Impossible de supprimer la date

Merci de ta patiente

David





1 2