Dimension tableau automatique et export PDF VBA
Bonjour à tous,
Je suis nouveau sur le forum, je vais donc tacher de respecter la charte, et vous exposer mon problème de la façon la plus claire et précise possible.
Pour le besoin de mon projet, j'ai utilisé un fichier test "exemple", qui est créé sur le même principe que mon projet personnel. Dans mon projet personnel, les données sont beaucoup plus volumineuses. J'aimerais donc pouvoir appliquer notamment des macro "boucle".
Dans l'exemple, il s'agit du résultat quelconque de 3 équipes, différencié par un n° d'équipe.
Il y a 6 feuilles dans le classeur.
La feuille 1 "résultat" indique simplement les résultat de tout le monde.
La feuille 2 "Synthèse" donne les résultat d'une équipe, avec en cellule (F,5) le numéro d'équipe, qui est modifiable, pour obtenir un graphique différent si on choisi 1 2 ou 3 (les 3 équipes).
-> Vient ma première question :
Je souhaite que mon graphique s'adapte en fonction du nombre de personne dans l'équipe automatiquement,
C'est à dire, qu'il n'y ait pas d'espace blanc sur la droite du graphique.
Pour remédier à ce problème, j'ai créer 3 autres onglets, que j'ai intitulé par le nombre de personne dans chaque équipe.
Ainsi, si je souhaite exporter au format PDF les graphiques des 3 équipes, je dois changer le numéro en feuille "synthèse (F,5), puis changer de feuille pour choisir celle qui correspond au nombre de personne dans l'équipe.
->Ma seconde question dans les conditions actuelles (obliger de changer de feuille pour avoir le bon graphique) :
Je souhaite automatiser l'extraction PDF des différents graphiques.
Cependant, je bloque à un moment dans l'écriture du code :
Sub exppdftest()
Sheets("parametre").Select
Range("A1").Select
Dim der As Integer
der = Range("D1")
For x = 1 To der
Sheets("parametre").Select
ActiveCell.Offset(1, 0).Select
Selection.Copy
Sheets("Synthèse").Select
Range("F5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("parametre").Select
ActiveCell.Offset(0, 1).Select
Sheets("ActiveCell").Select
Next x
End Sub
C'est au moment ou le code est en jaune, que j'aimerais en fait sélectionner l'onglet qui correspond à la valeur de la cellule ou je suis a ce moment la dans le code,
le code que j'ai écris est faux mais je ne connais pas le bon codage; si un code juste existe, je me retrouverais ensuite dans la feuille voulu,
Puis ensuite je code l'export PDF,
et je reviens ensuite dans la feuille parametre,
je bouge ma sélection sur la gauche,
et je relance la boucle.
Je vous joins mon fichier Excel en espérant que vous ayez compris ce que je cherche à réaliser.
Merci beaucoup !
Bonjour et bienvenue,
Un proposition à étudier, mais les fichiers sont enregistrés en gif (image) et dans le répertoire courant.
Cdlt.
Option Explicit
Public Sub Create_Pictures()
Dim sPath As String, sFile As String
Dim pt As PivotTable
Dim objChart As Chart
Dim pi As PivotItem
Application.ScreenUpdating = False
sPath = ThisWorkbook.Path & Application.PathSeparator
Set pt = Worksheets("Synthèse").PivotTables(1)
Set objChart = Worksheets("Graphique").ChartObjects(1).Chart
For Each pi In pt.PivotFields("équipe").PivotItems
pt.PivotFields("équipe").CurrentPage = pi.Name
sFile = "Equipe_" & pi.Name & ".gif"
objChart.Export Filename:=sPath & sFile, filtername:="GIF"
Next pi
pt.ClearAllFilters
End Sub