Macro pour traiter des lignes filtrées séparément

Bonjour,

Dans le fichier ci-joint, j'ai la colonne A qui représente des personnes.

Je voudrais pouvoir lancer une macro qui me permette de :

-faire un tri par personne / fichier / enregistrer sous / pdf

J'arrive à créer la macro sur ma première ligne mais je ne sais pas comment "exprimer" le traitement des autres personnes/cellules.

Au final j'ai besoin d'enregistrer un pdf propre à chaque personne.

Peut-être est-ce trop complexe pour la macro et qu'il faut passer par le VBA ? (auquel cas je ne sais pas faire...)

Merci de votre aide

16commid.xlsx (10.66 Ko)

Bonjour,

Une proposition VBA à étudier.

Les PDFs sont enregistrés dans le répertoire courant.

ALT F8 puis exécuter la procédure Create_PDFs

Cdlt.

15dollismine.xlsm (18.65 Ko)
Public Sub Create_PDFs()
Dim wb As Workbook
Dim lo As ListObject
Dim strPath As String, x As String
Dim lcol As Long, rw As Long
    Application.ScreenUpdating = False
    Set wb = ActiveWorkbook
    strPath = wb.Path & Application.PathSeparator
    With ActiveSheet
        Set lo = ActiveSheet.ListObjects(1)
        If lo.ShowAutoFilter Then lo.AutoFilter.ShowAllData
        lcol = lo.ListColumns.Count + 2
        lo.ListColumns(1).Range.Copy .Cells(lcol)
        .Cells(lcol).CurrentRegion.RemoveDuplicates 1
        For rw = 2 To .Cells(.Rows.Count, lcol).End(xlUp).Row
            x = .Cells(rw, lcol).Value
            lo.Range.AutoFilter 1, x
            lo.AutoFilter.Range.ExportAsFixedFormat xlTypePDF, strPath & x & ".pdf"
        Next rw
        .Cells(lcol).EntireColumn.Delete
        lo.Range.AutoFilter 1
    End With
End Sub

C'est exactement ça !

Merci pour ton temps !

Est-ce qu'il y a un moyen "facile" de changer le répertoire de destination ?

Re,

Quel serait le chemin ?

Cdlt.

Ca va très probablement rester sur le bureau, mais dans un dossier distinct.

Mon fichier final est plus complexe que celui de l'exemple (je pensais naïvement pouvoir c/c le code d'un fichier à l'autre )

Désolé de revenir à la charge mais mes compétences VBA sont inexistantes. J'ai essayé de fouiner pour voir comment adapter le code à mon fichier, mais c'est d'une opacité comme qui dirait opaque pour être franc

Je pensais pouvoir adapter facilement à mon fichier "réel" mais ....impossible.

Mon besoin final pour la macro :

- tri par personne / tri par mois / export PDF / choix du dossier de destination / enregistrer sous "initiales de l'artisan filtré+ nom du mois filtré + année en cours" (exemple "AJ - Mars 2019")

Concrètement, à chaque fin de mois en cours, je crée un PDF récapitulatif par personne.

Accessoirement

  • Si je rajoute ultérieurement des onglets à la feuille, Est-ce qu'il faudra modifier la macro ? (je suppose qu'on peut lier la macro uniquement à le feuille active)
  • Les personnes sont identifiées par leurs initiales. Y'a t'il un moyen de répercuter le nom complet de la personne sur le PDF (exemple, AJ dans le fichier devient Aurélien Jojo sur le PDF, en titre)
Je suppose que ça passe par une sorte de table à créer dans un onglet.

Merci (et désolé j'aurais du dès le départ fournir le fichier réel... )

15suivi-ventes.xlsx (22.21 Ko)

J'ouvre une autre requête, merci.

Rechercher des sujets similaires à "macro traiter lignes filtrees separement"