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

  • Initiateur de la discussion Initiateur de la discussion presticath
  • 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 !

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

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
 
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.
 
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
 
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

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
 
- 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

Retour