Création d'un diagramme avec valeurs min et max et ordonnées non linéaires
Bonjour,
Je n'arrive pas à trouver dans excel la bonne façon de faire un diagramme avec valeurs min et max avec deux catégories (émission et réception) pour chaque étiquette (un animal). De plus, j'aimerais que l'échelle ne soit pas linéaire pour plus de lisibilité. J'ai fait une copie d'écran dans le fichier excel de ce que j'aimerais reproduire, mais en plus beau :)
Merci pour votre aide.
Olivier
Bonjour,
Ce que vous demandez n'est pas possible avec les graphiques disponibles, à moins que les versions les plus récentes le permettent, mais je l'ignore.
Je vous propose ceci, un graphique fait maison mais dont les barres sont dans le prolongement de chaque donnée. Voici ce que ça donne:
le fichier, il suffit de cliquer sur le bouton "Fréquence en KHZ (graphique)" pour le rafraîchir
le code utilisé:
Option Explicit
Sub Graphique()
Dim Largeur_Col As Double
Dim Valeur_Min As Double, Valeur_Max As Double, Pos_Min As Double, Pos_Max As Double
Dim Val_Min As Double, Val_Max As Double, x As Double
Dim Val_Dec_Min As Double, Val_Dec_Max As Double
Dim Bord_Gauche As Double, Bord_Droit As Double
Dim Val_Ent_Min As Long, Val_Ent_Max As Long, ValeurSuivante As Long
Dim DerLig As Long, i As Long, Col_Min_Min As Long, Col_Min_Max As Long, Col_Max_Max As Long
Dim Butee_Basse_Min As Long, Butee_Haute_Min As Long, Butee_Basse_Max As Long, Butee_Haute_Max As Long
Dim Pos_Butee_basse_min As Long, Pos_Butee_haute_min As Long, Pos_Butee_basse_max As Long, Pos_Butee_haute_max As Long
Dim Img As Object
Application.ScreenUpdating = False
DerLig = Range("B" & Rows.Count).End(xlUp).Row
'Forçage de la largeur de colonne à 8.43 et hauteur de ligne à 12.75, ceci pour avoir la même régulartité dans l'affichage des barres
Columns("F:O").ColumnWidth = 8.43
Rows("2:" & DerLig).RowHeight = 12.75
'Destruction de toutes les barres graphiques existantes
For Each Img In ActiveSheet.Shapes
If Left(Img.Name, 9) = "Rectangle" Then Img.Delete
Next
'Création des nouvelles barres graphiques
For i = 2 To DerLig
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 10, 10, 10, 10).Name = "Rectangle " & i - 1
Val_Min = Cells(i, "C")
Val_Max = Cells(i, "D")
'délimitation de la valeur minimum
Col_Min_Min = Application.Match(Val_Min, Range("A1:O1"), 1) 'colonne de la butée basse à laquelle appartient la valeur mini
Butee_Basse_Min = Cells(1, Col_Min_Min) 'butée basse à laquelle appartient la valeur mini
Butee_Haute_Min = Cells(1, Col_Min_Min + 1) 'butée haute à laquelle appartient la valeur mini
Pos_Butee_basse_min = Cells(1, Col_Min_Min).Left 'position du bord gauche de la cellule de la valeur mini
Pos_Butee_haute_min = Cells(1, Col_Min_Min + 1).Left 'position du bord droit de la cellule de la valeur mini
x = (Val_Min - Butee_Basse_Min) / (Butee_Haute_Min - Butee_Basse_Min) 'déterminer la position du point entre les 2 butées
Bord_Gauche = Pos_Butee_basse_min + (x * 48) '48= nombre de pixels pour une largeur de colonne de 8.43
'délimitation de la valeur maximum
Col_Min_Max = Application.Match(Val_Max, Range("A1:O1"), 1) 'colonne de la butée haute à laquelle appartient la valeur maxi
Butee_Basse_Max = Cells(1, Col_Min_Max) 'butée basse à laquelle appartient la valeur maxi
Butee_Haute_Max = Cells(1, Col_Min_Max + 1) 'butée haute à laquelle appartient la valeur maxi
Pos_Butee_basse_max = Cells(1, Col_Min_Max).Left 'position du bord gauche de la cellule de la valeur maxi
Pos_Butee_haute_max = Cells(1, Col_Min_Max + 1).Left 'position du bord droit de la cellule de la valeur maxi
x = (Val_Max - Butee_Basse_Max) / (Butee_Haute_Max - Butee_Basse_Max) 'déterminer la position du point entre les 2 butées
Bord_Droit = Pos_Butee_basse_max + (x * 48) '48= nombre de pixels pour une largeur de colonne de 8.43
'Placement et couleur
With ActiveSheet.Shapes("Rectangle " & i - 1)
.Top = Cells(i, "B").Top + 2
.Left = Bord_Gauche
.Height = Cells(i, "B").Height - 4
.Width = Bord_Droit - Bord_Gauche
If i Mod 2 = 0 Then
.OLEFormat.Object.Interior.Color = RGB(118, 113, 113)
Else
.OLEFormat.Object.Interior.Color = RGB(197, 90, 17)
End If
End With
Next i
End SubCdlt
bonjour, avec les graphiques disponibles (quick and dirty)
bonjour, même avec un axe à choisir ... (quick et dirty)
un grand merci à vous deux, c'est top ! Bravo
Bonjour,
j'ai repris ma proposition afin d'améliorer l'esthétique de la présentation,
-affichage des barres en 3D avec un dégradé de couleurs.
-La zone des titres des fréquences est aussi traitée avec un dégradé de couleurs, bleue(basse fréquence) à rouge (hautes fréquences)
-Ajout des étiquettes des valeurs encadrant les barres .
Le rendu:
le fichier
Cdlt
waw, impressionnant !