Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

  • Initiateur de la discussion Initiateur de la discussion bast0504
  • Date de début Date de début

bast0504

XLDnaute Occasionnel
Bonjour

je voudrais savoir s'il existerait une macro permettant d'aligner tous les graphiques d'un fichier et de les mettre à la même taille (par exemple similaire à la taille du graphique France de mon fichier ci joint)

Merci
Cdt
 

Pièces jointes

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Bonjour bast,

avec ceci:
Code:
For i = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(i).Select
ActiveSheet.ChartObjects(i).Left = (i - 1) * 240
ActiveSheet.ChartObjects(i).Height = 120
ActiveSheet.ChartObjects(i).Width = 240
ActiveSheet.ChartObjects(i).Top = 250
Next i

voir fichier joint, j'ai volontairement déplacé et étiré les graphes
il suffit de cliquer sur le bouton pour remettre un peu d'ordre

à+
Philippe
 

Pièces jointes

bast0504

XLDnaute Occasionnel
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Bonjour,


Merci Laurent pour cette réponse fonctionnelle

Comment aligner ces graphiques à partir d'une ligne ou cellule précise ?

De plus comment éviter que les graph s'alignent uniquement sur une seule ligne et faire en sorte d'en mettre 4 par ligne ?

Merci
 

mromain

XLDnaute Barbatruc
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Bonjour bast, Philippe

Voici un autre essai :
VB:
Private Const EspaceHorizontal As Long = 10
Private Const EspaceVertical As Long = 10
Private Const nbGraphParLigne As Long = 4

Sub test()
Dim graphFr As ChartObject, curGraph As ChartObject, nbGraph As Long, decalLigne As Long, decalCol As Long
    Set graphFr = ThisWorkbook.Sheets("Feuil1").ChartObjects("Graphique 1")
    nbGraph = 1
    With graphFr
        For Each curGraph In .Parent.ChartObjects
            If curGraph.Name <> .Name Then
                nbGraph = nbGraph + 1
                decalCol = (nbGraph - 1) Mod nbGraphParLigne
                decalLigne = Int((nbGraph - 1) / nbGraphParLigne)
                curGraph.Width = .Width
                curGraph.Height = .Height
                curGraph.Left = decalCol * (.Width + EspaceHorizontal) + .Left
                curGraph.Top = decalLigne * (.Height + EspaceVertical) + .Top
            End If
        Next curGraph
    End With
End Sub

A+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Re,

voici, il y a actuellement 18 graphes sur la feuille dans le désordre le plus total et de dimensions différentes
cliquer sur le bouton pour y mettre de l'ordre

à+
Philippe

Edit: bonjour Romain
 

Pièces jointes

Dernière édition:

bast0504

XLDnaute Occasionnel
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Bonjour

Merci Laurent et Romain pour vos réponses

Laurent je ne comprends pas très bien le système de graduation utilisé. A quoi correspond le 100 attribué à dessus ?

De plus admettons que je trouve la taille du graphe que je souhaite (en ajustant la taille avec ma souris) ou trouver les mesures afin d'alimenter le code vba ?

Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Re- bonjour
A quoi correspond le 100 attribué à dessus ?
c'est la position du dessus du graphe exprimée en pixels par rapport au bord supérieur de la feuille


ou trouver les mesures afin d'alimenter le code vba ?
voir fichier joint
il suffit de modifier manuellement les hauteur, largeur et position sur la feuille et ensuite cliquer sur le bouton pour afficher les infos voulues

à+
Philippe
 

Pièces jointes

bast0504

XLDnaute Occasionnel
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Bonjour PhLaurent pour ces éléments qui fonctionnent.

Cependant je viens de me rendre compte qu'Excel n'aligne pas les graphiques comme je le veux. Apparemment il suit la numérotation donnée dans les titres des graphiques ce qui ne correspond pas à l'ordre que je veux donner.

Est il possible d'aligner ces graph en gardant la disposition pré-établit dans mon fichier ?

Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro Aligner et ajusterà la même taille tous les graphiques d'un fichier

Re,

Est il possible d'aligner ces graph en gardant la disposition pré-établit dans mon fichier ?
A partir du moment où tous les graphes sont construits (créés) dans l'ordre voulu, la macro les alignera dans l'ordre de la création

à+
Philippe
 

Discussions similaires

Réponses
15
Affichages
1 K
Réponses
5
Affichages
211