Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 additionner des heures au delà de 24 heures

joon49

XLDnaute Nouveau
bonjour,

je voudrais additionner des heures mais cela dépasse 24 heures.

en plus de cela je veux que cela s'affiche dans un textbox sous format [h]:mm

au delà de 24:00 le format change dans la textbox voir fichier joint

comment puis je procéder?

merci par avance
 

Pièces jointes

  • heures.xlsm
    62.5 KB · Affichages: 7
Solution
ma solution:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Joon,
Vous devriez dire "quoi ajouter à quoi", et où mettre le résultat.
Alors j'ai rajouté un textbox pour simplifier.
En PJ un essai simple en utilisant une notation texte :
VB:
    NbH = 24 * Application.Sum([E9:I9])
    NbHaff = Int(NbH) & ":" & Int(60 * (NbH - Int(NbH)))
    saisiegroupe.TextBox6 = NbHaff
Il y a surement plus élégant, mais en attendant ...
 

Pièces jointes

  • heures.xlsm
    47.9 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
En remettant le même fichier, en répétant la même question, vous ne ferez pas avancer les choses.
Vous avez deux réponses qui sont :
VB:
    'Sylvanu
    NbH = 24 * Application.Sum([E9:I9])
    NbHaff = Int(NbH) & ":" & Int(60 * (NbH - Int(NbH)))
    saisiegroupe.TextBox6 = NbHaff
    'Hasco
    saisiegroupe.TextBox7 = Application.Text(Application.Sum([E9:I9]), "[h]:mm")
    
    saisiegroupe.Show
La solution de Hasco est plus élégante, mais les deux codes donnent le même résultat, voir PJ :

Donc en quoi ce résultat 84:45 ne vous va pas ? Donnez nous votre attendu.
 

Pièces jointes

  • heures (1).xlsm
    47.2 KB · Affichages: 2

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Je ne comprends pas.
Ou alors vous attendez peut-être :
Application.Text(range("E9"),"[h]\h mm\m\n")
qui vous affichera : "36h 45mn"

Si c'est du tout cuit que vous attendez alors faites attention à ne pas prendre froid la nuit et prévoyez d'attendre longtemps.

Faute de meilleurs explications, ce sera ma dernière intervention
 
Dernière édition:

joon49

XLDnaute Nouveau
le problème c'est que je voudrais afficher 28:45 au lieu de 31/12/1899 04:45:15.
les textboxs changent en fonction des combolists.

 

Pièces jointes

  • heures (1).xlsm
    46.5 KB · Affichages: 2

joon49

XLDnaute Nouveau
oui je vois bien cela si la valeur est juste un affichage

mais pour les combolist modifié

x3=cdate(Application.Text(Cells(moisactu + 4, 5), "[h]:mm")) ne marche pas.
 

Hasco

XLDnaute Barbatruc
Repose en paix
C'est à vous de vous assurer que vous passez bien une date à votre fonction et pas n'importe quoi
J'ai largement répondu à la question telle quelle était posée en post 1. Je n'irai pas plus loin, si ce n'est de vous conseiller d'apprendre le vba Pas à pas et non en vous lançant dans une usine à gaz.
Et je répète que si c'est du tout cuit que vous attendez, alors attendez....
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Utilisez peut être cette paire de Property Let et Get :
VB:
Private Property Let HeureTBx(ByVal TBx As MSForms.TextBox, ByVal RHS As Double)
   TBx.Text = WorksheetFunction.Text(RHS, "[h]:mm")
   End Property
Private Property Get HeureTBx(ByVal TBx As MSForms.TextBox) As Double
   Dim T() As String
   T = Split(TBx.Text, ":")
   HeureTBx = TimeSerial(T(0), T(1), 0)
   End Property
Private Sub TextBox1_Enter() ' juste pour tester (trop compliqué votre UserForm à cette heure ci …)
   HeureTBx(TextBox1) = 49 / 48
   MsgBox TextBox1.Text & vbLf & HeureTBx(TextBox1)
   End Sub
 

joon49

XLDnaute Nouveau
ma solution:

 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…