Faire une synthèse journalière sous Excel

Pourquoi, le TCD fait peur ?

Bon ok, on peut faire juste un menu déroulant pour choisir la date que l'on veut, c'est encore plus simple ici.

Mais si tu veux ensuite tracer des courbes, il faudra ensuite passer par un TCD.

Pourquoi, le TCD fait peur ?

Bon ok, on peut faire juste un menu déroulant pour choisir la date que l'on veut, c'est encore plus simple ici.

Mais si tu veux ensuite tracer des courbes, il faudra ensuite passer par un TCD.

Non le TCD fait pas peur ;). Et comme tu dit peut être qu'un jour on passera au TCD.

Mais si pour l'instant on peut le faire avec un menu déroulant pour choisir la date sa serais top

J'ai repris le fichier,

je te propose plutôt cette solution (encore incomplète) plus flexible

Private Sub Worksheet_Activate()
    Rows("5:" & Range("D" & Rows.Count).End(xlUp).Row).Delete
    '       onglet critères
    filtrer "RNC", Range("E1:E2")
    filtrer "NC IF", Range("E1:E2")
    filtrer "Anomalie préparation", Range("E1:E2")
    filtrer "HSE", Range("E1:E2")
    filtrer "IA", Range("E1:E2")
    filtrer "Troubleshooting", Range("E1:F3")
End Sub
Sub filtrer(onglet As String, crit As Range)
Dim der As Range
    Set der = Range("D" & Rows.Count).End(xlUp).Offset(3, 0)
    Sheets(onglet).Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=crit, CopyToRange:=der, Unique:=False
    Cells(der.Row, "A") = onglet & " :"
End Sub

il me reste à refaire les synthèses annuelles (mais pourquoi pas aussi mensuelles et quotidiennes)

L'autre avantage est que l'on pourra compiler les fichiers des 5 services et produire le même résultat avec les mêmes macros relativement simples.

18suivi-pompe-3.xlsm (93.22 Ko)

Je vais regarder ces 2 points dans la journée en fonction de mes trous d'emploi du temps.

Complément

reste la compilation

