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