XL 2013 Changer l'échelle de l'axe vertical selon le paramétre sélectionné

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

snoo

XLDnaute Nouveau
Bonjour,
Svp, je voudrais savoir lorsqu'on insère un graphique pour des résultats de plusieurs paramètres qui sont déjà les paramètres) dans un tableau avec liste déroulante, est ce qu'il est possible de définir les valeurs min et Max de l'axe vertical en fonction du paramètre sélectionné et qu'en changeant de paramètres les valeurs min max changent .
J'ai essayé mais lorsque je change de paramètres les valeurs restent les mêmes du dernier paramètres dont j'ai configurer les valeurs ..
Merci pour votre aide
 
Bonjour,

Exemple, remplacez le nom du graphique par le votre et les valeurs 100 et 1000 par vos paramètres
VB:
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.Axes(xlValue).MinimumScale = 100
    ActiveChart.Axes(xlValue).MaximumScale = 1000
Cdlt
 
Bonjour,

Exemple, remplacez le nom du graphique par le votre et les valeurs 100 et 1000 par vos paramètres
VB:
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.Axes(xlValue).MinimumScale = 100
    ActiveChart.Axes(xlValue).MaximumScale = 1000
Cdlt
Bonsoir, Merci beaucoup de m'avoir répondu , j'ai mis des formules dans les cellules pour obtenir des valeurs dans l'intervalle voulues qu'ils soient min et max (à chaque fois fois que je change de paramètres ,ils changent) et j'ai essayé avec ce code mais modifié au lieu de mettre 100 par exemple j'ai mis "range la référence de la cellule.value" ,mais ça n'a pas marché!?
Le problème c'est que sur l'axe vertical il m'affiche toujours le point de départ 0 alors que je voudrais qu'il suit le code du min déjà mentionné
Cordialement
 
Bonjour,
Avez-vous fait comme ceci ?
VB:
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.Axes(xlValue).MinimumScale = Range("F2").Value
    ActiveChart.Axes(xlValue).MaximumScale = Range("F1").Value

Avec le fichier en exemple, modifiez les valeurs en F1 ou F2

Cdlt
 

Pièces jointes

Bonjour ,
Merci pour votre réponse
Oui j'a suivi le code que vous m'avez présenté ,Pour le graphique 1 du paramètre 1 ça a marché , le problème que lorsque je change de paramètre les valeurs de l'axe vertical restent fixe sur les valeurs min / max du paramètre 1. Vous trouverez ci-joint les images pour que vous ayez une idée clair de la situation.

Pour le graphique 2, j'ai modifié le code du graphique 1, je sais pas si c'est correcte (le code ci dessous en fichier joint)

Merci beaucoup

Cordialement
 

Pièces jointes

  • code .jpg
    code .jpg
    106.4 KB · Affichages: 18
  • essai graphique 1 vis graphique 2 parametre 3.jpg
    essai graphique 1 vis graphique 2 parametre 3.jpg
    265.4 KB · Affichages: 13
  • essai graphique 1 vis graphique 2 parametre 1.jpg
    essai graphique 1 vis graphique 2 parametre 1.jpg
    169.9 KB · Affichages: 13
  • essai graphique 1 vis graphique 2 parametre 2.jpg
    essai graphique 1 vis graphique 2 parametre 2.jpg
    235.4 KB · Affichages: 13
Chez moi tout marche bien, le code peut s'écrire aussi comme ceci:
VB:
Private Sub Worksheet_Change1(ByVal Target As Range)
    If Not Intersect(Target, Range("O15:O16")) Is Nothing Then
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.Axes(xlValue).MinimumScale = Range("O15").Value
        ActiveChart.Axes(xlValue).MaximumScale = Range("O16").Value
    ElseIf Not Intersect(Target, Range("R15:R16")) Is Nothing Then
        ActiveSheet.ChartObjects("Graphique 2").Activate
        ActiveChart.Axes(xlValue).MinimumScale = Range("R15").Value
        ActiveChart.Axes(xlValue).MaximumScale = Range("R16").Value
    End If
End Sub

Est-ce qu'avec le fichier joint cela fonctionne? Sinon pouvez-vous déposer votre fichier allégé?
 

Pièces jointes

Chez moi tout marche bien, le code peut s'écrire aussi comme ceci:
VB:
Private Sub Worksheet_Change1(ByVal Target As Range)
    If Not Intersect(Target, Range("O15:O16")) Is Nothing Then
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.Axes(xlValue).MinimumScale = Range("O15").Value
        ActiveChart.Axes(xlValue).MaximumScale = Range("O16").Value
    ElseIf Not Intersect(Target, Range("R15:R16")) Is Nothing Then
        ActiveSheet.ChartObjects("Graphique 2").Activate
        ActiveChart.Axes(xlValue).MinimumScale = Range("R15").Value
        ActiveChart.Axes(xlValue).MaximumScale = Range("R16").Value
    End If
End Sub

Est-ce qu'avec le fichier joint cela fonctionne? Sinon pouvez-vous déposer votre fichier allégé?
Re bonjour,
Merci ça a marché, je me suis aperçu qu'il fallait toujours cliquer sur entrée pour un faire un rafraîchissement des valeurs min et max après avoir changer de paramètres , Svp, y'aurait il un code pour que le rafraîchissement soit fait automatiquement?
Merci beaucoup
Cordialement
 
la macro est faite pour réagir aux changements de valeurs dans les zones concernées, à condition qu'elle soit bien dans le module de la feuille.
Petit problème j'ai oublié d'enlever le 1 dans le nom de la macro, supprimez-le.
Private Sub Worksheet_Change1(ByVal Target As Range)
 
la macro est faite pour réagir aux changements de valeurs dans les zones concernées, à condition qu'elle soit bien dans le module de la feuille.
Petit problème j'ai oublié d'enlever le 1 dans le nom de la macro, supprimez-le.
Private Sub Worksheet_Change1(ByVal Target As Range)
J'ai enlevé 1, il m'affiche cet erreur en fichier joint!
Merci
 

Pièces jointes

  • code erreur.png
    code erreur.png
    52.1 KB · Affichages: 17
Oui , j'avais laissé la macro initiale de snoo, et ajouté la modif en dessous, sauf que j'ai oublié de supprimer celle de snoo, mais bon, le message d'alerte était suffisamment clair pour comprendre qu'il fallait en supprimer une des deux.
 
Oui , j'avais laissé la macro initiale de snoo, et ajouté la modif en dessous, sauf que j'ai oublié de supprimer celle de snoo, mais bon, le message d'alerte était suffisamment clair pour comprendre qu'il fallait en supprimer une des deux.
Re,
Oui merci,
Mais ça persiste, à chaque fois que je change le paramètre ça ne change pas directement les valeurs de l'axe ça change après avoir cliquer sur entrée au niveau d'une cellule soit min ou max pour les deux graphiques.
Merci
Cordialement
 
- 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
4
Affichages
990
Retour