transfert minutes en heures

Dennnisss

XLDnaute Occasionnel
bonjour a tous

hier j'avais demander de l'aide sur le site et dhanreb a tenter de m,aider mais j'etais tellement peut clair dans ma demande aujourd'hui j'ai encore faite de la recherche sur votre forum encore pour me gourrer j'ai pas trouver ce que je cherchait , alors je reformule ma demande et j,ai changer mon test de userform pour essayer d'etre plus clair
il a dans le user form 3 textbox et un label

si on ecrit dans textbox 2 la somme de 30 kilometre
si on ecrit dans le textbox 3 la somme de 90 minutes
il va apparaitre dans le textbox 5 la moyenne de kilometre/heures

mais dans le labels 39 il va apparaitre 1,5 au lieu de 1:30 hrs
c'est ca que j'essaie de corriger comment convertir 1,5 en format heures
j'ai trouver beaucoup de donnée mais ils sont basé sur une feors je relance la question et feuille excel au lieu de textbox vs label

alors je relance la question soit a dhanred ou autre acros pret a m'aider et bonne fete a vous les francais

dennnisss:)
 

Pièces jointes

  • test average (2).zip
    12.8 KB · Affichages: 53

Lean

XLDnaute Junior
Re : transfert minutes en heures

Bonjour,

En attendant mieux
j'ai trouvé une solution mais elle necessite d'utiliser des cellules servant au calcul

Code:
Sub calculeminute()
Range("a1") = TextBox3 * 1
Range("b1") = TextBox3 * 1
Range("a2").FormulaR1C1 = "=Int(R1C/60)"
Range("b2").Formula = "=Mod(R1C,60)"
Label39 = Range("a2") & ":" & Range("b2")

End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : transfert minutes en heures

Bonsoir.
Suite diu feuilleton…
VB:
Sub Test()
Dim X As Double
X = TimeValue("1:30") * 24
MsgBox "X = TimeValue(""1:30"") * 24 ==> X = " & X _
  & vbLf & "Format(X / 24,  ""hh:mm"") = """ & Format(X / 24, "hh:mm") & """."
End Sub
Vous auriez intérêt à déclarer les paramètres en jeu en tête du Userform pour qu'ils soient connus dans toutes les procédures.
au moins Dim Durée As Double
Et vous pourriez écrire ces procédures en fin pour être débarassé des conversions:
VB:
Property Get TextHeures(H As Double) As String
TextHeures = Format(H / 24, "hh:mm")
End Property
Property Let TextHeures(H As Double, Txt As String)
H = TimeValue(Txt) * 24
End Property
Property Get TextMinutes(M As Double) As String
TextMinutes = Format(M / 1440, "hh:mm")
End Property
Property Let TextMinutes(M As Double, Txt As String)
M = TimeValue(Txt) * 1440
End Property
Elle peuvent s'utiliser comme des fonctions textes à droite d'une affectation à un String, mais aussi à gauche du signe égal, auquel cas elles rectifient le paramètre passé de telle sorte qu'il se représenterait comme indiqué dans le texte affecté.
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : transfert minutes en heures

Bonsoir à tous,

Et vous pourriez écrire ces procédures en fin pour être débarassé des conversions
Ca a l'air intéressant, je pensais que c'était réservé aux modules de classe.

Property Get
Ok, j'ai pu testé.
Y'a-t-il un avantage par rapport à une fonction ?

Code:
Property Let TextHeures(H As Double, Txt As String)
    H = TimeValue(Txt) * 24
End Property
mais aussi à gauche du signe égal, auquel cas elles rectifient le paramètre passé de telle sorte qu'il se représenterait comme indiqué dans le texte affecté.
Là par contre, rien compris. :-s
Apparemment il y a 2 paramètres mais il n'en accepte qu'un seul (?).
Et mes tentatives d'utilisation n'ont vraiment pas été couronnées de succès.
Tu pourrais mettre un exemple d'utilisation avec la syntaxe stp ?

eric




 

Dranreb

XLDnaute Barbatruc
Re : transfert minutes en heures

Non, c'est plus simple : le dernier paramètre de la Property Let est à spécifier après le signe égal de l'affectation :
VB:
Sub Exemple()
Dim Heures As Double
MsgBox "Au début :" & vbLf _
   & "Heures = " & Heures
TextHeures(Heures) = "1:30"
MsgBox "Après ça :" & vbLf & "TextHeures(Heures) = ""1:30""" & vbLf _
   & "Heures = " & Heures
End Sub
En somme Heures est rectifié de telle sorte que TextHeures(Heures) vaille "01:30" s'il était ensuite utilisé comme expression.

Ça peut parfois aussi être intéressant même sans autre paramètre que celui de la Let: à gauche comme à droite du signe égal, chez moi le presse-papier se comporte comme une variable String:
VB:
Property Get PressePapier() As String
Dim DOb As New DataObject
On Error Resume Next
DOb.GetFromClipboard: PressePapier = DOb.GetText
If Err Then MsgBox "Pas de données récupérées", vbCritical, "PressePapier"
End Property
Property Let PressePapier(Z As String)
Dim DOb As New DataObject
DOb.SetText Z: DOb.PutInClipboard
End Property
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : transfert minutes en heures

Bonjour à tous,

@Dranreb
Ben ça alors...
Extraordinaire (enfin pour moi, je découvre qcq chose que je n'imaginais même pas)
Vais approfondir ça ce matin :)
Merci
eric

Edit: d'abord mes excuses à Dennnisss pour le squat.
Une dernière question à Dranreb :
J'ai 'Type défini par l'utilisateur non défini.' sur Dim DOb As New DataObject
Il y a une référence à activer ?
J'ai essayé avec Microsoft ActiveX Data Objects 2.8 et 6.1 (j'ai 7 versions...), apparemment ce n'est pas ça.
Merci
eric
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : transfert minutes en heures

Bonjour.
C'est vrai que DataObject se rencontre dans beaucoup de bibliothèques comme membre non utilisables directement. Mais, curieux: l'explorateur d'objet me dit que celui qui supporte les méthode PutInClipboardet GetFromClipboard est celui de MSForms qui est en principe toujours implanté. Sinon c'est la référence "Microsoft Forms 2.0 Object Library"
 

eriiic

XLDnaute Barbatruc
Re : transfert minutes en heures

Re,

Merci, c'est bien la bonne référence pour le PP.
Par contre maintenant je butte sur le Get, Err 91. Mauvaise syntaxe de ma part ?
Dans le fichier j'ai laissé la syntaxe qui me parait la plus plausible de celle que j'ai essayées :
PP = PressePapier() ' Get
Get Err91.jpg
Bon, je n'en ai pas vraiment besoin, c'est plus pour comprendre.
Si tu as une idée elle est la bienvenue, sinon oublie ;-)
eric
 

Pièces jointes

  • Test Let-Get.xls
    28 KB · Affichages: 47

Discussions similaires

Statistiques des forums

Discussions
312 163
Messages
2 085 863
Membres
103 007
dernier inscrit
salma_hayek