Impression pdf plage multiple

Bonjour,

J'ai une liste de joueurs de tennis pour lesquels j'ai créé un tableau de bord individuel d'activité. A partir d'un userform je souhaite réaliser 3 types d'impression pdf :

. pdf individuel en cliquant sur le bouton rouge "pdf" au bout de chaque ligne,

. autant de pdf que de joueurs sélectionnés,

. 1 pdf de tous les joueurs sélectionnés.

Les deux premiers types d'impression fonctionnent, c'est le 3ème qui pose souci. Après avoir passé pas mal de temps à chercher, j'ai trouvé une solution qui consiste à masquer les lignes non cochées puis impression pdf d'une plage unique. Sachant qu'il y a 15 joueurs et 30 graphiques + 30 zones de texte au contenu dynamique, ça fait beaucoup de chose à masquer / réafficher. C'est ce que j'arrive de mieux à sortir avec mon petit niveau de vbs, faisable mais très lourd.

Je cherche donc un moyen un peu plus optimisé de créer une zone d'impression multiple à partir des lignes sélectionnées dans l'userform. Merci de votre aide.

bbonjour Brico_VB

un essai pou les joueurs 1, 3, 5, 7, ....

Sub test()
     Dim UN As Range

     For i = 1 To 15 Step 2                  'les joueurs 1, 3, 5, 7, 9, ...
          Set c = Range("ZI_C" & Format(i, "00"))
          Set UN = Union(IIf(UN Is Nothing, c, UN), c)
     Next

     If UN Is Nothing Then Exit Sub
     MsgBox UN.Address
     Chemin02 = ThisWorkbook.Path & "\"
     NomPDF02 = "tous"

     UN.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin02 & NomPDF02, Quality:=xlQualityStandard, OpenAfterPublish:=False

End Sub

Merci de votre réponse rapide, je n'avais pas réussi à faire tourner la fonction Union avec des variables. Est-il possible que la plage soit créée dynamiquement en fonction des cases cochées de l'userform ?

re,

je l'ai ajouté au bouton "Multi PDF"

Private Sub Btn_synthese_v_Click()
     Dim UN    As Range

     For i = 1 To 15
          If Me.Controls("Chkbox_C" & Format(i, "00")).Value = True Then     'joueur coché ?
               Set c = Range("ZI_C" & Format(i, "00"))
               Set UN = Union(IIf(UN Is Nothing, c, UN), c)     'ajouter à la plage de UN
          End If
     Next

     If UN Is Nothing Then MsgBox "Vous n'avez rien sélecté !!!": Exit Sub
     'MsgBox UN.Address
     Chemin02 = ThisWorkbook.Path & "\"
     NomPDF02 = "tous"

     UN.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin02 & NomPDF02, Quality:=xlQualityStandard, OpenAfterPublish:=False

     Exit Sub

     If ChkBox_C01.Value = True Then Call Impress_C01
     etc

C'est top ! Merci beaucoup pour votre temps, c'est précieux.

Rechercher des sujets similaires à "impression pdf plage multiple"