Créer une macro Excel dynamic pour imprimer au format PDF

J'ai un document excel avec quelques centaines de lignes. Fondamentalement, le document contient une list d'users avec des informations pour chaque user. Chaque user peut avoir plusieurs rangées d'informations différentes.

Je tente depuis quelques heures de créer une macro qui permet à un file excel de classr les users en fonction de leur nom, puis de prendre comme noms et de les imprimer dans un document pdf avec le nom de l'user et la date imprimés comme nom de file.

Example:

    1 Données de données de données User1 2 Données de données de données User1 3 Données de données de données User1
    4 données de données de données User2 5 Données de données de données User2
    6 données de données de données User3 7 Données de données de données user3 8 Données de données de données user3 9 Données de données de données user3

Donc, fondamentalement, la colonne avec le nom «User1» doit être imprimée avec toutes ces informations sur les lignes dans son propre document PDF. Il en va de même pour "User2" et "User3" et tellement avancé.

J'ai essayé d'utiliser l'option "Record Macro" avec excel, mais que plus m'a donné des idées plutôt qu'une solution de travail. C'est ma macro d'logging, mais ce n'est pas très bon pour ce que je veux faire. Si quelqu'un pourrait fournir des conseils ou fournir de l'aide, je l'apprécierais vraiment.

Je vous remercie

Sub ExportnamestoPDF2() ' ' ExportnamestoPDF2 Macro ' ' Keyboard Shortcut: Ctrl+j ' ActiveWindow.SmallScroll Down:=-36 Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter ActiveWorkbook.Worksheets("document - Copy").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("document - Copy").AutoFilter.Sort.SortFields.Add Key:= _ Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("document - Copy").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Rows("2:4").Select Selection.PrintOut Copies:=1, Collate:=True End Sub

Je n'utiliserais pas d'autofilter.

Je sortingerai par nom d'user, puis créez une boucle "A" qui imprime et une boucle "B" dans celle qui va ligne par ligne et évalue le nom d'user pour les modifications.

Quelque chose comme:

 i = 2 lastRow = 0 Do firstRow = i Do If Cells(i, 1) <> Cells(i + 1, 1) Then lastRow = i End i = i + 1 While lastRow < i Rows(firstRow & ":" & lastRow).PrintOut Copies:=1, Collate:=True While Cells(i, 1) <> "" 

Cela suppose que votre ID user figure dans la colonne 1 ("A").

Mais cela ne fait qu'imprimer, je suppose? Je ne vois pas où votre macro enregistre un file n'importe où.