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

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
 

Rouge

XLDnaute Impliqué
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
 

snoo

XLDnaute Nouveau
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
 

Rouge

XLDnaute Impliqué
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

  • snoo_Changer l'échelle de l'axe vertical selon le paramétre sélectionné.xlsm
    18.4 KB · Affichages: 9

snoo

XLDnaute Nouveau
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: 12
  • essai graphique 1 vis graphique 2 parametre 3.jpg
    essai graphique 1 vis graphique 2 parametre 3.jpg
    265.4 KB · Affichages: 11
  • essai graphique 1 vis graphique 2 parametre 1.jpg
    essai graphique 1 vis graphique 2 parametre 1.jpg
    169.9 KB · Affichages: 11
  • essai graphique 1 vis graphique 2 parametre 2.jpg
    essai graphique 1 vis graphique 2 parametre 2.jpg
    235.4 KB · Affichages: 11

Rouge

XLDnaute Impliqué
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

  • snoo_Changer l'échelle de l'axe vertical selon le paramétre sélectionné_1.xlsm
    19.5 KB · Affichages: 1

snoo

XLDnaute Nouveau
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
 

Rouge

XLDnaute Impliqué
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)
 

snoo

XLDnaute Nouveau
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: 15

Rouge

XLDnaute Impliqué
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.
 

snoo

XLDnaute Nouveau
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
 

Statistiques des forums

Discussions
311 737
Messages
2 082 030
Membres
101 876
dernier inscrit
JULIEN21370