Graphique pour diabétique

Bonjour a vous tous,

J'ai vraiment besoin d'aide, assez que j'ai mal a la tete (et c'est vrai) tellement je veux y arriver, mais ca ne fonctionne pas comme je le voudrais. Je vais essayé d'etre le plus précis possible.

En premier lieu, je suis diabétique, et je me suis fait un fichier excel pour visualiser mes glycémies beaucoup plus facilement. Je prend mes glycémies matin et soir. Jusque la, aucun probleme. Mais avec des recherches, j'en suis venu a me demander si je pouvait afficher dans le graphique différente couleur pour différente valeur.

C'est alors que je suis tombé sur ce site: http://peltiertech.com/WordPress/conditional-formatting-of-excel-charts/

J'ai alors travaillé fort pour y arriver... mais encore une fois, je me suis frappé a un mur, car l'affichage ne s'effectue pas correctement.

J'ai alors continuer mes recherches, pour tomber sur ce site:

Mais j'ai malheureusement atteint ma limite de la compréhension. J'ai essayer d'allez dans un forum anglophone mais il est trop difficile d'expliquer mon probleme.

J'ai inclu le fichier avec lequel je travail.

Comme vous pouvez voir, certaine colonne dans le graphique sont collé, d'autre sont espacé... rien n'est egale partout... alors je dois suivre les instructions du lien SqueezeColumns, mais je n'y comprend vraiment rien.

Ca ne me derange pas de repartir a zero... mais ce que je voudrais c'est simplement ceci:

  • Si ma glycémie est entre 0 et 4, afficher la barre en jaune
  • Si ma glycémie est entre 4 et 8, afficher la barre en bleu
  • Si ma glycémie est entre 8 et 10, afficher la barre en jaune
  • Si ma glycémie est de 10 et plus, afficher la barre en rouge

De plus, je prend ma glycémie deux fois par jour: soit le matin et le soir. Idéalement, dans le graphique, j'aimerais qu'a chaque jour, la colonne du matin et la colonne du soir dans le graphique soit collé l'un sur l'autre, avec un espace jusqu'au jour suivant.

J'espere réellement que quelqu'un pourra m'aider car j'ai le gout de tout simplement lâcher.

240glycemie2.xlsx (16.63 Ko)

bonjour

je te propose ceci, voir les formules des colonnes jaunes. Je n'ai pas fait pour l'ap midi

pj

rem : les valeurs de glycémies vont de 0 (sans s'en approcher) à 5 ou 8. Revois tes valeurs.

233toto22.xlsx (20.12 Ko)

Whoa!!!! C'est genial! J'aime cette facon d'afficher...

Mais par contre il y a quelques erreurs.

Par exemple, si le matin j'ai une valeur de 3, la 2e cellule sera en négatif.

De plus le problème restera toujours pareil, c'est de faire le graphique pour les DEUX... c'est a ce moment que le probleme «d'espace» inégale est présent.

Bonsoir,

Ma bonne action du jour peut-être

Voir fichier joint et la surprise avec un appui sur les touches Ctrl + q

A te lire, car tu auras certainement de nombreuses questions,...

Après avoir médité, bien sûr

Cdlt

nb : réalisé sous Excel 2010 en espérant ne pas avoir utilisé de fonctions propres à ma version.

Option Explicit
Public Sub Création_Graphique()
      'Ctrl+q
      'Jean-Eric Pelouas - le 4 février 2013 - v1.00
      'Essai graphique TCD en VBA pour Rambytes
      Dim PTCache As PivotCache, PT As PivotTable, PR As Range
      Dim Plage As Range
      Dim i As Integer, pts As Integer
      Dim valeur As Double, temp As String

10        With Application
20            .DisplayAlerts = False
30            .ScreenUpdating = False
40        End With
          'Suppression feuilles TCD et Graphique mensuel
50        On Error Resume Next
60            With ActiveWorkbook
70                .Worksheets("TCD").Visible = True
80                .Worksheets("TCD").Delete
90                .Sheets("Graphique_1").Delete
100           End With
110       On Error GoTo 0
          'Création tableau croisé dynamique
120       Set Plage = Range("Tableau1[#All]")
130       Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
              SourceData:=Plage)
140       Worksheets.Add after:=Worksheets(Worksheets.Count)
150       ActiveSheet.Name = "TCD"
160       Set PT = PTCache.CreatePivotTable(TableDestination:=Worksheets("TCD").Range("A1"), _
              TableName:="TCD_1")

170       With PT
180             With .PivotFields("Jour")
190                 .Orientation = xlRowField
200             End With

210             With .PivotFields("v Matin")
220                 .Orientation = xlDataField
230                 .Caption = "v Matin "
240                 .Function = xlSum
250                 .NumberFormat = "0.0"
260             End With

270             With .PivotFields("v Soir")
280                 .Orientation = xlDataField
290                 .Caption = "v Soir "
300                 .Function = xlSum
310                 .NumberFormat = "0.0"
320             End With

