Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PB mise en page lors impression dans VBA

3 réponses
Avatar
Christophe Joly
Bonsoir:

J'ai la macro suivante qui me permet d'imprimer toutes les feuilles sommes
certaines.
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "Instructions" And sh.Name <> "Country Data" And sh.Name
<> _
"Company Data" And sh.Name <> "Country Appointments" And sh.Name <>
"Template Fax" And sh.Name <> _
"Transitory1" And sh.Name <> "Company Appointments" And sh.Name <>
"Transitory2" Then sh.PrintOut
Next sh

Maintenant j'aimerais rajouter une instruction de mise en page du type
ajuster 1 page en largeur sur 1 page en hauteur.

Merci par avance pour vote aide.

Christophe

3 réponses

Avatar
Denis Michon
Bonsoir Christophe,

Essaie ceci : J'ai modifié un peu ta macro, je crois que cette présentation est plus lisible !


'-----------------------------------------
Sub Imprimer()

For Each sh In ThisWorkbook.Sheets
Select Case sh.Name
'Groupe de feuilles qui ne seront pas imprimées
Case Is = "Instructions", "Country Data", "Company Data", _
"Country Appointments", "Template Fax", _
"Transitory1", "Company Appointments", "Transitory2"
Case Else
'Tous les autres feuilles seront imprimées
With Worksheets(sh.Name)
With .PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut Copies:=1, Collate:=True
End With
End Select
Next sh

End Sub
'-----------------------------------------


Salutations!




"Christophe Joly" a écrit dans le message de news:
Bonsoir:

J'ai la macro suivante qui me permet d'imprimer toutes les feuilles sommes
certaines.
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "Instructions" And sh.Name <> "Country Data" And sh.Name
<> _
"Company Data" And sh.Name <> "Country Appointments" And sh.Name <>
"Template Fax" And sh.Name <> _
"Transitory1" And sh.Name <> "Company Appointments" And sh.Name <>
"Transitory2" Then sh.PrintOut
Next sh

Maintenant j'aimerais rajouter une instruction de mise en page du type
ajuster 1 page en largeur sur 1 page en hauteur.

Merci par avance pour vote aide.

Christophe
Avatar
Christophe Joly
Merci Denis. Comme d'hab, clair, net et sans bavure.

Remerciements et sincères salutations.

Christophe

"Denis Michon" <denis a écrit dans le message de
news:xjPzb.11529$
Bonsoir Christophe,

Essaie ceci : J'ai modifié un peu ta macro, je crois que cette
présentation est plus lisible !



'-----------------------------------------
Sub Imprimer()

For Each sh In ThisWorkbook.Sheets
Select Case sh.Name
'Groupe de feuilles qui ne seront pas imprimées
Case Is = "Instructions", "Country Data", "Company Data", _
"Country Appointments", "Template Fax", _
"Transitory1", "Company Appointments", "Transitory2"
Case Else
'Tous les autres feuilles seront imprimées
With Worksheets(sh.Name)
With .PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut Copies:=1, Collate:=True
End With
End Select
Next sh

End Sub
'-----------------------------------------


Salutations!




"Christophe Joly" a écrit dans le message de
news:

Bonsoir:

J'ai la macro suivante qui me permet d'imprimer toutes les feuilles sommes
certaines.
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "Instructions" And sh.Name <> "Country Data" And sh.Name
<> _
"Company Data" And sh.Name <> "Country Appointments" And sh.Name <>
"Template Fax" And sh.Name <> _
"Transitory1" And sh.Name <> "Company Appointments" And sh.Name <>
"Transitory2" Then sh.PrintOut
Next sh

Maintenant j'aimerais rajouter une instruction de mise en page du type
ajuster 1 page en largeur sur 1 page en hauteur.

Merci par avance pour vote aide.

Christophe





Avatar
Denis Michon
Bonsoir Christophe,

Comme tu as utilisé la collection Sheets pour boucler

For Each sh In ThisWorkbook.Sheets


et que moi j'ai utilisé Worksheets(sh.name)


Ça va causer problème, si tu as des feuilles graphiques, des feuilles de macro xl4 ... car elles appartiennent à la
collection "Sheets" et non à la collection "Worksheets".


Il est préférable que tu harmonises l'objet utilisé dans les 2 lignes de code ... selon ton projet, tu choisis d'utiliser
soit : Sheets ou worksheets ...


Salutations!





"Christophe Joly" a écrit dans le message de news:
Merci Denis. Comme d'hab, clair, net et sans bavure.

Remerciements et sincères salutations.

Christophe

"Denis Michon" <denis a écrit dans le message de
news:xjPzb.11529$
Bonsoir Christophe,

Essaie ceci : J'ai modifié un peu ta macro, je crois que cette
présentation est plus lisible !



'-----------------------------------------
Sub Imprimer()

For Each sh In ThisWorkbook.Sheets
Select Case sh.Name
'Groupe de feuilles qui ne seront pas imprimées
Case Is = "Instructions", "Country Data", "Company Data", _
"Country Appointments", "Template Fax", _
"Transitory1", "Company Appointments", "Transitory2"
Case Else
'Tous les autres feuilles seront imprimées
With Worksheets(sh.Name)
With .PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut Copies:=1, Collate:=True
End With
End Select
Next sh

End Sub
'-----------------------------------------


Salutations!




"Christophe Joly" a écrit dans le message de
news:

Bonsoir:

J'ai la macro suivante qui me permet d'imprimer toutes les feuilles sommes
certaines.
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "Instructions" And sh.Name <> "Country Data" And sh.Name
<> _
"Company Data" And sh.Name <> "Country Appointments" And sh.Name <>
"Template Fax" And sh.Name <> _
"Transitory1" And sh.Name <> "Company Appointments" And sh.Name <>
"Transitory2" Then sh.PrintOut
Next sh

Maintenant j'aimerais rajouter une instruction de mise en page du type
ajuster 1 page en largeur sur 1 page en hauteur.

Merci par avance pour vote aide.

Christophe