Somme occurrences et temps d'arrêt de défauts recherchés

Bonsoir à tous,

Afin de faciliter mes analyses sur des défauts spécifiques, je voudrais faire la somme des occurrences et des temps d'arrêts d'un/des défaut(s) recherchés suite un tri fait en amont via la vba.

Dans le fichier ci-joint, je voudrais faire la somme des occurrences et des temps d'arrêts pour le défaut "Chargeur pousseur voie 1". Si 100 défauts apparaissent ou 1000 défauts, le but est d'avoir ces 2 sommes sur les cellules (en Hx les occurrences et Ix les temps d'arrêts) de la dernière ligne qui contient ce défaut. Et même, répéter cette action pour 3 autres défauts : "Chargeur pousseur voie 2", "Chargeur pousseur voie 3" et "Chargeur pousseur voie 4".

Cela me permettrais d'obtenir un gain considérable de temps de travail sachant que je dois traiter des dizaines de fichiers à la suite.

Quelqu'un aurait-il une idée sur la vba à créer?

Merci.

10test.xlsm (25.00 Ko)

Bonsoir à tous !

VBA est un point de passage obligé pour la résolution de votre besoin ?

Power Query, nativement intégré dans votre Excel 2019, retourne en quelques clics ceci :

image

Bonjour,

Je ne connaissais pas du tout Power Query. Ne le maitrisant aucunement, un VBA serait le top.

Cordialement,

bonjour JFL, Xavier_09,

comme ceci ?

Sub Xavier()
     Dim aA, aOut, Dict

     Set Dict = CreateObject("scripting.dictionary")
     Dict.comparemode = vbTextCompare

     aA = ActiveSheet.Range("A1").CurrentRegion.Resize(, 7).Value2     'vos données
     ReDim aOut(1 To UBound(aA), 1 To 3)     'array du résultat
     For i = 1 To UBound(aA)                 'boucler les données
          If Len(aA(i, 4)) > 0 Then          'le chargeur <>""
               If Not Dict.exists(aA(i, 4)) Then     'chargeur connu dans le dictionaire?
                    Dict(aA(i, 4)) = Dict.Count + 1     'ajouter au dictionaire avec item le nombre de keys
                    aOut(Dict.Count, 1) = aA(i, 4)     'assigner le chargeur a aOut
               End If
               ptr = Dict(aA(i, 4))          'pointer
               aOut(ptr, 2) = aOut(ptr, 2) + aA(i, 5)     'accumuler le temps 'd'arrêt (colonne E)
               aOut(ptr, 3) = aOut(ptr, 3) + aA(i, 7)     'accumuler le nombre d'arrêts (colonne G)
          End If
     Next

     With ActiveSheet.Range("L2")
          .Resize(, 3).EntireColumn.ClearContents     'RAZ
          .Offset(-1).Resize(, 3).Value = Array("Chargeur", "Temps perdu", "nombre d'arrêts")
          .Resize(Dict.Count, 3).Value = aOut     'coller le résultat
          .Resize(, 3).EntireColumn.AutoFit
          .Offset(, 1).EntireColumn.NumberFormat = "[hh]:mm:ss"
          With .CurrentRegion
          .Sort .Range("B1"), xlDescending, Header:=xlYes
          End With
     End With
End Sub

Bonjour,

J'ai testé le VBA et il fonctionne parfaitement. Je vais pouvoir l'utiliser pour n'importe quel défaut.

Merci beaucoup

Bonjour à tous !

Je ne connaissais pas du tout Power Query. Ne le maitrisant aucunement, un VBA serait le top.

Quel dommage de se priver d'un tel outil....

C'est un investissement d'une grande rentabilité.

Rechercher des sujets similaires à "somme occurrences temps arret defauts recherches"