Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2008, 15h08   #1
Membre du Club
 
Inscription : février 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 286
Points : 64
Points : 64
Par défaut Echelle Automatique graphique / val mini 0 ou pas

Bonjour à tous,

Ayant du faire face à ce souci, je n'ai pas trouvé de solution simple mais la raison oui, dans microsoft online !

je me demande depuis un moment, sans succès sur les forums, pourquoi certains de mes graphs partent de zéro et d'autres de la valeur mini des mes données à représenter (ce qui augmente la lisibilité)

en fait il y a un paramètre intrinsèque à Excel pour gérer ça, qui est positionné à 14%, donc :
- Si l'écart entre le mini (ex : 6000) et la maxi (ex : 7000) est < 14% alors le mini de l'échelle = point mini (6000)
- Si l'écart entre le mini (ex : 6000) et le maxi (ex : 8000) est >14% alors le mini de l'echelle = 0

Ce qui explique pourquoi on a des graphiques avec echelle automatique qui partent de 0 (ce qui peut tendre à les rendre peu lisibles) et d'autres pas

Donc à moins de paraméterer ses échelles graphiques en VB, c'est ainsi !

et si ça peut aider certains à éviter de chercher...

Cdlt
Laurent
lbar012001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 09h45   #2
Membre du Club
 
Inscription : février 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 286
Points : 64
Points : 64
re-bonjour,
une petite fonction pratique
je la trouve pas mal même si elle peut être encore optimisée
pour une série de X valeurs récupérées
soit MINI = valeur minimum de la série
soit MAXI = valeur MAXI de la série
ECART = MAXI - MINI
L'intérêt est de trouver MINI2, valeur inférieure arrondie de MINI permettant ensuite un bon traçage graphique
Code :
MINI2 = MINI - (MINI mod 10 ^ (Len(ECART) -1))

ne reste plus qu'a attribuer MINI2 comme valeur mini
Code :
.Axes(xlvalue).minimumscale=MINI2
ma fonction complète, qui va maj auto tous les graphs de ma feuille active
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'****************************************
'*   MAJ AUTO DES ECHELLES GRAPHIQUES   *
'****************************************
Sub Graph_Scale_Update()
 
On Error GoTo msg
 
'Variables
Dim ValuesArray(), SeriesValues As Variant
Dim mini, maxi, ecart, mini2 As Long
Dim z, Ctr, TotCtr As Integer
 
'Comptage du nombre de graphiques de la feuille
 z = ActiveSheet.ChartObjects.Count
 
'Alerte si pas de graphique
If z = 0 Then
    MsgBox ("No graphics to update")
    Exit Sub
End If
 
'bouclage des graphiques
For i = 1 To z
 
    'Raz des variables graphiques
    SeriesValues = 0
    TotCtr = 0
    Ctr = 0
 
    With ActiveSheet.ChartObjects(i).Chart
        'Récupération des valeurs de la série
        For Each X In .SeriesCollection
            SeriesValues = X.Values
            ReDim Preserve ValuesArray(1 To TotCtr + UBound(SeriesValues))
            For Ctr = 1 To UBound(SeriesValues)
                ValuesArray(Ctr + TotCtr) = SeriesValues(Ctr)
            Next
            TotCtr = TotCtr + UBound(SeriesValues)
         Next
 
         'Calcul de l'écart mini maxi de la série
         mini = Application.Min(ValuesArray)
         maxi = Application.Max(ValuesArray)
         ecart = maxi - mini
 
         'Détermination de la nouvelle valeur mini fonction de l'écart
         mini2 = mini - (mini Mod 10 ^ (Len(ecart) - 1))
 
         'Atribution du nouveau mini
         .Axes(xlValue).MinimumScale = mini2
 
    End With
Next i
Exit Sub
 
msg:
MsgBox ("ERROR")
 
End Sub
a+
lbar012001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h23.


 
 
 
 
Partenaires

Hébergement Web