Échelles d'un garphique = valeur de cellules

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

MisterT

XLDnaute Occasionnel
Bonjour à chacun,

Comment faire une macro pour que les valeurs des échelles X et Y d'un graphique varient en fonction de valeurs de cellules ?

Merci à celui qui prendra temps et connaissances pour m'aider !

MisterT 🙂
 
Re : Échelles d'un garphique = valeur de cellules

Bonsoir
tu peux tester cela :
HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("b12,b14")) Is Nothing Then

    ActiveSheet.ChartObjects(1).Activate
    With ActiveChart.Axes(xlValue)
        .MinimumScale = Range("B12").Value
        .MaximumScale = Range("B14").Value
    End With
End If
End Sub
a mettre en faisant un click droit sur l'onglet et visualiser le code,
 
Re : Échelles d'un garphique = valeur de cellules

Merci beaucoup CB60,

Si je comprends bien, la réponse est pour l'axe des X (valeur min et max) et j'ai seulement à ajuster le code pour l'axe des Y, est-ce cela ?

Merci,

MisterT 🙂
 
Re : Échelles d'un garphique = valeur de cellules

Re
Pour les X et les Y
HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("b12:b14")) Is Nothing Then
 
    ActiveSheet.ChartObjects(1).Activate
    With ActiveChart
        .Axes(xlValue).MinimumScale = Range("B12").Value
        .Axes(xlValue).MaximumScale = Range("B14").Value
        .Axes(xlCategory).MinimumScale = Range("B16").Value
        .Axes(xlCategory).MaximumScale = Range("B18").Value
 
    End With
End If
End Sub
 
Dernière édition:
Re : Échelles d'un garphique = valeur de cellules

Bonjour CB69,

J'ai fait le test et rien n'a changé dans le graphique.

J'ai aussi ajusté les #de cellules en fonction de la réalité comme suit;

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("K5;C25;F25") Is Nothing Then
 
    ActiveSheet.ChartObjects(1).Activate
    With ActiveChart
        .Axes(xlValue).MinimumScale = 0
        .Axes(xlValue).MaximumScale = Range("K5").Value
        .Axes(xlCategory).MinimumScale = Range("C25").Value
        .Axes(xlCategory).MaximumScale = Range("F25").Value
 
    End With
End If
End Sub

1) Est-ce que le fait d'avoir déjà des valeurs Min et Max d'entrée dans l'échelle du graphique empêche les changements reliés aux valeurs de cellules ?

2) Comment le code pourrait être ajusté pour simplement être intégré dans une autre Macro ?

Merci et bonne journée !

MisterT 🙂
 
Re : Échelles d'un garphique = valeur de cellules

Bonjour CB60,

Tout d'abord merci infiniment de prendre le temps de m'aider en créant le code approprié à mon besoin !

J'ai préparé un fichier montrant la réelle disposition des cellules contenant les nombres inclus dans le graphique, il est joint.

Quelques détails utiles sont inscrits au côté du graphique.

Merci encore CB60 !

MisterT 🙂
 

Pièces jointes

Re : Échelles d'un garphique = valeur de cellules

Bonjour
tu ne peux pas imposer une valeur sur l'axe des X sur un graph ligne, la je t'ai mis un nuage de point et adapter la macro
 

Pièces jointes

Re : Échelles d'un garphique = valeur de cellules

Bonjour CB60,

Merci beaucoup, c'est vraiment excellent et très gentil !

1) Est-il possible d'intégrer la formule en "K7" directement dans le code ?

2) Si c'est NON à la 1ère question et que pour mon besoin je place cette formule en "B38", comment modifier la ligne de code ?;
Code:
If Not Application.Intersect(Target, Range("K5:K8")) Is Nothing Then

3) Pour la valeur minimum des Y, j'ai oublié de mentionner qu'il ne faudrait pas tenir compte des valeurs ZÉRO dans les 4 séries, mais ces cellules de valeur ZÉRO sont importantes à faire partie des séries puisqu'elles contiennent des formules et changeront de valeur éventuellement, comment faire ?

J'ai très peu de connaissance en VBA et j'apprécie grandement ton aide !

Merci,

MisterT🙂
 
Re : Échelles d'un garphique = valeur de cellules

Bonjour CB60,

Le code est bon et j'ai trouvé pourquoi ça ne fonctionne pas avec mon fichier complet mais j'ignore la solution.

Le problème est le suivant;
C'est la "Feuille WELCOME" qui est sélectionnée et c'est sur celle-ci que se font les opérations qui provoqueront des changements de valeurs dans la "Feuille Calcul" qui contient le graphique.

Cette "Feuille Calcul" qui contient le graphique n'est consultée seulement qu'après.

