Useform mise en forme date et Heure

Antho35

XLDnaute Occasionnel
Bonjour,

J'ai créer un formulaire dans un Userform qui renvoi une fois valider des données dans un tableaux. Cependant, on peux imaginer que les utlisateur des formulaires ne resecterons pas le format de date attendu c'est à dire jj/mm/aaaa. Idem pour l'heure, je y mettre un code qui retranscrive directment dans le formulaire le format voulu.

Code:
Private Sub CheckBox1_Click()
Range("O2").Value = IIf(CheckBox1, "X", "")
End Sub
Code:
Private Sub CommandButton1_Click()
Dim ligne As Integer
ligne = ActiveCell.Row
Range("B2").Select
'If Len(Sheets("SYNTHESE_AUTRES").Cells(ligne, 2))= Then
If Range("B2").Value = "" Then
ligne = Range("SYNTHESE_AUTRES!B65500").End(xlUp).Row + 1
Else
ligne = Range("SYNTHESE_AUTRES!B65500").End(xlUp).Row + 1
End If
Sheets("SYNTHESE_AUTRES").Cells(ligne, 1) = ligne
'End If
Sheets("SYNTHESE_AUTRES").Cells(ligne, 2) = Format(TextBox1, "2_2010_0000")
Sheets("SYNTHESE_AUTRES").Cells(ligne, 3) = Format(TextBox2, "mm/dd/yyyy")
Sheets("SYNTHESE_AUTRES").Cells(ligne, 4) = ComboBox1.Value
Sheets("SYNTHESE_AUTRES").Cells(ligne, 5) = ComboBox2.Value
Sheets("SYNTHESE_AUTRES").Cells(ligne, 12) = Format(TextBox4, "dd/mm/yyyy")
Sheets("SYNTHESE_AUTRES").Cells(ligne, 13) = Format(TextBox5, "hh:mm")
Sheets("SYNTHESE_AUTRES").Cells(ligne, 11) = ComboBox3.Value
Sheets("SYNTHESE_AUTRES").Cells(ligne, 10) = ComboBox4.Value
Sheets("SYNTHESE_AUTRES").Cells(ligne, 14) = TextBox6.Value
ComboBox1 = "Sélectionnez votre service"
ComboBox2 = "Sélectionnez le type de transport"
ComboBox3 = "Sélectionnez le lieu de RDV"
ComboBox4 = "Sélectionnez le motif"
TextBox1 = Format(TextBox1, "2_2010_0000")
TextBox2 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
confirmation2.Show
End Sub
Private Sub UserForm_Initialize()
Code:
Dim Dline As Integer
Dline = Range("SYNTHESE_AUTRES!B20000").End(xlUp).Row
TextBox1.Value = Dline
TextBox2.Value = Date
ComboBox1.ColumnCount = 1
ComboBox2.ColumnCount = 1
ComboBox3.ColumnCount = 1
ComboBox4.ColumnCount = 1
With ThisWorkbook.Worksheets("UF (2)")
For I = 4 To .Range("D65536").End(xlUp).Row
autresdemandes.ComboBox1.AddItem .Range("D" & I).Value
Next I
End With
With ThisWorkbook.Worksheets("TYPE DU TRANSPORTS")
For I = 3 To .Range("C65536").End(xlUp).Row
autresdemandes.ComboBox2.AddItem .Range("C" & I).Value
Next I
End With
With ThisWorkbook.Worksheets("MOTIF")
For I = 3 To .Range("C65536").End(xlUp).Row
autresdemandes.ComboBox4.AddItem .Range("C" & I).Value
Next I
End With
With ThisWorkbook.Worksheets("LIEUX DE RDV")
For I = 3 To .Range("C65536").End(xlUp).Row
autresdemandes.ComboBox3.AddItem .Range("C" & I).Value
Next I
End With
End Sub
Code:
Private Sub CommandButton2_Click()
anuleoperation2.Show
End Sub

Merci
 

youky(BJ)

XLDnaute Barbatruc
Re : Useform mise en forme date et Heure

Salut,
Rajoute tout ce code à la suite du code de l'userform.
Regarde bien le textbox en rentrant les dates!
Bruno