reste aussi à remettre les sources des validations (j'ai remarqué qu'il y avait 2 x montage écrits différemment ! une fois avec un espace, une fois sans

Ok merci je regarderai ça ce soir 😉. Concernant les 2 écritures de montage il s'agit d'une erreur que j'ai vu hier soir, j'ai supprimé celui avec espace

j'ai mis un gros jeu d'essai aléatoire et découvert une petit bug

11suivi-pompe-3bis.xlsm (213.98 Ko)

Je viens de voir tes fichiers. C'est pas tout à fait ce à quoi je m'attendais. Je pensais plutôt partir sur un fichier comme celui ci-dessous.

On en ferais 1 par semaine (en partant de l'original qu'on garderais). Il faudrait juste créé une macro je pense pour lui dire qu'une fois que la feuille est rempli (par exemple la feuille du lundi 19/10 est remplie avec toute les infos du 19/10) elle ne s'actualise plus automatiquement

8s43.xlsx (16.68 Ko)

On en ferais 1 par semaine (en partant de l'original qu'on garderais). Il faudrait juste créé une macro je pense pour lui dire qu'une fois que la feuille est rempli (par exemple la feuille du lundi 19/10 est remplie avec toute les infos du 19/10) elle ne s'actualise plus automatiquement

  1. tu veux donc une feuille de synthèse quotidienne par jour : lundi, mardi, mercredi, etc. de la semaine ... si on est jeudi, les synthèses de lundi (figée), mardi( figée), mercredi (nouvelle) apparaissent, pas celles du jeudi et du vendredi ?
  2. comment fais-tu la synthèse annuelle que j'ai vue dans le dernier fichier ?

tu veux donc une feuille de synthèse quotidienne par jour : lundi, mardi, mercredi, etc. de la semaine ... si on est jeudi, les synthèses de lundi (figée), mardi( figée), mercredi (nouvelle) apparaissent, pas celles du jeudi et du vendredi ?

oui c'est ce que je pensais.

J'avais pas pensé a la synthèse annuel... en y réfléchissant bien il faudrait mieux partir sur le fichier suivi-pompe-3bis avec la synthèse annuelle

J'avais pas pensé a la synthèse annuel...

sans compter les points ouverts Troubleshooting qui peuvent prendre leur source dans les semaines précédentes

Ici j'ai 5 services et un fichier de compilation ...

Il me reste un point à résoudre quand un onglet est vide.

Par ailleurs, la veille s'affiche par défaut, mais il est possible de choisir un autre jour précédent avec le menu déroulant.

19pompes.zip (868.45 Ko)

Bonjour,

j'ai réactualisé la dernière version, ce qui est l'occasion de faire un récap et un bilan

  1. le premier sujet de connaître la veille n jour ouvré a été résolu par
    =SERIE.JOUR.OUVRE(AUJOURDHUI();-1;_JF)
  2. le second sujet était d'avoir une récap des événements de la veille + une récap des troubleshooting encore ouverts
    Private Sub toutfiltrer()
        Application.EnableEvents = False
        Rows("4:" & Application.Max(4, Range("B" & Rows.Count).End(xlUp).Row)).Delete
        filtrer "RNC", Range("C1:C2")
        filtrer "NC IF", Range("C1:C2")
        filtrer "Anomalie préparation", Range("C1:C2")
        filtrer "HSE", Range("C1:C2")
        filtrer "IA", Range("C1:C2")
        filtrer "Troubleshooting", Range("C1:D3")
        Application.EnableEvents = True
    End Sub
    
    Sub filtrer(onglet As String, crit As Range)
    Dim der As Range
        On Error Resume Next
        Set der = Range("B" & Rows.Count).End(xlUp).Offset(3, 0)
        Sheets(onglet).Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=crit, CopyToRange:=der, Unique:=False
        Cells(der.Row, "A") = onglet & " :"
    End Sub
  3. je suis allé un peu plus loin en répondant aussi au besoin d'avoir des synthèses annuelles en plus de journalières, via des TCD
  4. j'ai préparé un compilateur qui permet de regrouper les données de plusieurs services
    Sub compiler()
    
    Dim wbk1 As Workbook, wbk2 As Workbook
    Dim MonRepertoire
    
        MonRepertoire = ThisWorkbook.Path & "\pompes\"
        monFichier = Dir(MonRepertoire & "*.xlsm")
    
        onglets = Array("RNC", "NC IF", "IA", "Troubleshooting", "Anomalie préparation", "HSE")
        Set wbk1 = ThisWorkbook
        raz
    
        Do While monFichier <> ""
            ' Debug.Print monFichier
            Set wbk2 = Workbooks.Open(MonRepertoire & monFichier)
            For Each onglet In onglets
                If Not wbk2.Sheets(onglet).ListObjects(1).DataBodyRange Is Nothing Then
                    wbk1.Sheets(onglet).ListObjects(1).ListRows.Add
                    ligne = wbk1.Sheets(onglet).ListObjects(1).ListRows.Count
                    wbk2.Sheets(onglet).ListObjects(1).DataBodyRange.Copy Destination:=wbk1.Sheets(onglet).ListObjects(1).DataBodyRange.Cells(ligne, 1)
                End If
            Next
            Application.DisplayAlerts = False
                wbk2.Close False
            Application.DisplayAlerts = True
            monFichier = Dir
        Loop
    
    End Sub

Voici la version

23suivi-pompes-v4.xlsm (102.47 Ko)

Je te conseille par exemple de le mettre en place pendant un mois dans un service pour le tester au quotidien avant de le déployer. Attention à toujours laisser au moins une ligne avec une date sur chacun des tableaux sinon la synthèse ne fonctionnera plus (c'est pourquoi en cas de raz je rajoute la date du 1/1/1900).

Sub raz()
    onglets = Array("RNC", "NC IF", "IA", "Troubleshooting", "Anomalie préparation", "HSE")
    Set wbk1 = ThisWorkbook
    For Each onglet In onglets
        If Not wbk1.Sheets(onglet).ListObjects(1).DataBodyRange Is Nothing Then
            wbk1.Sheets(onglet).ListObjects(1).DataBodyRange.Delete
            wbk1.Sheets(onglet).ListObjects(1).ListRows.Add
            ligne = wbk1.Sheets(onglet).ListObjects(1).ListRows.Count
            wbk1.Sheets(onglet).ListObjects(1).DataBodyRange.Cells(ligne, 1) = 1 ' pour présrver la mise en forme des TCD (groupes année/mois/date)
        End If
    Next
End Sub
Rechercher des sujets similaires à "synthese journaliere"