Comment forcer un format date dans une TextBox

marmotte18

XLDnaute Impliqué
Bonjour,

Je voudrais imposer à TextBox1 le format date qui permet de dépasser les 24 heures pour effectuer des calculs.

J'ai essayé :

Code:
TextBox1 = Format(TextBox1, "[h]:mm")

et cela ne semble pas fonctionner, d'autant que je voudrais récupérer les heures et les minutes de cette TextBox.

Msgbox Hour(TextBox1) me renvoit une incompatibilité de type quand je dépasse les 24 heures

Msgbox Minute(TextBox1) idem

Merci par avance à ceux qui voudraient bien m'aider.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Comment forcer un format date dans une TextBox

bonjour a tous

En supposant que j'aie bien compris (problème de saisie plutot que format a afficher)
 

Pièces jointes

  • marmotte_saisie_h.zip
    10.9 KB · Affichages: 326
  • marmotte_saisie_h.zip
    10.9 KB · Affichages: 325
  • marmotte_saisie_h.zip
    10.9 KB · Affichages: 353

marmotte18

XLDnaute Impliqué
Re : Comment forcer un format date dans une TextBox

Bonjour tout le monde,

Merci pierrejean pour ta proposition mais avec elle, je ne peux pas saisir 135:44 pour 135 heures et 44 minutes.

Je souhaiterais également, sans passer par une feuille Excel, récupérer les heures saisies dans ma TextBox (soit 135) et les minutes saisies dans cette même TextBox (soit 44).

Je suis confronté à la limitation de la fonction "hour" qui ne peut pas dépasser 24.
 

JNP

XLDnaute Barbatruc
Re : Comment forcer un format date dans une TextBox

Bonjour Marmotte18, Piedeplomb33, Pierrejean :),
A défaut de forcer le format date et heure, tu peux passer par du texte.
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim I As Integer
Dim Contenu As String
Contenu = CStr(TextBox1.Value)
For I = 1 To Len(Contenu)
    If Mid(Contenu, I, 1) = ":" Then
        TextBox1.Value = Left(Contenu, (I - 1)) & ":" & Right(Contenu, (Len(Contenu)) - I)
        Exit Sub
    End If
Next I
End Sub
Et pour récupérer tes heures et tes minutes, tu utilises la même boucle pour l'extraction.
Bonne journée :cool:
 

job75

XLDnaute Barbatruc
Re : Comment forcer un format date dans une TextBox

Bonjour à tous,

Si par exemple la cellule A1 est au format [h]mm, la macro suivante (ou une autre) affichera dans la TextBox la valeur affichée dans cette cellule :

Code:
Private Sub UserForm_Initialize()
TextBox1 = Range("A1").[COLOR="Red"]Text[/COLOR]
End Sub

A+
 

pierrejean

XLDnaute Barbatruc
Re : Comment forcer un format date dans une TextBox

Re

Salut Job
Salut JNP

La mise en place automatique des : otée et les heures et minutes specifiées pour usage en Vba
 

Pièces jointes

  • marmotte_saisie_h.zip
    11.6 KB · Affichages: 237
  • marmotte_saisie_h.zip
    11.6 KB · Affichages: 239
  • marmotte_saisie_h.zip
    11.6 KB · Affichages: 255

marmotte18

XLDnaute Impliqué
Re : Comment forcer un format date dans une TextBox

Bonsoir JNP,

Effectivement, il existe des moyens de contournement et ta méthode en est une ce dont je te remercie.

Je trouve seulement étonnant que VBA n'ait pas prévu une fonction de type "hour" qui fonctionnerait au-dessus de 24 heures.

Un autre moyen de contournement est de prendre 2 TextBox au lieu d'une seule :
  • la première pour la saisie des heures (nombre)
  • la deuxième pour la saisie des minutes (nombre)
 

marmotte18

XLDnaute Impliqué
Re : Comment forcer un format date dans une TextBox

Bonsoir Kjin,

Merci pour ta réponse. Tu vois, je cherche seulement à utiliser ma TextBox sans passer par une feuille Excel.

Existe-t-il un moyen pour gérer des heures qui vont au delà de 24 heures dans une TextBox sans passer par des moyens de contournement ?
 

JNP

XLDnaute Barbatruc
Re : Comment forcer un format date dans une TextBox

Bonjour le forum :),
Split, une fonction que je ne connaissais pas et qui m'aurait simplifié la vie une paire de fois... M'enfin, je me la mets de côté, elle me servira certainement ! C'est marrant, j'avais suivi plusieurs fils sur la déconcaténation, et il ne me semble pas qu'elle avait été proposée.
Merci Pierre-Jean, et pour la peine, je t'offre un "Banana Split" virtuel :D.
Très bonne journée à tous :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 911
Membres
103 033
dernier inscrit
thazet