Macro VBA boucle

Bonjour,

Serait-il possible de m’aider pour ma macro en vba.

Je dispose d’une base avec un Tableau Croise Dynamique. je dois éditer le tcd en format PDF pour chaque représentant.

Je souhaite via cette macro exporter en PDF le résultat du TCD en fonction du représentant choisi

La macro doit venir récupérer le résultat d'une cellule (N° Rep) pour l'appliquer sur le filtre TCD du N° Représentant puis éditer le tcd au format PDF, ensuite ajouter +1 à cette cellule N° Rep pour répéter l'opération.

Ci-joint un exemple de mon fichier excel :

D’avance merci.

Bonjour,

à tester,

Sub TEST()
' Exportation au format PDF
Dim valeur As String
Dim LeNom As String, chemin As String
Dim n As Integer

Sheets("TCD").Select
chemin = "U:\#Chemin#_"

n = 1

    While n <= 6    'Condition : Tant que n est inferieur à 18

        'Sélection dans la liste des représentants
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° REP").ClearAllFilters
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° REP").CurrentPage = "" & n

        'Exporter au format PDF
        LeNom = Range("A5").Value
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & "\" & LeNom & "_" & ".pdf", _
                                                Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
                                                :=False, OpenAfterPublish:=False
       n = n + 1

    Wend
End Sub

Bonjour,

Une autre proposition à étudier.

Cdlt.

Option Explicit

Public Sub Create_PDFs()
Dim ws As Worksheet
Const strPath As String = "U:\#Chemin#_\"
Dim strFilename As String
Dim pt As PivotTable, pf As PivotField, pi As PivotItem

    Application.ScreenUpdating = False

    Set ws = ActiveWorkbook.Worksheets("TCD")
    Set pt = ws.PivotTables(1)
    Set pf = pt.PageFields("N° REP")
    pt.PivotCache.Refresh
    pf.ClearAllFilters
    For Each pi In pf.PivotItems
        pf.CurrentPage = pi.Name
        strFilename = strPath & pi.Name & ".pdf"
        'TableRange1 : Plage du TCD sans les champs de page
        'TableRange2 : Plage du TCD avec les champs de page
        pt.TableRange1.ExportAsFixedFormat _
                Type:=xlTypePDF, _
                Filename:=strFilename, _
                Quality:=xlQualityStandard  'ou xlQualityMinimum
    Next pi
    pf.ClearAllFilters

End Sub

Bonjour,

Merci pour vos retours !

J'ai essayé les deux macros.

La première macro me génère une erreur car les représentants sont numérotés par des chiffres qui ne sont pas forcément continue exemple : 1,2,3,5,8,12...

J'ai donc utilisé la deuxième et celle-ci fonctionne correctement par rapport à ma demande mais j'ai une dernière question :

Lors de l'enregistrement est-il possible intégrer le nom du rep qui se trouve en cellule A5 ?

Merci.

Cordialement,

Bonjour,

Une modification à apprécier !...

Cdlt.

Top !!

Merci à toi !

Rechercher des sujets similaires à "macro vba boucle"