Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

boucle sur graphiques d'une feuille

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

J

juju44

Guest
Bonjour à tous,

j'ai souci de programmation :

j'aimerai boucler sur l'ensemble de mes graphiques d'une certaine feuille pour leur appliquer une certaine fonction (mise à l'échelle)

Code:
Sheets(3).ChartObjects(1).Activate
Echelle "Graphique 1", "abs1", "ord1"

Sheets(3).ChartObjects(2).Activate
Echelle "Graphique 2", "abs2", "ord2"
        
Sheets(3).ChartObjects(3).Activate
Echelle "Graphique 3", "abs3", "ord3"


Voila par quoi je voudrai remplacer ces lignes :


Code:
Dim z As Integer
Dim nbgraph As Integer
        
nbgraph = Sheets(3).ChartObjects.Count

For z = nbgraph To 1 Step -1
       Sheets(3).Activate
       Echelle "Graphique " & z, "abs" & z, "ord" & z
Next z

Mais la syntaxe ne semble pas correcte.

Merci d'avance
 
Re : boucle sur graphiques d'une feuille

Merci pour ta réponse :

Voila la procédure échelle :

Code:
Sub Echelle(Graph, abscisses, ordonnees)
    With ActiveSheet.ChartObjects(Graph).Chart.Axes(xlValue)
    Min = Application.Min(Range(ordonnees))
    Max = Application.Max(Range(ordonnees))
    
    If Min < 0 Then
    Min = Application.RoundUp(Min, 2)
    Else
    Min = Application.RoundDown(Min, 2)
    End If
    
    Max = Application.RoundUp(Max, 2)
    
    .CrossesAt = Min
    .MinimumScale = Min
    .MaximumScale = Max
    .MajorUnit = (Max - Min) / 4
    End With
    
    With ActiveSheet.ChartObjects(Graph).Chart.Axes(xlCategory)
    Min = Application.Min(Range(abscisses))
    Max = Application.Max(Range(abscisses))
    
    If Min < 0 Then
    Min = Application.RoundUp(Min, 2)
    Else
    Min = Application.RoundDown(Min, 2)
    End If
    
    Max = Application.RoundUp(Max, 2)

    .CrossesAt = Min
    .MinimumScale = Min
    .MaximumScale = Max
    .MajorUnit = (Max - Min) / 4
    End With
End Sub
 
Re : boucle sur graphiques d'une feuille

Bonsoir,
J'ai qq peu remanié la macro mais rien de fondamental, donc si tu es sûr des plages nommées et du nom des graphiques je ne vois pas où est de pb
Joins un extrait du fichier éventuellement
Code:
Sub MiseEchelle()
Dim z As Byte, nbgraph As Byte 'à moins qu'il y en ait plus de 255 !
nbgraph = Sheets(3).ChartObjects.Count
For z = 1 To nbgraph 'pourquoi boucler à l'envers ?!
    Echelle Sheets(3), "Graphique " & z, "abs" & z, "ord" & z
Next z
End Sub

Sub Echelle(ws As Worksheet, Graph$, abscisses$, ordonnees$)
Dim Min#, Max#
With ws.ChartObjects(Graph).Chart

    Min = Application.Min(Range(ordonnees))
    Max = Application.Max(Range(ordonnees))
    If Min < 0 Then
        Min = Application.RoundUp(Min, 2)
    Else
        Min = Application.RoundDown(Min, 2)
    End If
    Max = Application.RoundUp(Max, 2)
    With .Axes(xlValue)
        .CrossesAt = Min
        .MinimumScale = Min
        .MaximumScale = Max
        .MajorUnit = (Max - Min) / 4
    End With
    
    Min = Application.Min(Range(abscisses))
    Max = Application.Max(Range(abscisses))
    If Min < 0 Then
        Min = Application.RoundUp(Min, 2)
    Else
        Min = Application.RoundDown(Min, 2)
    End If
    Max = Application.RoundUp(Max, 2)
    With .Axes(xlCategory)
        .CrossesAt = Min
        .MinimumScale = Min
        .MaximumScale = Max
        .MajorUnit = (Max - Min) / 4
    End With
    
End With
End Sub
A+
kjin
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
6
Affichages
1 K
mimich_88
M
Réponses
0
Affichages
844
I
  • Question Question
Réponses
8
Affichages
1 K
D
Réponses
3
Affichages
2 K
demonsares
D
S
Réponses
5
Affichages
2 K
A
Réponses
1
Affichages
802
M
Réponses
5
Affichages
3 K
Mathieu69
M
N
  • Question Question
Réponses
5
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…