(RESOLU) Graphique avec lignes max mini

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

LBi

XLDnaute Junior
Bonjour,

Peut-on ajouter 2 lignes horizontales en pointillé ou en couleur comme sur le graphique B de l'image (ajouté à la main sur l'image pour l'explication) pour suggérer la plage des valeurs normales quand la normale est comprise entre 2 valeurs ou 1 ligne quand la normale est "inf à"

Le graphique A est obtenu par une macro écrite par @job75

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ChartObjects(1).Visible = False 'masque le graphique
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 2 Or Target.Row < 4 Then Exit Sub
Dim c As Range, v, n%, a(), b(), Lmax%
Cancel = True
For Each c In Intersect(Rows(3), UsedRange)
v = Cells(Target.Row, c.Column)
If IsDate(c) And v <> "" Then
n = n + 1
ReDim Preserve a(1 To n): ReDim Preserve b(1 To n)
a(n) = c.Text
b(n) = v
If Len(v) > Lmax Then Lmax = Len(v)
End If
Next
If n = 0 Then Exit Sub
Unprotect 'déprotection, mot de passe à adapter
ThisWorkbook.Names.Add "X", a 'nom défini
ThisWorkbook.Names.Add "Y", b 'nom défini
With ChartObjects(1)
.Top = Target(2, 1).Top
.Left = Columns(6).Left
.Width = Columns(6).Resize(, 4 * n).Width
With .Chart.SeriesCollection(1)
.Name = Target(1)
.XValues = "='" & ThisWorkbook.Name & "'!X" 'abscisses
.Values = "='" & ThisWorkbook.Name & "'!Y" 'ordonnées
.MarkerSize = 14 + 3 * Lmax 'taille des marqueurs
End With
.Visible = Not .Visible 'affiche/masque le graphique
End With
Protect 'protection, mot de passe à adapter
End Sub


Merci

Capture45.JPG
 

Pièces jointes

Bonsour®
Bonjour,

Peut-on ajouter 2 lignes horizontales en pointillé ou en couleur comme sur le graphique B de l'image (ajouté à la main sur l'image pour l'explication) pour suggérer la plage des valeurs normales quand la normale est comprise entre 2 valeurs ou 1 ligne quand la normale est "inf à"
🙄 plutot que des lignes horizontales ,la proposition tenant compte des variations des limites selon les dates :
https://www.excel-downloads.com/attachments/tableau-biologique-4-bis-1-xlsm.1016131/
n'est-elle pas explicite ?
 
Bonjour,

@Modeste geedee

Le premier graphique avec les lignes Min Max est plus parlant pour moi.

- le fait de prendre en compte le temps est une bonne idée avec des espaces différents entres les données suivant les dates mais il faudrait que seule les dates d’examen soient prise en compte, sans l'affichage des dates intermédiaires. Possible ou pas sur mon graphique ?

Mes souhaits...
- Texte des étiquettes de données en noir au dessus des pastilles et qu'il se mette en rouge si en dehors des normales.
- Pouvoir changer les paramètres des lignes Min Max (couleur, transparence,pointillé ...) ainsi que d'autres paramètres que je voudrais affiner.
- Y a t'il une liste de paramètres généraux pour pouvoir adapter le style des graphiques en vba ?
- Ou dois-je les insérer dans la macro ( je pense que ce doit être dans la boucle With .Chart.SeriesCollection(1) )

Merci de vos retours

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ChartObjects(1).Visible = False 'masque le graphique
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 2 Or Target.Row < 4 Then Exit Sub
Dim c As Range, v, v1, v2, n%, a(), b(), b1(), b2(), Lmax%
Cancel = True
For Each c In Intersect(Rows(3), UsedRange)
v = Cells(Target.Row, c.Column)
v1 = Cells(Target.Row, c.Column + 1)
v2 = Cells(Target.Row, c.Column + 3)
If IsDate(c) And v <> "" Then
n = n + 1
ReDim Preserve a(1 To n): ReDim Preserve b(1 To n)
ReDim Preserve b1(1 To n): ReDim Preserve b2(1 To n)
a(n) = c.Text
b(n) = v: b1(n) = v1: b2(n) = v2
If Len(v) > Lmax Then Lmax = Len(v)
End If
Next
If n = 0 Then Exit Sub
Unprotect 'déprotection, mot de passe à adapter
ThisWorkbook.Names.Add "X", a 'nom défini
ThisWorkbook.Names.Add "Y", b 'nom défini
ThisWorkbook.Names.Add "BorneInf", b1 'nom défini
ThisWorkbook.Names.Add "BorneSup", b2 'nom défini
With ChartObjects(1)
.Top = Target(2, 1).Top
.Left = Columns(6).Left
.Width = Columns(6).Resize(, 4 * n).Width
With .Chart.SeriesCollection(1)
.Name = Target(1)
.XValues = "='" & ThisWorkbook.Name & "'!X" 'abscisses
.Values = "='" & ThisWorkbook.Name & "'!Y" 'ordonnées
.MarkerSize = 14 + 3 * Lmax 'taille des marqueurs
End With
With .Chart.SeriesCollection(2)
.Name = "BorneInf"
.XValues = "='" & ThisWorkbook.Name & "'!X" 'abscisses
.Values = "='" & ThisWorkbook.Name & "'!BorneInf" 'ordonnées
End With
With .Chart.SeriesCollection(3)
.Name = "BorneSup"
.XValues = "='" & ThisWorkbook.Name & "'!X" 'abscisses
.Values = "='" & ThisWorkbook.Name & "'!BorneSup" 'ordonnées
End With
.Chart.ChartTitle.Text = Target(1)
.Visible = Not .Visible 'affiche/masque le graphique
End With
Protect 'protection, mot de passe à adapter
End Sub
 
Bonjour,

Merci cela fonctionne.

Je pensais que le graphique étant programmé, il fallait repasser par cette programmation. J'ai juste effacé la ligne ".MarkerSize = 14 + 3 * Lmax 'taille des marqueurs " pour pouvoir réduire les marqueurs ( les étiquettes de données sont au dessus des marqueurs ).

Comme je le disais plus haut ...
Est-il possible de prendre en compte le temps entre les dates et de créer un espace différent entres ces dates sans l'affichage des dates intermédiaires comme sur le deuxième graphique ?

Capture15.JPG


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

Réponses
5
Affichages
237
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Réponses
4
Affichages
243
Retour