XL 2013 identification d'une période donnée sur un tableau

presticath

XLDnaute Nouveau
Bonjour,

je vous prie de trouver ci-joint un tableau qui recense un nombre de lits par jour, les éventuelles fermetures et cela en fonction du service

On a donc des fermetures de lits sur des périodes données et je souhaiterais pouvoir identifier ces différentes périodes ? Comment faire ?
Cela me permettrait alors de réaliser un TCD ou je pourrais ainsi avoir une vue plus synthétique du nbre moyen de lits fermés par période.

Le petit en plus serait de pouvoir afficher la période (date de début et date de fin de la période).

Les données souhaitées apparaissent en jaune dans le tableau.

J'espère que cela est clair.

Merci d'avance pour votre aide
Cordialement

David
 

Pièces jointes

  • Classeur3.xlsx
    15.9 KB · Affichages: 6

Modeste

XLDnaute Barbatruc
Bonjour,

J'espère que cela est clair
Ben ... en toute franchise ... tout est relatif 😄
Un TCD comme celui-ci n'est pas ce que tu cherches ?
1653030688983.png
 

presticath

XLDnaute Nouveau
Bonjour,


Ben ... en toute franchise ... tout est relatif 😄
Un TCD comme celui-ci n'est pas ce que tu cherches ?
Regarde la pièce jointe 1140077
Merci d'avoir pris le soin de me répondre mais mon problème est que je cherche justement à identifier les différentes périodes. Le fichier que je joins ne contient que peu de lignes et les périodes ont été ajoutées à la main. Ma base réelle contient près de 200 000 lignes dont impossible de créer ces périodes à la main.
 

presticath

XLDnaute Nouveau
Bonjour à tous,
Est-ce qu'on peut proposer un planning visuel de ce genre=>
Regarde la pièce jointe 1140097
Dans ce planning, on pourrait colorer les histogrammes selon une échelle de fermeture du genre 10%=vert, 50% orange, 100%=rouge ou un truc du genre avec éventuellement plus d'échelons de couleur.
Si ça intéresse je peux compléter le fichier et le poster.
Pierre
effectivement le travail est vraiment très impressionnant et pourrait en partie répondre à ma problématique même si à un moment je vais avoir besoin d'une encore plus synthétique (non pas une vue mois par mois mais sur un un trimestre !!

en tout un grand merci d'avoir pris le temps de me répondre

cordialement

david
 

job75

XLDnaute Barbatruc
Bonjour presticath, Modeste, p56,

Voyez le fichier joint et cette macro dans le code de la 1ère feuille (celle du TCD) :
VB:
Private Sub Worksheet_Activate()
Dim ncol%, tablo, resu, i&, n&, deb&, j&
With Sheets("BDD").[A1].CurrentRegion
    ncol = .Columns.Count
    .Columns(ncol - 2).Offset(1).Resize(, 3).ClearContents 'RAZ
    .Sort .Columns(2), xlAscending, .Columns(4), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
    tablo = .Value 'matrice, plus rapide
    resu = .Columns(ncol - 2).Resize(, 3)
    For i = 2 To UBound(tablo)
        If tablo(i, 2) <> tablo(i - 1, 2) Then n = 0
        If deb = 0 Then If tablo(i, 5) > 0 Then n = n + 1: deb = i
        If deb Then
            If tablo(i, 5) = 0 Then
                For j = deb To i - 1
                    resu(j, 1) = "PERIODE " & n
                    resu(j, 2) = tablo(deb, 4)
                    resu(j, 3) = tablo(i - 1, 4)
                Next j
                deb = 0
            End If
        End If
    Next i
    .Columns(ncol - 2).Resize(, 3) = resu 'restitution des colonnes H:J
End With
ThisWorkbook.RefreshAll 'MAJ du TCD
End Sub
Elle se déclenche quand on active la feuille : les colonnes H:J de la feuille "BDD" se remplissent.

Elle est très rapide car on utilise des tableaux VBA.

A+
 

Pièces jointes

  • Classeur(1).xlsm
    26.9 KB · Affichages: 7

presticath

XLDnaute Nouveau
Bonjour presticath, Modeste, p56,

Voyez le fichier joint et cette macro dans le code de la 1ère feuille (celle du TCD) :
VB:
Private Sub Worksheet_Activate()
Dim ncol%, tablo, resu, i&, n&, deb&, j&
With Sheets("BDD").[A1].CurrentRegion
    ncol = .Columns.Count
    .Columns(ncol - 2).Offset(1).Resize(, 3).ClearContents 'RAZ
    .Sort .Columns(2), xlAscending, .Columns(4), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
    tablo = .Value 'matrice, plus rapide
    resu = .Columns(ncol - 2).Resize(, 3)
    For i = 2 To UBound(tablo)
        If tablo(i, 2) <> tablo(i - 1, 2) Then n = 0
        If deb = 0 Then If tablo(i, 5) > 0 Then n = n + 1: deb = i
        If deb Then
            If tablo(i, 5) = 0 Then
                For j = deb To i - 1
                    resu(j, 1) = "PERIODE " & n
                    resu(j, 2) = tablo(deb, 4)
                    resu(j, 3) = tablo(i - 1, 4)
                Next j
                deb = 0
            End If
        End If
    Next i
    .Columns(ncol - 2).Resize(, 3) = resu 'restitution des colonnes H:J
End With
ThisWorkbook.RefreshAll 'MAJ du TCD
End Sub
Elle se déclenche quand on active la feuille : les colonnes H:J de la feuille "BDD" se remplissent.

Elle est très rapide car on utilise des tableaux VBA.

A+
Et bien impressionnant !!! exactement ce que je cherchais à faire !!!! jamais je n'aurais réussi à faire un truc pareil. Un grand merci
david
 

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 899
Membres
103 024
dernier inscrit
rdge