Donc, je crois que le code dans la "Feuille Calcul" qui contient le graphique attend qu'un changement s'effectue directement dans cette même feuille pour ajuster les échelles Min et Max du graphiques.

Est-ce que cela a du sens ?

Voici le code;
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("J37:K37")) Is Nothing Then
 
    ActiveSheet.ChartObjects(1).Activate
    With ActiveChart
        .Axes(xlValue).MinimumScale = Range("J37").Value
        .Axes(xlValue).MaximumScale = Range("K37").Value
        .Axes(xlCategory).MinimumScale = 0
        .Axes(xlCategory).MaximumScale = Range("k5").Value + 1
        .Axes(xlCategory).MajorUnit = 1
    End With
End If
End Sub

Quel serait l'ajustement de code pour solutionner cela ?

Merci encore et bonne journée !

MisterT🙂
 
Re : Échelles d'un garphique = valeur de cellules

Bonjour
tu peux faire quelque chose comme ça:
HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("J37:K37")) Is Nothing Then
 
Sheets("Calcul").ChartObjects(1).Activate
With ActiveChart
.Axes(xlValue).MinimumScale = Range("J37").Value
.Axes(xlValue).MaximumScale = Range("K37").Value
.Axes(xlCategory).MinimumScale = 0
.Axes(xlCategory).MaximumScale = Range("k5").Value + 1
.Axes(xlCategory).MajorUnit = 1
 
End With
End If
Sheets("Welcome").Activate
Application.ScreenUpdating = True
End Sub
 
Re : Échelles d'un garphique = valeur de cellules

Bonjour CB60,

Merci pour l'ajustement du code !

Ça fonctionne mais la Feuille WELCOME FLASH beaucoup et le délai des calculs est augmenté.

1) Est-ce qu'il y a un ajustement au code qui ferait en sorte que les échelles du graphique s'ajustent seulement lorsque la Feuille du graphique est sélectionnée ?
----------

2) Comme tu me semble expert en graphiques, y a-t-il un moyen que les valeurs ZÉRO de cellules avec formules n'apparaissent pas dans le graphique ?
----------

Les points 1) et 2) sont les derniers ajustements à faire pour solutionner mon histoire de graphique...

Merci une fois de plus CB60 !

MisterT🙂
 
Re : Échelles d'un garphique = valeur de cellules

re
Efface la macro de ta feuille de donnée.
vas sur ta feuille ou se trouve ton graph
fais un click droit sur l'onglet
visualiser le code et colle cette macro:
HTML:
Private Sub Worksheet_Activate()
Sheets("Calcul").ChartObjects(1).Activate
With ActiveChart
    .Axes(xlValue).MinimumScale = Sheets("ta feuille de donnée").Range("J37").Value
    .Axes(xlValue).MaximumScale = Sheets("ta feuille de donnée").Range("K37").Value
    .Axes(xlCategory).MinimumScale = 0
    .Axes(xlCategory).MaximumScale = Sheets("ta feuille de donnée").Range("k5").Value + 1
    .Axes(xlCategory).MajorUnit = 1
End With
End Sub
Pour le point deux je ne comprend pas ce que tu souhaite

edit j'ai oublié de faire référence à ta feuille de donnée
 
Dernière édition:
Re : Échelles d'un garphique = valeur de cellules

Bonjour CB60,

Merci beaucoup pour ton aide et ta patience !

En fait l'édit n'était pas nécessaire car les cellules J37, K37 et K5 se trouvent sur la feuille Calcul avec le Graphique.

Ça fonctionne très bien lorsque je sélectionne la Feuille Calcul, tout s'exécute à merveille tel que demandé, sauf lorsque je suis sur la feuille WELCOME et lance des macros qui modifient des valeurs dans la Feuille Calcul avec Graphique, une Macro bloque créant une incompatibilité de Type, ce qui n'arrivait pas auparavant.

Si tu as une idée, c'est la bienvenue. Je sais que ce n'est pas très évident sans le fichier complet devant soi. Je ne peux le fournir.
--------------

Le point 2) est qu'il y a une série de cellules pour le graphique dont les 2 dernières cellules ont parfois la valeur ZÉRO et le graphique montre ainsi 2 points qui descendent directement au bas, ce qui n'est pas très esthétique.

Comme ces 2 cellules contiennent des formules qui parfois donnent le résultat ZÉRO, rien ne sert de changer les options du graphique (Selectionner Graph puis Outils-Options-Graphique), mais je voudrais que ces ZÉRO ne soient pas tracés.

Est-ce qu'il y a un moyen de faire cela ?

Merci,

MisterT🙂
 
Dernière édition:
- 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
2
Affichages
181
Retour