OVH Cloud OVH Cloud

re textbox

11 réponses
Avatar
fredbzr
Bonsoir
j'ai effectué une modification sur le code de JB (merci pour son aide
précieuse) à la 3ème ligne car j'avais une erreur.
Je souhaiterais forcer la textbox à afficher le nombre que j'inscris en
"heure : minute"

Private Sub CommandButton1_Click()
If IsNumeric(Me.TextBox1.Value) Then
ActiveCell.Value = ([BE1] - Me.TextBox1.Value) / 24
TextBox1.Value = Format(Me.TextBox1.Value, "h:mm") 'Voilà ce
que j'ai fait sans résultat
End If
Unload Me
End Sub

merci de votre aide
Fred

1 réponse

1 2
Avatar
fredbzr
Bonjour JB
je viens de voir votre solution à mon problème, elle est très intéressante,
je vais la mettre de côté et la décortiquer pour continuer à apprendre.
J'ai résolu mon problème en inscrivant la valeur du textbox en BF1 (pour
mon cas)
puis lorsque je valide, la formule BE1 - BF1 s'applique dans ma cellule
active (BE1 = 0:00), ce qui me donne une heure négative
merci encore de votre disponibilité et de tous les codes que vous m'avez
fait, je les ai gardé, pour l'instant je ne comprends pas tout mais j'y
travaille

Private Sub CommandButton1_Click()
[BF1] = UserForm1.TextBox1
ActiveCell.FormulaR1C1 = [BE1 - BF1]
Unload Me
End Sub

bonne soirée
"JB" a écrit dans le message de news:

Bonjour,

http://cjoint.com/?czrpJ716TJ

JB


On 24 fév, 23:00, "fredbzr" wrote:
BonsoirJB
je rentre juste du boulot
en effet et c'est bien là mon problème
j'ai besoin de rentrer manuellement des heures négatives dans un tableau
pour effectuer le suivit de compteurs horaires.J'avais pensé passer par le
textbox en effectuant une opération (soustraction par rapport à 0 ici ma
cellule BE1) pour pouvoir saisir mon heure négative.
c'est le même problème que j'ai rencontré avec ="-1:00" qui devient du
texte
et plus un nombre
Est-ce que vous auriez une autre solution que mes connaissances limitées
ne
me permettent pas d'envisager?

déjà merci pour tout ce que vous avez fait

"JB" a écrit dans le message de news:

Pour gérer les heures négatives, il faut soit utiliser le calendrier
1904(Outils/Options)

ou

Private Sub CommandButton1_Click()
If IsDate(Me.TextBox1.Value) Then
d = [B12] - CDate(Me.TextBox1.Value)
If d >= 0 Then
ActiveCell.Value = [B12] - CDate(Me.TextBox1.Value)
ActiveCell.NumberFormat = "h:mm"
Else
ActiveCell = Format([B12] - CDate(Me.TextBox1.Value), "-hh:mm")
End If
End If
Unload Me
End Sub

Attention!, le résultat affiché dans la cellule active est une chaine
de carcatères et pas un nombre.

http://boisgontierj.free.fr/pages_site/FonctinsHeure.htm

JB

On 24 fév, 13:19, "fredbzr" wrote:



celà marche bien tant que mes heures sont positives
dès que le résultat de la soustraction est négatif alors le -1:00
s'inscrit -1:00:00 AM

"JB" a écrit dans le message de news:


Private Sub CommandButton1_Click()
If IsDate(Me.TextBox1.Value) Then
ActiveCell.Value = [B12] - CDate(Me.TextBox1.Value)
ActiveCell.NumberFormat = "h:mm"
End If
'Unload Me
End Sub

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Not EstTemps(Me.TextBox1) Then
MsgBox "Erreur saisie!"
Cancel = True
Else
Me.TextBox1 = Format(Me.TextBox1, "hh:mm")
End If
End Sub

JB

On 24 fév, 09:04, "fredbzr" wrote:

BonjourJB
je viens de tester votre code qui fonctionne à merveille
lorsque je mets 1:00 dans le texbox j'ai 1:00:00 AM,
comment ne garder que 1:00 (cellule au format:[h]:mm)
merci
"JB" a écrit dans le message de news:

Bonjour,

Private Sub CommandButton1_Click()
If IsDate(Me.TextBox1.Value) Then
ActiveCell.Value = ([BE1] - CDate(Me.TextBox1.Value))
End If
Unload Me
End Sub

Pour vérifier que l'opérateur a bien saisi un temps sous la forme
hh:mm:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Not EstTemps(Me.TextBox1) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub

Function EstTemps(t)
p = InStr(t, ":")
m = Mid(t, p + 1)
If p > 0 And Len(m) > 0 Then EstTemps = True Else EstTemps = False
End Function

JB

On 23 fév, 23:47, "fredbzr" wrote:

Bonsoir
j'ai effectué une modification sur le code deJB(merci pour son aide
précieuse) à la 3ème ligne car j'avais une erreur.
Je souhaiterais forcer la textbox à afficher le nombre que j'inscris
en
"heure : minute"

Private Sub CommandButton1_Click()
If IsNumeric(Me.TextBox1.Value) Then
ActiveCell.Value = ([BE1] - Me.TextBox1.Value) / 24
TextBox1.Value = Format(Me.TextBox1.Value, "h:mm")
'Voilà
ce
que j'ai fait sans résultat
End If
Unload Me
End Sub

merci de votre aide
Fred- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte des
messages précédents -


- Afficher le texte des messages précédents -





1 2