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 Sub

Je 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 ! Alors...

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 Sub

Si 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.

Rechercher des sujets similaires à "macro vba liste deroulante export"