Bonjour à tous

voilà je souhaite imprimer les onglets choisi dans une liste déroulante d'un userform et je bute sur ce code qui ne répond pas à mes attentes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub printchoisis_Click()
Dim I As Integer
frchoiximpression.Hide
With lstchoixtableaux
  For I = 0 To .ListCount - 1
    If .Selected(I) Then
    Sh = Sheets(.List(I)).Name
        With Sheets(Sh).PageSetup
                          'Définit la zone d'impression pour une plage de cellules.
                      .PrintArea = Range(Cells(1, 1), Cells(dernlig, derncol)).Address
                      'Mise en page: définit les marges
                      .Orientation = xlLandscape  'paysage
                      '.FitToPagesWide = 1
                      '.FitToPagesTall = 1
                      .Zoom = 85
                      .LeftMargin = Application.InchesToPoints(0.3)
                      .RightMargin = Application.InchesToPoints(0.3)
                      .TopMargin = Application.InchesToPoints(0.3)
                      .BottomMargin = Application.InchesToPoints(0.3)
                      .HeaderMargin = Application.InchesToPoints(0.5)
                      .FooterMargin = Application.InchesToPoints(0.5)
                      .LeftFooter = "Imprimé le " & Date
                '     .CenterFooter = "texte section centrale"
                      .RightFooter = "Edité par " & Application.UserName
        End With
    End If
  Sheets(.List(I)).PrintPreview
 
Next
End With
le sh.name me donne bien le nom des onglets choisis mais je n'arrive pas à faire le pagesetup et le preveiw ne me choisi pas les bons onglets.

Je galère
merci pour votre aide
cordialement