XL 2019 textbox au format heure

Yann71

XLDnaute Occasionnel
Bonjour la com.
J'ai un petit soucis ( pour changer ). J'ai parcouru le forum de long en large mais je n'ai pas trouvé de solution. J'ai une BDD incrémentée avec un USER. Dans une textbox je souhaite rentrer une heure pas besoin que ma textbox sois au format heure, mais juste que cela s'affiche au format heure dans ma BDD.
J'ai bien essayer avec ce code que j'ai ajouter dans un Module mais voila ça bog:

Private Sub UserForm_Initialize()

Userform2.txtHeureMatin.Value = Format(0, "00:00")
End Sub

J'imagine que ce n'est pas des plus compliqué sauf pour moi. Merci d'avance de votre aide.
 

Pièces jointes

  • REPAS-TEST1.xlsm
    179.9 KB · Affichages: 19

jmfmarques

XLDnaute Accro
Bonjour à tous
Ce qui est le plus important est avant tout la conversion nécessaire du contenu de la textbox.
Ce contenu est en effet de type string, qu'il convient de convertir en type adéquat (date) :
toto = cdate(textbox1.value) avant d'en abonder la cellule d'accueil (dont le format doit être celui d'une heure).

PS : il serait par ailleurs sage de vérifier préalablement la validité (par Isdate) de la saisie faite dans la textbox
 

Yann71

XLDnaute Occasionnel
Bonjour à tous
Ce qui est le plus important est avant tout la conversion nécessaire du contenu de la textbox.
Ce contenu est en effet de type string, qu'il convient de convertir en type adéquat (date) :
toto = cdate(textbox1.value) avant d'en abonder la cellule d'accueil (dont le format doit être celui d'une heure).

PS : il serait par ailleurs sage de vérifier préalablement la validité (par Isdate) de la saisie faite dans la textbox
Bonjour jmfmarques, merci pour ton intervention. Je ne comprends pas exactement ce ( Isdate ) dsl mais je ne suis pas un grand professionnelle du VBA mais plutôt un demi-débutant.
 

jmfmarques

XLDnaute Accro
Je ne comprends pas exactement ce ( Isdate ) dsl mais je ne suis pas un grand professionnelle du VBA mais plutôt un demi-débutant.
voilà bien une excellente et supplémentaire raison d'ouvrir ton aide interne VBA à la rubrique IsDate, fonction
Elle y est exposée de manière très claire et assortie d'un exemple non moins clair. ;)
 

Yann71

XLDnaute Occasionnel
J'ai ajouté ce code dans un module:
Private Sub UserForm_Initialize()

Userform2.txtHeureMatin.Value = Format(0, "00:00")
End Sub

Lorsque je saisie dans ma txtbox ex.: 20:20 il me donne une erreur d'exécution' 13 incompatibilité de type.
 

Yann71

XLDnaute Occasionnel
Bien
Force est de constater que tu ignores délibérément ce que je t'ai exposé.
Je vais donc ignorer non moins délibérément la suite de cette discussion. Désolé.
Je n'ai rien ignoré de ta part mais je ne m'y retrouve pas j'ai le droit d'être ignorant ou est-ce interdit de l'être ici n'est-il pas un lieu d'entre aide et de compréhension de l'autre sans pour autant le juger.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Yann71, @jmfmarques, @cp4, le Forum

Pour ta gouverne Yann, dans tous les langages de programmation que je connais, "Date" contient la précision jusqu'au millième de seconde. Pour faire simple, quand les concepteurs précurseurs originaux des bases de l'informatique ont défini DateTimeStamp comme étant la mesure du temps quel qu’il soit, Années, Mois, Jours Dates, Heures, Minutes, Secondes, Millièmes (et plus).... La seule différence selon les systèmes c'est l'année "Zéro" de départ où ils ne sont pas mis d'accord... Mais c'est une autre histoire....

Au moins en sâchant ça tu ne fâcheras pas notre jmfmarques ;)

Bien à toi, à vous
@+Thierry
 
Dernière édition:

jmfmarques

XLDnaute Accro
j'ai le droit d'être ignorant ou est-ce interdit de l'être ici n'est-il pas un lieu d'entre aide et de compréhension de l'autre sans pour autant le juger.
Tu n'as plus le droit d'être ignorant après avoir ouvert ton aide VBA à la rubrique que je t'ai indiquée. Or, tu me parais avoir très franchement évité de le faire !
Excuse-moi, mais tu y aurais lu entre autres ceci :
L'Lien supprimé expression est une valeur de type Lien supprimé contenant une Lien supprimé ou une Lien supprimé qui peut être interprétée comme une date ou une heure.
Je crois vraiment que tu n'es pas venu apprendre à pêcher, mais demander un poisson.
Bonne chance
 

GALOUGALOU

XLDnaute Accro
bonjour yann71 bonjour le fil bonjour le forum
bon, je ne suis pas un grand pro de l'informatique mais je vais essayer d'apporter une aide à yann71
pour faire simple mettre le textbox au format horaire avec ce code
les deux points seront posés automatiquement.

VB:
Private Sub textbox4_Change()

     If TextBox4.TextLength = 2 Or TextBox4.TextLength = 5 Then TextBox4.Text = TextBox4 + ":" 'pour les secondes Or TextBox4.TextLength = 5

End Sub


Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Dim VT As Integer
    TextBox4.MaxLength = 8
    Select Case KeyAscii
        Case 48 To 57
                    
         If Len(Controls("TextBox4" & Tex)) = 0 And Not ChrW(KeyAscii) Like "[0,1,2]" Then KeyAscii = 0: MsgBox "1er chiffre est 0 ou 1 ou 2 " ' 1er chiffre jour
        If Len(Controls("TextBox4" & Tex)) = 3 And Not ChrW(KeyAscii) Like "[0,1,2,3,4,5]" Then KeyAscii = 0: MsgBox "le chiffre  est 0 ou 1 ou 2 ou 3 ou 4 ou 5 "
1        If Len(Controls("TextBox4" & Tex)) = 6 And Not ChrW(KeyAscii) Like "[0,1,2,3,4,5]" Then KeyAscii = 0: MsgBox "le chiffre  est 0 ou 1 ou 2 ou 3 ou 4 ou 5 "  '1er chiffre année
      
                
                  
        Case Else
            KeyAscii = 0
            MsgBox "CARACTERE NON AUTORISE"
    End Select
End Sub



Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox4 <> "" Then
  If Len(Me.TextBox4.Value) < 8 Then
    'TextBox4 = ""
      SendKeys "+{TAB}", False
         TextBox4.SetFocus
    MsgBox "Format horaire erroné, pour rappel hh:mm "

      SendKeys "+{TAB}", True
  End If
End If
End Sub
un classeur ci-joint pour un essai
cordialement
galougalou
 

Pièces jointes

  • format heure jf v3.xlsm
    28.4 KB · Affichages: 12
Dernière édition:

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour à tous

Bon il ne faut pas faire grand chose en fait pour obtenir ceci

Yann.gif


VB:
Private Sub CléCherchée_Click()
'...........
   Me.txtHeureMatin = Format(f.Cells(ligneEnreg, 3), "HH:MM")
   Me.txtHeureGoûter = Format(f.Cells(ligneEnreg, 8), "HH:MM")

'..........

'========================================

Private Sub B_validation_Click()
'..........
   f.Cells(ligneEnreg, 3) = CDate(Me.txtHeureMatin)
   f.Cells(ligneEnreg, 8) = CDate(Me.txtHeureGoûter)

'..........

Bien à vous
@+Thierry
 

Discussions similaires

Réponses
15
Affichages
425
  • Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
284

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG