Macro impression avec choix des feuilles

Bonjour le forum,

Je dispose d'une macro qui me permet d'imprimer les feuilles de mon classeur Excel avec la possibilité de choisir les feuilles à imprimer grâce à un userform. Elle fonctionne de la manière suivante:

1 - Je lance la macro grâce au bouton

2 - Je choisis les feuilles à imprimer grâce à l'userform puis je clique sur imprimer

3 - Ensuite un menu s'ouvre pour finaliser le paramétrage (choix de l'imprimante, impression en couleur ou NB...)

4 - Enfin pour terminer, je clique de nouveau sur imprimer.

Le problème c'est que je suis obligé de répéter la 3 ème et 4 ème étape pour chacune des feuilles à imprimer. Ainsi lorsque mon classeur aura 10 feuilles par exemple à imprimer, j'aurai à finaliser le paramétrage 10 fois et à cliquer de nouveau sur imprimer une dizaine de fois.

Auriez-vous une solution pour remédier à ce problème?

Ci-joint mon fichier excel avec ma macro.

Je vous remercie d'avance pour votre aide !

541impression-test.xlsm (25.41 Ko)

Bonjour,

sans connaitre les modifications à faire à l'imprimante

à tester,

Sub ImpressionChoix()
Dim feuille, i As Integer
feuille = Array("Un", "Deux", "Trois")
Impression.Hide

'Impression Feuille
For i = 1 To 3
    If Impression.Controls("CheckBox" & i).Value = True Then
        Application.Goto Sheets(feuille(i - 1)).Range("Zone_d_impression")
        ActiveSheet.PrintPreview  'remplacer par .Print lorsque les test sont terminer
    End If
Next

Impression.Show
End Sub

une autre possibilité est de tous coder, choix d'imprimante et Mise en page

Sub ImpressionChoix()
Dim feuille, i As Integer
Dim sCurPrinter As String

sCurPrinter = Application.ActivePrinter       ' Conserver le nom de l'imprimante en cours
Application.ActivePrinter = "HP Officejet Pro L7700 Series" ' changer d'imprimante
Call Print_Setup        'modifier les paramettres d'impression

feuille = Array("Un", "Deux", "Trois")
Impression.Hide
'Impression Feuille
For i = 1 To 3
    If Impression.Controls("CheckBox" & i).Value = True Then
        Application.Goto Sheets(feuille(i - 1)).Range("Zone_d_impression")
        ActiveSheet.PrintPreview   'PrintOut après les test
    End If
Next

Application.ActivePrinter = sCurPrinter       ' Remettre l'imprimante original.
Impression.Show
End Sub

Sub Print_Setup()
Application.ScreenUpdating = False
With ActiveSheet.PageSetup
.DisplayPageBreaks = False
.PrintTitleRows = "$1:$4"
.LeftHeader = ""
.CenterHeader = "Preliminary"
.LeftFooter = "&8&F" & Chr(10) & "&A"
.CenterFooter = "&8&P of &N"
.RightFooter = "&8&D" & Chr(10) & "&T"
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.05)
.CenterHorizontally = True
.Orientation = xlLandscape
.FirstPageNumber = xlAutomatic
.FitToPagesWide = 1
.FitToPagesTall = 20
End With
Application.ScreenUpdating = True
End Sub

Bonjour sabV,

Je te remercie beaucoup pour ta réponse. Je vais opter pour la première solution qui me paraît plus simple et plus adaptée à mon cas !

Rechercher des sujets similaires à "macro impression choix feuilles"