Agencement de graphique par macro

Kobal

XLDnaute Junior
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.
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

kiki29

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

Discussions similaires

Réponses
6
Affichages
298

Statistiques des forums

Discussions
312 069
Messages
2 085 040
Membres
102 763
dernier inscrit
NICO26