XL 2016 Formattage graphique sur feuille en vba

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

Pacalou95

XLDnaute Nouveau
Bonjour
Au sein d'une boucle VBA, je crée un graphique correspondant à un tableau de valeurs mis à jour par la boucle dans une feuille "Selection". Ce grahique est du type radar, avec plusieurs séries de données correctement créées. Je souhaite mettre ce graphe dans une feuille "Trame" à un emplacement précis et une taille précise. La feuille Trame contient déjà des informations dans d'autres cellules : elle est ensuite sauvegardée en pdf puis doit être effacée pour le prochain traitement. J'ai enlevé les tous les formattages pour plus de clarté et fait une boucle rudimentaire avec deux passages (Index étant l'index de boucle).
J'ai effectué l'opération manuellement et elle se déroule bien mais le code ci-joint ne veut pas fonctionner. L'enregistreur de Macros ne permet pas de placer le graphique créé sur une feuille de calcul de manière explicite.
Quelqu'un aurait une idée ,
Merci d'avance.
 

Pièces jointes

Pour être plus calir rapidement, le code de la macro :
VB:
Sub TraceTest()
Dim feuilleData, feuilleTrame As Worksheet
Dim Emplacement As Range
Dim i, Index, NbFiches, NbPoints As Integer
Dim NomFichier As String
    Set feuilleData = ActiveWorkbook.Sheets("Selection")
    Set feuilleTrame = ActiveWorkbook.Sheets("Trame")
    NbFiches = 2                ' nombre de passages dans la boucel
    NbPoints = 8                ' nombre de points par série
For Index = 1 To NbFiches
'---------------------------------------------------------------------------------------------
' Calcul test des données à tracer
    For i = 1 To NbPoints
        feuilleData.Cells(2, i) = i / NbPoints
        feuilleData.Cells(3, i) = Index
    Next i
'---------------------------------------------------------------------------------------------
' intialisation de la feuille de destination
    feuilleTrame.Activate
    feuilleTrame.Cells(1, 4) = "Numéro : "
    feuilleTrame.Cells(1, 5) = Index
'---------------------------------------------------------------------------------------------
' création du graphique
    Charts.Add
    With ActiveChart
        .ChartType = xlRadarMarkers
        .Name = "RadarTest"
        .SetSourceData Source:=Sheets("Selection").Range("A1:H1,A2:H2,A3:H3"), PlotBy:=xlRows
        .FullSeriesCollection(1).Name = "=""année 1"""      ' série 1
        .FullSeriesCollection(2).Name = "=""année 2"""      ' série 2
    End With
'----------------------------------------------------------------------------------------------
' emplacement
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Trame"  ' position du tracé
    feuilleTrame.Activate
    Set Emplacement = Range("A9:H28")       ' emplacement où doit arriver le graphique sur Trame
    With ActiveSheet.ChartObjects(1)
        .Left = Emplacement.Left
        .Top = Emplacement.Top
        .Height = Emplacement.Height
        .Width = Emplacement.Width
    End With
'----------------------------------------------------------------------------------------------
' enregistrement
    NomFichier = "D:\Export\FichierTest" & Index
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=NomFichier & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
'----------------------------------------------------------------------------------------------
' nettoyage
    ActiveChart.Delete
    feuilleTrame.Activate
    Cells.Select
    Selection.Delete Shift:=xlUp

Next Index
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

Discussions similaires

Retour