Problème de soustraction d'heure et minute
Résolu
2015-1158
Messages postés
34
Statut
Membre
-
archer -
archer -
Bonjour,
Je souhaite coder un UserForm me permettant avec des comboBox de choisir des plages horaires (Borne Inf et Born Sup)
Les comboBox sont de la forme suivante liste déroulante=00:00 , 00:30, 01:00, 01:30 , 02:00...
Ensuite après avoir choisit la borne Inf et la Borne Sup je souhaite faire la soustraction et l'afficher dans un TextBox1
Je récapitule, l'UserForm s'ouvre.
Il y a deux ComboBox1 et ComboBox2 avec des choix de temps. près le choix la soustraction doit s'effectuer dans un TextBox1.
Voici ce que j'ai actuellement codé:
Le problème est du type 13 sur les t1=ComboBox1.Value, il n'arrive pas à lire.
merci pour votre aide.
Je souhaite coder un UserForm me permettant avec des comboBox de choisir des plages horaires (Borne Inf et Born Sup)
Les comboBox sont de la forme suivante liste déroulante=00:00 , 00:30, 01:00, 01:30 , 02:00...
Ensuite après avoir choisit la borne Inf et la Borne Sup je souhaite faire la soustraction et l'afficher dans un TextBox1
Je récapitule, l'UserForm s'ouvre.
Il y a deux ComboBox1 et ComboBox2 avec des choix de temps. près le choix la soustraction doit s'effectuer dans un TextBox1.
Voici ce que j'ai actuellement codé:
#Private Sub UserForm_Initialize()
Dim i As Byte, j As Byte
'je boucle sur les heures
For i = 0 To 23
'je boucle sur les minutes par tranche de 30mn
For j = 0 To 59 Step 30
'j'initialize ma combo
Me.ComboBox1.AddItem Format(i, "00") & ":" & Format(j, "00")
Me.ComboBox2.AddItem Format(i, "00") & ":" & Format(j, "00")
Next j
Next i
End Sub
Sub ComboBox1_Change()
CalculPour
End Sub
Sub ComboBox2_Change()
CalculPour
End Sub
Private Sub CalculPour()
Dim hh As Integer
Dim mn As Integer
Dim ss As Integer
Dim t1 As Date
Dim t2 As Date
hh = 0
mn = 0
ss = 0
t1 = ComboBox1.Value
t2 = ComboBox2.Value
ss = DateDiff(DateInterval.Second, t1, t2)
TextBox1.Text = Format(hh, "00") & "h" & Format(mn, "00") & "'" & Format(ss, "00")
End Sub
#
Le problème est du type 13 sur les t1=ComboBox1.Value, il n'arrive pas à lire.
merci pour votre aide.
A voir également:
- Problème de soustraction d'heure et minute
- Changement d'heure - Guide
- Heure de connexion whatsapp qui ne changé pas - Accueil - WhatsApp
- 2go internet = combien d'heure - Forum Opérateurs & Réseaux mobiles
- Formule conversion centième d'heure en minute excel ✓ - Forum Excel
- 2 go d'internet sa représente quoi ✓ - Forum Mobile
2 réponses
Bonjour,
Private Sub CalculPour()
Dim hh As Integer
Dim Mn As Integer
Dim ss As Integer
Dim t1 As Date
Dim t2 As Date
hh = 0 '??????????????????
Mn = 0 '?????????????????????
ss = 0 '?????????????????????????
If ComboBox1 <> "" And ComboBox2 <> "" Then
t1 = ComboBox1.Value
t2 = ComboBox2.Value
TextBox1.Text = CalculDifferenceHeure(t1, t2)
End If
End Sub
'https://www.generation-nt.com/reponses/calculer-difference-entre-2-heures-entraide-2422711.html
Function CalculDifferenceHeure(HD As Variant, HF As Variant) As String
'HD Heure de début
'HF Heure de fin
Dim Secondes As Long
Dim Sec As String
Dim Minutes As Long
Dim Mn As String
Dim Heures As Long
Dim Hr As String
Secondes = DateDiff("s", HD, HF) '* -1 a ajouter si t1 est toujours plus grand que t2 sinon temps negatif ....!!!!
Heures = Secondes / 3600
Minutes = Secondes / 60
Mn = Minutes - (Heures * 60)
Hr = Heures
If Hr < 10 Then Hr = "0" & Heures
If Mn < 10 Then Mn = "0" & Mn
Sec = Secondes - (Minutes * 60)
If Sec < 10 Then Sec = "0" & Sec
CalculDifferenceHeure = Hr & ":" & Mn & ":" & Sec
End Function
Bonjour
A voir aussi comme ca
A+
Maurice
A voir aussi comme ca
A+
Maurice
Dim Ctrl As Control
Private Sub UserForm_Initialize()
Me.Caption = "TACHES ??????"
'Me.BackColor = &H80000005
Me.PictureSizeMode = 1
He = 24
For Each Ctrl In Me.Controls
Select Case Left(Ctrl.Name, 3)
Case "Tex"
Ctrl.BackColor = &H80000018
Ctrl.Font.Name = "Arial Narrow"
Ctrl.Font.Size = 14
Ctrl.Font.Bold = True
Ctrl.Height = He
Ctrl.Tag = "O"
Case "Com"
Ctrl.BackColor = &H80000005
Ctrl.BackStyle = 0
Ctrl.Font.Name = "Arial Narrow"
Ctrl.Font.Size = 14
Ctrl.Font.Bold = True
End Select
Next Ctrl
End Sub
Private Sub UserForm_Activate()
Dim I&, J&
'je boucle sur les heures
For I = 0 To 23
'je boucle sur les minutes par tranche de 30mn
For J = 0 To 59 Step 30
'j'initialize ma combo
ComboBox1.AddItem Format(I, "00") & ":" & Format(J, "00")
Next
Next
End Sub
Sub ComboBox1_Change()
Dim I&
ComboBox2.Clear
For I = 0 To ComboBox1.ListCount - 1
If ComboBox1.Value < ComboBox1.List(I) Then
ComboBox2.AddItem ComboBox1.List(I)
End If
Next I
End Sub
Sub ComboBox2_Change()
Dim H1 As Date
Dim H2 As Date
H1 = CDate(ComboBox1.Value)
H2 = CDate(ComboBox2.Value)
'TextBox1.Value = Format(H1 + H2, "hh:mm")
TextBox1.Value = Format(H2 - H1, "hh:mm")
End Sub