hh:mm sans les : dans textbox

grillons

XLDnaute Nouveau
Bonjour tout le monde.

Sous Excel 2007 et 2010, j'ai un userform qui contient un textbox et un bouton "saisie" qui permet d'écrire la valeur du textbox sur la feuille Excel. Ce textbox ainsi que la cellule de la feuille sont au format horaire (hh:mm). Ce textbox sert aussi en retour à lire la valeur de la cellule de la feuille.

Je voudrai savoir s'il est possible de taper l'heure dans les textbox sans les ":" et que le bouton "saisie" écrive bien la valeur en hh:mm dans la cellule de la feuille excel ? Et qu'en retour d'info, je puisse lire dans le textbox la valeur de la cellule en format hh:mm.

Exemple : pour 05:00, taper 0500 ou 500 et écrire 05:00 dans la feuille, pour 10:05, taper 1005 et écrire 10:05 dans la feuille.

Merci d'avance de vos réponses.
 

JNP

XLDnaute Barbatruc
Re : hh:mm sans les : dans textbox

Bonjour Grillons et bienvenue :),
Comme précisé dans la charte et à l'ouverture d'une discussion, un fichier exemple est la meilleur solution pour comprendre ton problème :mad:...
Le plus simple me paraîtrait de faire le contraire
Code:
Private Sub UserForm_Initialize()
TextBox1.MaxLength = 5
End Sub
et
Code:
Private Sub TextBox1_Change()
If Len(TextBox1) = 2 Then TextBox1 = TextBox1 & ":"
End Sub
Bon dimanche :cool:
 

klin89

XLDnaute Accro

grillons

XLDnaute Nouveau
Re : hh:mm sans les : dans textbox

Bonjour Grillons et bienvenue :),
Comme précisé dans la charte et à l'ouverture d'une discussion, un fichier exemple est la meilleur solution pour comprendre ton problème :mad:...

Voici une extrait de la macro du bouton "saisie" :
Code:
Private Sub CommandButton3_Click()
[COLOR="SeaGreen"]'
'
'
'
' Saisi les données du textbox dans la feuille
'[/COLOR]
Dim cde As Date
If TextBox2 = "" Then [COLOR="SeaGreen"]'saisi "00:00:00" afin que retour_info() rende le textbox vierge[/COLOR]
cde = "00:00:00"
Else
cde = TextBox2 [COLOR="SeaGreen"]'saisi le textbox dans la feuille[/COLOR]
End Sub

Et maintenant un extrait de la macro qui me renvoie les infos de la feuille de calcul :
Code:
Sub retour_info()
[COLOR="SeaGreen"]'
'
'
'
' Met à jour le textbox
'[/COLOR]
Dim cde As Date
cde = Range("cde")
If Range("cde") = "" Then [COLOR="SeaGreen"]'rend le textbox vierge en effaçant les "00:00:00"[/COLOR]
TextBox2.Value = ""
Else
TextBox2.Value = cde [COLOR="SeaGreen"]'affiche la valeur de la cellule dans le textbox[/COLOR]
End If
End Sub
 

grillons

XLDnaute Nouveau
Re : hh:mm sans les : dans textbox

Bonjour Grillons et bienvenue :),
Comme précisé dans la charte et à l'ouverture d'une discussion, un fichier exemple est la meilleur solution pour comprendre ton problème :mad:...
Le plus simple me paraîtrait de faire le contraire
Code:
Private Sub UserForm_Initialize()
TextBox1.MaxLength = 5
End Sub
et
Code:
Private Sub TextBox1_Change()
If Len(TextBox1) = 2 Then TextBox1 = TextBox1 & ":"
End Sub
Bon dimanche :cool:

JNP, tes codes ont marché. Toutefois il m'a fallu mettre le 1er en 1ère ligne du 2ème afin qu'il fonctionne.

J'ai même utilisé ces codes pour un textbox au format date ainsi il suffit de taper jjmmaa pour avoir jj/mm/aaaa.
Voici mon code :
Code:
Private Sub TextBox1_Change()
[COLOR="SeaGreen"]'
'
' Macro réalisée le 15-11-2010
'
'
' Rajoute les "/" à la date
'[/COLOR]
TextBox1.MaxLength = 10
If Len(TextBox1) = 2 Then TextBox1 = TextBox1 & "/"
If Len(TextBox1) = 5 Then TextBox1 = TextBox1 & "/"
End Sub


Merci beaucoup à tous pour vos réponses.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 613
Messages
2 090 236
Membres
104 463
dernier inscrit
lbo