330             With .PivotFields("m Matin")
340                 .Orientation = xlDataField
350                 .Caption = "m Matin "
360                 .Function = xlSum
370                 .NumberFormat = "0.0"
380             End With

390             With .PivotFields("m Soir")
400                 .Orientation = xlDataField
410                 .Caption = "m Soir "
420                 .Function = xlSum
430                 .NumberFormat = "0.0"
440             End With

450             With .DataPivotField
460                 .Orientation = xlColumnField
470                 .Position = 1
480             End With
490             ActiveWorkbook.ShowPivotTableFieldList = False
500       End With

          'Création graphique
510       Set PR = PT.TableRange1
520       Charts.Add after:=Worksheets("TCD")
530       With ActiveChart
540           .ChartType = xlColumnClustered
550           .SetSourceData Source:=PR, PlotBy _
                  :=xlColumns
560           .Location Where:=xlLocationAsNewSheet
570           .Name = "Graphique_1"
580           .SetElement (msoElementDataTableWithLegendKeys)
590           .DataTable.ShowLegendKey = False
600           .ShowLegendFieldButtons = False
610           .ShowValueFieldButtons = False
620           .ChartStyle = 10
630           .ApplyDataLabels Type:=xlDataLabelsShowValue
640           .HasLegend = False
              'Mise en forme graphique série valeurs "Matin"
650           pts = .SeriesCollection(1).DataLabels.Count
660           For i = 1 To pts
670               valeur = .SeriesCollection(1).Points(i).DataLabel.Text
680               Select Case CDbl(valeur)
                      Case Is <= 4
690                       temp = rgbYellow
700                  Case Is <= 8
710                       temp = rgbBlue
720                   Case Is <= 10
730                       temp = rgbYellow
740                   Case Else
750                       temp = rgbRed
760                   End Select
770                   .SeriesCollection(1).Points(i).Format.Fill.ForeColor.RGB = temp
780           Next
790           .SeriesCollection(1).DataLabels.Delete
              'Mise en forme graphique série valeurs "Soir"
800           pts = .SeriesCollection(2).DataLabels.Count
810           For i = 1 To pts
820               valeur = .SeriesCollection(2).Points(i).DataLabel.Text
830               Select Case CDbl(valeur)
                      Case Is <= 4
840                       temp = rgbYellow
850                  Case Is <= 8
860                       temp = rgbBlue
870                   Case Is <= 10
880                       temp = rgbYellow
890                   Case Else
900                       temp = rgbRed
910                   End Select
920                   .SeriesCollection(2).Points(i).Format.Fill.ForeColor.RGB = temp
930           Next
940           .SeriesCollection(2).DataLabels.Delete

              'Mise en forme graphique série moyenne mobile "Matin"
950           With .SeriesCollection(3)
960               .ChartType = xlLineStacked
970               .Smooth = True
980               With .Format.Line
990                   .ForeColor.RGB = rgbGreen
1000                  .Weight = 2
1010              End With
1020              .DataLabels.Delete
1030          End With

              'Mise en forme graphique série moyenne mobile "Soir"
1040          With .SeriesCollection(4)
1050              .ChartType = xlLineStacked
1060              .Smooth = True
1070              With .Format.Line
1080                  .ForeColor.RGB = rgbBlack
1090                  .Weight = 2
1100              End With
1110              .DataLabels.Delete
1120          End With

1130          .HasTitle = True
1140          With .ChartTitle
1150              .Text = "Mesure glycémie " & Worksheets(1).Name
1160          End With
1170      End With

1180      Worksheets("TCD").Visible = xlSheetHidden
1190      Set Plage = Nothing: Set PTCache = Nothing: Set PT = Nothing: Set PR = Nothing

1200      Application.DisplayAlerts = True

End Sub
164glycemie-v1.xlsm (44.01 Ko)

Effectivement, ca ne fonctionne pas sous mon Excel 2007... Quand j'appuie sur CTRL-Q, j'ai le message suivant:

==============

ERREUR DE COMPILATION

Membre de methode ou de donnée introuvable

==============

Et j'ai cette ligne qui est en surligné:

600 .ShowLegendFieldButtons = False

Je vais essayer de voir si le portable de ma conjointe possede Excel 2010.

Rambytes a écrit :

Whoa!!!! C'est genial! J'aime cette facon d'afficher...

Mais par contre il y a quelques erreurs.

Par exemple, si le matin j'ai une valeur de 3, la 2e cellule sera en négatif.

De plus le problème restera toujours pareil, c'est de faire le graphique pour les DEUX... c'est a ce moment que le probleme «d'espace» inégale est présent.

on peut corriger la formule.Si tu veux je te le fais

et tupeux ajouter une colonne pleine de zéros pour avoir un espace

Rechercher des sujets similaires à "graphique diabetique"