Agencement de graphique par macro

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

K

Kobal

Guest
Bonjour à tous !
J'ai fait une macro qui importe un tableau d'un autre document, et qui affiche un graphique avec ces données.
Le but est de faire cette opération plusieurs fois à la suite (parce qu'il y a plusieurs tableaux à importer).
Cependant, à l'ajout de graphique, ceux ci se superposent. J'aimerai les décaler, du genre "le haut du nouveau graphique est 2cm sous le bas du dernier graphique".
Connaissez vous une méthode pour faire ça?
Merci d'avance.
 
Re : Agencement de graphique par macro

Bonsoir Kobal

si j'ai bien compris, regarde le code ci dessous :

Code:
Sub test()
With Feuil1.ChartObjects(Feuil1.ChartObjects.Count)
    .Top = Feuil1.ChartObjects(Feuil1.ChartObjects.Count - 1).BottomRightCell.Offset(3, 0).Top
    .Left = Feuil1.ChartObjects(Feuil1.ChartObjects.Count - 1).Left
End With
End Sub

bonne soirée
@+
 
Re : Agencement de graphique par macro

Bonjour Kobal,

petite modification, afin de s'assurer qu'il y a bien au moins 2 graphiques sur la feuille, cela évitera une erreur s'il y en a qu'un seul.

Code:
Option Explicit
Sub test()
Dim c1 As ChartObject, c2 As ChartObject
With Sheets("Feuil1")
    If .ChartObjects.Count > 1 Then
        Set c1 = .ChartObjects(.ChartObjects.Count - 1)
        Set c2 = .ChartObjects(.ChartObjects.Count)
        c2.Top = c1.BottomRightCell.Offset(3, 0).Top
        c2.Left = c1.Left
    End If
End With
End Sub


bonne journée
@+
 
Re : Agencement de graphique par macro

Jour Bon, une autre possibilté ( à adapter ) permet de positionner des graphes dans des Range
Code:
Option Explicit

Sub Graphe()
Dim Emplacement As Range
Dim Graphe As ChartObject
Dim sNomGraphe As String
    .....
    sNomGraphe = ActiveChart.Parent.Name
    Set Emplacement = ShTxt.Range("C4:N28")
    Set Graphe = ShTxt.ChartObjects(sNomGraphe)
    
    With Graphe
        .Left = Emplacement.Left
        .Top = Emplacement.Top
        .Height = Emplacement.Height
        .Width = Emplacement.Width
    End With
    ......
    Set Graphe = Nothing
    Set Emplacement = Nothing
End Sub
 
- 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

L
Réponses
2
Affichages
481
Ludwig74
L
N
Réponses
8
Affichages
2 K
nounou1902
N
B
Réponses
16
Affichages
3 K
bilbinou
B
Retour