Code:
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 Select Case KeyAscii
    Case 44, 47 To 57      'Autorise les touches 0 à 9 et /
    Case Else
        KeyAscii = 0
    End Select
    If Len(TextBox2) = 10 Then KeyAscii = 0
End Sub

Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 Then Exit Sub
tx = TextBox2.Text
If Len(tx) = 2 Then
If KeyCode = 111 Then TextBox2 = "0" & Left(tx, 1) & "/": Exit Sub
If tx > 0 And tx < 32 Then
tx = tx & "/"
TextBox2 = tx
Else
TextBox2 = ""
End If
End If
If Len(tx) = 5 Then
If KeyCode = 111 Then TextBox2 = Left(tx, 3) & "0" & Mid(tx, 4, 1) & "/20": Exit Sub

If Right(tx, 2) < 13 And Right(tx, 2) > 0 Then
If Not IsDate(tx & "/2000") Then TextBox2 = "": Exit Sub
tx = tx & "/20"
TextBox2 = tx
Else
TextBox2 = Left(TextBox2, 3)
End If
End If

If Len(TextBox2) = 10 Then
If IsDate(tx) Then Exit Sub
MsgBox "Non Bisextile": TextBox2 = ""
End If
End Sub
 

Antho35

XLDnaute Occasionnel
Re : Useform mise en forme date et Heure

Bonjour,

Cela ne fonctionne pas, il doit y avoir un petit probléme. quand je rentre le celui ci devient aprés 09. et on ne peux pas mettre ni le mois, ni l'année.

Et pour l'heure qui aurait une solution ?
 

youky(BJ)

XLDnaute Barbatruc
Re : Useform mise en forme date et Heure

Bonjour Antho35,
Le mieux est d'utiliser un controle DTPicker , il est capable de gérer les dates comme les heures.
Petit hic il est pas toujours installé sur la machine, si tu as Access en principe il y est.
Sinon parfois il faut installer ce controle.
Je viens de faire un fichier essaiDTP pour toi, si tu as des messages à l'ouverture c'est que ce controle est manquant.
Si tu souhaite l'installer fait une recherche sur le forum "DTPicker"
Pour insérer ce controle dans l'userform fait 1 click droit sur la boite à outils controle et coche "Microsoft Date and Time Picker 6.0"
Bruno
 

Pièces jointes

  • essai_DTPicker.xls
    34.5 KB · Affichages: 50

Antho35

XLDnaute Occasionnel
Re : Useform mise en forme date et Heure

Merci pour cette aide trés précieuse.

Je suis en réseau, et en tant qu'utilsiateur, il nous est impossible de modfier ce genre de paraméter, et puis mon fichier que je créer actuellement va étre mis en partage. il faut donc que tout le monde puisque s'en servir.
 

youky(BJ)

XLDnaute Barbatruc
Re : Useform mise en forme date et Heure

Voici un fichier avec la macro que je t'ai envoyée,essaie le . . .
Dans le textbox tu ne peux mettre que des chiffres, pour rentrer le 2/8/2010
il faut mettre les zero sinon impossible exemple 02/08/2010
Bon le début de l'année se mets en automatique si tu veux pas je peux l'enlever.
Pour les heures je n'ai rien à dispo, à savoir qu'il est bien plus aisé de parler en centieme d'heure (1:30)=1.5

Bruno
 

Pièces jointes

  • txdate.xls
    42 KB · Affichages: 54
  • txdate.xls
    42 KB · Affichages: 56
  • txdate.xls
    42 KB · Affichages: 56

Antho35

XLDnaute Occasionnel
Re : Useform mise en forme date et Heure

Merci pour cette aide.

Qui aurai une solution pour les z&ro, c'est à dire que si l'ultisateur met 8, que vba, le met automatiquement au format 08, idem pour moi.

Le début d'année n'est pas un probléme dans l'imédiat.
 

youky(BJ)

XLDnaute Barbatruc
Re : Useform mise en forme date et Heure

Voici un nouveau fichier,
Tu peux rentrer un chiffre >1 sans le 0 (le 1 peut être 01 ou 10)
Aussi un autre textbox pour les heures (à rentrer sans les ":")
exemple 445 renvoie 04:45

Bruno
 

Pièces jointes

  • txdatetime.xls
    47 KB · Affichages: 46