XL 2016 Comment calculer la somme des heures!

  • Initiateur de la discussion Initiateur de la discussion zinoukrimo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bonjour.

Les durées sont sous forme de textes, pas de nombres (voir éventuellement comment les convertir lors de l'importation).
En L8 : =TEMPSVAL(J8)
En M8 : =SOMME.SI($A$8:$A$2098;$A8;$L$8:$L$2018)
Le tout au format [h]:mm:ss à recopier jusqu'en bas.
 
Bonjour.

Les durées sont sous forme de textes, pas de nombres (voir éventuellement comment les convertir lors de l'importation).
En L8 : =TEMPSVAL(J8)
En M8 : =SOMME.SI($A$8:$A$2098;$A8;$L$8:$L$2018)
Le tout au format [h]:mm:ss à recopier jusqu'en bas.

je pense qu'il y a une faute vu le résultat Victor21!
 

Pièces jointes

Bonjour zinoukrimo, Patrick,

Voyez le fichier joint et cette macro dans le code de la feuille "Total" (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub WorkSheet_Activate()
Dim colref%, coldur%, tablo, resu(), d As Object, i&, lig&, n&
colref = 3 'colonne de référence, à adapter
coldur = 10 'colonne des durées, à adapter
tablo = Feuil1.[A7].CurrentRegion.Resize(, coldur)
ReDim resu(1 To UBound(tablo), 1 To 3)
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
    If IsDate(tablo(i, coldur)) Then tablo(i, coldur) = CDbl(TimeValue(tablo(i, coldur)))
    If Not IsNumeric(tablo(i, coldur)) Then tablo(i, coldur) = 0
    If d.exists(tablo(i, colref)) Then
        lig = d(tablo(i, colref))
        resu(lig, 3) = resu(lig, 3) + tablo(i, coldur)
    Else
        n = n + 1
        d(tablo(i, colref)) = n 'mémorise la ligne
        resu(n, 1) = tablo(i, 1)
        resu(n, 2) = tablo(i, colref)
        resu(n, 3) = tablo(i, coldur)
    End If
Next
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A2] 'cellule à adapter
    If d.Count Then .Resize(n, 3) = resu
    .Offset(d.Count).Resize(Rows.Count - d.Count - .Row + 1, 3).ClearContents 'RAZ en dessous
End With
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle se déclenche quand on active la feuille.

Nota : en colonne A de la 1ère feuille les données ne sont pas des noms de conducteurs, je les ai déplacées en colonne C.

A+
 

Pièces jointes

Bonjour zinoukrimo, Patrick,

Voyez le fichier joint et cette macro dans le code de la feuille "Total" (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub WorkSheet_Activate()
Dim colref%, coldur%, tablo, resu(), d As Object, i&, lig&, n&
colref = 3 'colonne de référence, à adapter
coldur = 10 'colonne des durées, à adapter
tablo = Feuil1.[A7].CurrentRegion.Resize(, coldur)
ReDim resu(1 To UBound(tablo), 1 To 3)
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
    If IsDate(tablo(i, coldur)) Then tablo(i, coldur) = CDbl(TimeValue(tablo(i, coldur)))
    If Not IsNumeric(tablo(i, coldur)) Then tablo(i, coldur) = 0
    If d.exists(tablo(i, colref)) Then
        lig = d(tablo(i, colref))
        resu(lig, 3) = resu(lig, 3) + tablo(i, coldur)
    Else
        n = n + 1
        d(tablo(i, colref)) = n 'mémorise la ligne
        resu(n, 1) = tablo(i, 1)
        resu(n, 2) = tablo(i, colref)
        resu(n, 3) = tablo(i, coldur)
    End If
Next
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A2] 'cellule à adapter
    If d.Count Then .Resize(n, 3) = resu
    .Offset(d.Count).Resize(Rows.Count - d.Count - .Row + 1, 3).ClearContents 'RAZ en dessous
End With
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle se déclenche quand on active la feuille.

Nota : en colonne A de la 1ère feuille les données ne sont pas des noms de conducteurs, je les ai déplacées en colonne C.

A+

bonjour job75 mes excuses pour le retard je viens juste de consulter le site merci pour le travail.
maintenant je voudrais entrée d'autre fonction.

il s'agit d'avoir le nom du conducteur la colonne "A" sur la ligne M quand on choisi avec son immatricule dans la ligne N, exemple si je choisi "RELEX NATIONAL" dans la la ligne M je doit avoir dans la ligne N "00468-119-30" son immatriculation et avoir sa vitesse max et min dans la ligne P comme dans le fichier ci joint dans le post, moi je n'arrive pas à trouver la bonne formule ou fonction.
 

Pièces jointes

bonjour job75 finalement il fallait juste appliquer la Formules matricielles en P13 et P14 à valider par Ctrl+Maj+Entrée et ce que je peu ajouter des couleurs pour chaque conducteur dans la colonne "Nom du conducteur" et si c'est possible un tableau croisé dynamique pour pour suivre les excès de vitesses de chaque conducteur dans une autre feuille dans le même fichier avidement... merci beaucoup et bonne journée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
229
Réponses
12
Affichages
555
Retour