Heure dans une textbox
Résolu
mister-t
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Me revoila avec un nouveau probleme que je n'arrive pas a resoudre:
je fais un calcul de somme d'heures dans une cellue. Pour m'afficher correctement la somme totale des heures je fais un format de cellule de type personnalisé et [H]:mm:ss. Jusque la aucun souci mais lorsque je veux faire afficher cette heure dans une textbox, le format est respecté mais au lieu de m'afficher la somme totale qui est de 28:34:08 il m'affiche 04:34:08.
voici le prog:
Sub statmensuelle()
Dim wbk1 As Workbook
Dim mois, annee As String
Set wbk1 = ThisWorkbook
mois = UserForm2.ComboBox1.Value
annee = UserForm2.ComboBox2.Value
Sheets(annee).Activate
If mois = "01" Then
UserForm2.TextBox3.Value = Sheets(annee).Range("FT24").Value
UserForm2.TextBox3.Value = Format(Sheets(annee).Range("FT24"), "HH:mm:ss")
end if
end sub
merci d'avance pour les reponses qui vont venir
Me revoila avec un nouveau probleme que je n'arrive pas a resoudre:
je fais un calcul de somme d'heures dans une cellue. Pour m'afficher correctement la somme totale des heures je fais un format de cellule de type personnalisé et [H]:mm:ss. Jusque la aucun souci mais lorsque je veux faire afficher cette heure dans une textbox, le format est respecté mais au lieu de m'afficher la somme totale qui est de 28:34:08 il m'affiche 04:34:08.
voici le prog:
Sub statmensuelle()
Dim wbk1 As Workbook
Dim mois, annee As String
Set wbk1 = ThisWorkbook
mois = UserForm2.ComboBox1.Value
annee = UserForm2.ComboBox2.Value
Sheets(annee).Activate
If mois = "01" Then
UserForm2.TextBox3.Value = Sheets(annee).Range("FT24").Value
UserForm2.TextBox3.Value = Format(Sheets(annee).Range("FT24"), "HH:mm:ss")
end if
end sub
merci d'avance pour les reponses qui vont venir
A voir également:
- Heure dans une textbox
- Changement d'heure - Guide
- Heure de connexion whatsapp qui ne changé pas - Accueil - WhatsApp
- Cdg heure d'arrivée a destination shein - Forum Consommation & Internet
- 2go internet = combien d'heure ✓ - Forum Mobile
- Heure aesthetic - Télécharger - Thèmes & Fonds d'écran
8 réponses
Bonjour,
il faut mettre le format que tu désires :
UserForm2.TextBox3.Value = Format(Sheets(annee).Range("FT24"), "[H]:mm:ss")
eric
il faut mettre le format que tu désires :
UserForm2.TextBox3.Value = Format(Sheets(annee).Range("FT24"), "[H]:mm:ss")
eric
déjà essaie de mettre un .value et où se trouve ton addition de date ?
[code]
If mois = "01" Then
UserForm2.TextBox3.Value = Sheets(annee).Range("FT24").Value
UserForm2.TextBox3.Value = Format(Sheets(annee).Range("FT24").value, "HH:mm:ss")
end if
[_code]
A plus
[code]
If mois = "01" Then
UserForm2.TextBox3.Value = Sheets(annee).Range("FT24").Value
UserForm2.TextBox3.Value = Format(Sheets(annee).Range("FT24").value, "HH:mm:ss")
end if
[_code]
A plus
C'est vraiment hallucinant cette histoire, j'ai essayé pas mal de truc sans résultat ????
Alors je suis reparti sur les bases, après tout, on n'a qu'à faire l'addition nous mêmes et en plus ça fonctionne !
Voici un petit code, j'ai mis les deux dates dans les cellules A1 & A2 et créer une fonction d'addition qui retourne une chaine de caractère pour la textbox.
[code]
Private Function addheures(t1 As Date, t2 As Date) As String
Dim h, m, s As Integer 'heures, minutes, secondes
Dim supm, suph As Integer 'suppléments minutes & heures
supm = 0
suph = 0
s = Second(t1) + Second(t2)
If s >= 60 Then
supm = Int(s / 60)
s = s - 60 * supm
End If
m = Minute(t1) + Minute(t2) + supm
If m >= 60 Then
suph = Int(m / 60)
m = m - 60 * suph
End If
h = Hour(t1) + Hour(t2) + suph
addheures = h & ":" & m & ":" & s
End Function
Private Sub Boutonadd_Click()
TextBox1.Text = addheures(Range("A1").Value, Range("A2").Value)
End Sub
[\code]
le boutonadd est un bouton que j'ai créé juste pour l'appli après la fonction peut servir n'importe où ?
A plus, mais c'est quand même délirant de ne pas pouvoir copier ce fichu résultat, si quelqu'un à l'info ça m'intéresse.
Alors je suis reparti sur les bases, après tout, on n'a qu'à faire l'addition nous mêmes et en plus ça fonctionne !
Voici un petit code, j'ai mis les deux dates dans les cellules A1 & A2 et créer une fonction d'addition qui retourne une chaine de caractère pour la textbox.
[code]
Private Function addheures(t1 As Date, t2 As Date) As String
Dim h, m, s As Integer 'heures, minutes, secondes
Dim supm, suph As Integer 'suppléments minutes & heures
supm = 0
suph = 0
s = Second(t1) + Second(t2)
If s >= 60 Then
supm = Int(s / 60)
s = s - 60 * supm
End If
m = Minute(t1) + Minute(t2) + supm
If m >= 60 Then
suph = Int(m / 60)
m = m - 60 * suph
End If
h = Hour(t1) + Hour(t2) + suph
addheures = h & ":" & m & ":" & s
End Function
Private Sub Boutonadd_Click()
TextBox1.Text = addheures(Range("A1").Value, Range("A2").Value)
End Sub
[\code]
le boutonadd est un bouton que j'ai créé juste pour l'appli après la fonction peut servir n'importe où ?
A plus, mais c'est quand même délirant de ne pas pouvoir copier ce fichu résultat, si quelqu'un à l'info ça m'intéresse.
merci encore pour cette reponse
tres interressant le programme, toutefois, le calcul se fait avec deux heures en A1 et A2
Dans mon cas, j'ai une plage d'heures allant de J19 a J50 alors je ne sais pas comment utiliser la fonction pour une plage d'heures
est ce que tu peux me donner un coup de main ça serait super cool ?
merci encore pour cette fonction
tres interressant le programme, toutefois, le calcul se fait avec deux heures en A1 et A2
Dans mon cas, j'ai une plage d'heures allant de J19 a J50 alors je ne sais pas comment utiliser la fonction pour une plage d'heures
est ce que tu peux me donner un coup de main ça serait super cool ?
merci encore pour cette fonction
petite mise a jour
ton programme marche parfaitement puisqu'il me donne les heures ,minute et secondes mais le resultat dans la textbox ne correspond pas au resultat de la cellule ou une somme d'heures est effectuée
j'ai fais un test avec ton programme
Dans le classeur, a la cellule FT35 j'ai: =somme(X19:X49)
Ce qui me donne une valeur sous forme d'heure de 33:23:00
J'utilise ton programme, je pointe la cellule FT35 pour avoir la valeur et la cellule A1 qui ne contient rien
Je lance mon programme et j'obtiens: 9:23:00
Alors le probleme je comprens pas grand chose
une solution peut etre
ton programme marche parfaitement puisqu'il me donne les heures ,minute et secondes mais le resultat dans la textbox ne correspond pas au resultat de la cellule ou une somme d'heures est effectuée
j'ai fais un test avec ton programme
Dans le classeur, a la cellule FT35 j'ai: =somme(X19:X49)
Ce qui me donne une valeur sous forme d'heure de 33:23:00
J'utilise ton programme, je pointe la cellule FT35 pour avoir la valeur et la cellule A1 qui ne contient rien
Je lance mon programme et j'obtiens: 9:23:00
Alors le probleme je comprens pas grand chose
une solution peut etre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
voici une fonction pour te refabriquer ce que excel a du mal à faire :
A copier dans un module.
Pour tester saisis un temps en A1 et lance cette macro :
eric
voici une fonction pour te refabriquer ce que excel a du mal à faire :
Function strH(temps As Double) As String Dim h As Long, m As Long, s As Long h = Int(temps) * 24 temps = (temps - Int(temps)) * 24 h = h + Int(temps) temps = (temps - Int(temps)) * 60 m = Int(temps) s = Int((temps - Int(temps)) * 60) strH = Right("00" & h, 2) & ":" & Right("00" & m, 2) & ":" & Right("00" & s, 2) End FunctionTu lui passes un temps (numérique) en paramètre, il te retourne ce temps sous forme de chaine de caractère.
A copier dans un module.
Pour tester saisis un temps en A1 et lance cette macro :
Sub test() MsgBox (strH([A1])) End Sub
eric
Je t'avais donné un code vite fait pour l'addition de deux dates < 24 heures, pour ce que tu veux faire le code de erric est impeccable. Bravo Erric
Attention il perd une seconde à chaque addition, tu as juste à l'ajouter en ligne des secondes
[code]
s = Int((temps - Int(temps)) * 60)+1
[\code]
Salut
Attention il perd une seconde à chaque addition, tu as juste à l'ajouter en ligne des secondes
[code]
s = Int((temps - Int(temps)) * 60)+1
[\code]
Salut
Je parle de ta variable s qui elle est numérique et qui en perd une petite à chaque mise en forme (excuses moi, la perte n'est pas à l'addition mais à la conversion)
A plus
A plus
en suivant tes conseils, si je mets [H] pour la forme de date alors , dans la textbox, l'heure s'affiche de la manière suivante:
:12:54
les heures ne s'affichent pas et les minutes et secondes ne correspondes pas aux valeurs dans la cellule de copie
merci pour ce debut de reponse