XL 2010 Zone d'objectif dans graphique

romubzh35

XLDnaute Occasionnel
Bonjour
comme dans l'exemple en pièce jointe, je souhaiterais savoir comment ajouter une zone qui me sert d'objectif que je voudrais pouvoir afficher dans mon graphique.
Elle me servira à savoir si les horaires sont respectés ou pas.
Pour l'exemple j'ai juste ajouter un rectangle mais je voudrais que cela apparaisse directement dans le graph.
Par la suite j'aimerais également savoir comment faire pour que l’échelle de l'axe des ordonnées soient données par des valeurs rentrées dans un tableau. (voir feuille jointe)
merci d'avance pour votre aide
 

Pièces jointes

  • Zone objectif.xlsx
    307.8 KB · Affichages: 32

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour
comme dans l'exemple en pièce jointe, je souhaiterais savoir comment ajouter une zone qui me sert d'objectif que je voudrais pouvoir afficher dans mon graphique.
Elle me servira à savoir si les horaires sont respectés ou pas.
Pour l'exemple j'ai juste ajouter un rectangle mais je voudrais que cela apparaisse directement dans le graph.
Par la suite j'aimerais également savoir comment faire pour que l’échelle de l'axe des ordonnées soient données par des valeurs rentrées dans un tableau. (voir feuille jointe)
merci d'avance pour votre aide
kenavo Faurecia...:cool:
1 -
ajouter 2 séries : (debut objectif (ligne 14) , fenêtre objectif (ligne(16))
types histogrammes empilés
series sans bordure, sans intervalle,
serie début objectif : inférieure, sans remplissage
serie fenêtre objectif : supérieure, transparence 20%
upload_2016-12-21_17-18-18.png

2-
pour la valeur des axes , obligation de passer par macro ... (utiliser l'enregistreur)
pour éviter des valeurs non affichables,
au lieu de 30 mn par rapport à l'objectif, utiliser 30mn par rapport au max et/ou au min semaine
éventuellement avec arrondi au 1/4 d'heure
 

gonz19

XLDnaute Occasionnel
bonjour,

voici une solution pour la mise en forme des axes.

Code:
Sub Macro1()

Sheets(1).ChartObjects(1).Chart.Axes(xlValue).MinimumScale = Application.WorksheetFunction.RoundUp(Range("b8") - 0.0025, 3)
Sheets(1).ChartObjects(1).Chart.Axes(xlValue).MaximumScale = Application.WorksheetFunction.RoundUp(Application.Max(Range("c8:g12").Value) + 0.0255, 3)

   
End Sub

bonne soirée
 

gonz19

XLDnaute Occasionnel
J'ai trouvé encore mieux je pense avec arrondie des axes

Code:
Sub Macro1()

Sheets(1).ChartObjects(1).Chart.Axes(xlValue).MaximumScale = f(Application.Max(Range("c8:g12").Value) + 0.0225, 5) ' arrondie a 5 min 
Sheets(1).ChartObjects(1).Chart.Axes(xlValue).MinimumScale = f(Range("b8") - 0.0225, 10) ' arrondie a 10min

   
End Sub

Function f(ByVal Dte As Date, ByVal q As Byte) As Double
Dim s As Double
s = q / (24 * 60)
f = s * Int(1 + (Dte - Int(Dte)) / s) '+ Int(Dte) 'Tu enlève +Int(Dte) si tu veux récupérer l'heure sans la date
End Function
 

Discussions similaires

Réponses
6
Affichages
958

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji