Macro VBA liste deroulante export
Bonjour,
Je ne suis pas très experte en VBA c'est pourquoi j'aurais besoin de savoir si c'est possible et si quelqu'un pourrait m'aider.
Je travaille à l'échelle des communes (d'un département) et j'ai donc une liste de communes (ONGLET LISTE) .
J'ai un autre onglet " COMMUNE " contenant un certain nombre de tableaux et de graphiques statistiques en lien avec la commune choisie dans la liste. ( je passe les détails de comment les statistiques s'affichent dans l'onglet car ce n'est pas l'objet).
Jusque là tout va bien.
Je souhaiterais savoir si il est possible de convertir mon onglet statistique en PDF pour chacune des communes, sans que je sois obliger de choisir dans la liste chacune des communes (sachant que j'ai plus d'une centaine de communes).
J'ai créé une macro qui me permets de convertir mon onglet en PDF mais je suis donc obliger de choisir manuellement ma commune dans ma liste déroulante.
En choisissant ma commune dans la liste du coup mon onglet COMMUNE (avec les différentes stats) change donc de commune et de statistique. J'espère que vous voyez un peu le système c'est pas très compliquer mais je m'exprime peut être mal je m'excuse d'avance !!
Puis autre petit souci, ce fichier a bien le nom de ma commune (qui se trouve dans mon onglet LISTE) mais ne va pas s'enregistrer à l'endroit souhaité.
voila le code que j'ai:
Sub convert_pdf()
Dim chemin As String, fichier As String
fichier = chemin & "\" & Worksheets("LISTE").Range("C21")
chemin = "C:\Bibliothèques\Documents"
Worksheets("COMMUNE").ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
End SubJe vous remercie d'avance pour vos réponses
Bonsoir,
En remettant chemin et fichier dans l'ordre ça marchera mieux.
Pour défiler les communes, il suffit d'une boucle. En supposant, que C21 était bien la commune, on fait la boucle sur le numéro de ligne. J'ai mis 2 à 100 pour illustrer, à toi de rectifier.
Si cela doit enregistrer des stats propres à chaque commune, lesquelles se modifient dans ton onglet selon la commune, je serais tout de même étonné que changer le nom de commune dans le nom de fichier suffise à choisir la bonne stat.
Mais sur ce point, tu as jugé bon de le zapper car pas important !
Sub convert_pdf()
Dim chemin As String, fichier As String, i As Integer
For i = 2 To 100 'à remplacer par les lignes de début et fin de la liste
chemin = "C:\Bibliothèques\Documents"
fichier = chemin & "\" & Worksheets("LISTE").Range("C" & i) 'si c'est bien la commune
Worksheets("COMMUNE").ExportAsFixedFormat xlTypePDF, fichier, OpenAfterPublish:=True
Next i
End SubSi tu peux écrire tes macros selon le modèle ci-dessus, ce serait bien, ça s'appelle indenter, et ça sert à lire en sachant ce qu'on lit beaucoup plus vite, et ça sert aussi à voir quasiment du premier coup un certain nombre d'erreurs fréquentes. Pour ceux qui doivent travailler du code c'est infiniment mieux que du texte en vrac...
J'ai aussi ôté quelques éléments inutiles. Car il ne faut pas reproduire bêtement tout ce que te dis l'enregistreur, il faut l'analyser et éliminer ce qui est inutile. Au cas particulier, les paramètres laissés à leur valeur par défaut, listés en bloc par l'enregistreur, peuvent être enlevés et ça permet d'y voir plus clair.
Cordialement.