macro pour définir la même zone d'impression pour 12 feuilles sur 13

libellule85

XLDnaute Accro
Bonsoir le forum,
j'essaie de définir la même zone d'impression pour douze feuilles (les 12 mois de l'année) sur les treize de mon classeur, j'ai donc essayé avec l'enregistreur de macro pour une feuille, ce qui me donne :

Code:
Sub Macro3()
    Range("A1:M120").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$M$120"
End Sub

Mais je ne sais pas comment faire pour appliquer cette zone d'impression à mes douze feuilles...
Merci d'avance si vous pouvez me renseigner.
 

flyonets44

XLDnaute Occasionnel
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Bonsoir
Tu fais une boucle comme ceci
for i =1 to sheets.count
if not sheets(i).name like "le nom de la feuille à exclure"
ActiveSheet.PageSetup.PrintArea = "$A$1:$M$120"
next
Cordialement
Flyonets
 

DoubleZero

XLDnaute Barbatruc
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Bonjour, libellule85, flyonets44, le Forum,

Peut-être ainsi :

VB:
Sub Zone_impression()
For Each ws In Worksheets
If ws.Name <> "TOTO" Then 'TOTO = onglet non concerné
ws.PageSetup.PrintArea = ""
ws.PageSetup.PrintArea = "$A$1:$M$120"
End If
Next
End Sub

A bientôt :).
 

libellule85

XLDnaute Accro
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Bonsoir DoubleZéro,
Merci beaucoup pour ta réponse, une simple question ce code je le met où ? Dans le ThisWorkbook ? ou alors dans un module avec un bouton sur chaque feuille ?
 

DoubleZero

XLDnaute Barbatruc
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Re-bonjour :),

Nul besoin de bouton dans chaque onglet. Un bouton unique peut être positionné, par exemple, dans l'onglet non concerné par la macro. Dans ce cas, le code doit être placé dans un module.
 

DoubleZero

XLDnaute Barbatruc
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Re-bonjour,

Afin d'éviter la création d'un bouton, le code suivant peut être inséré dans ThisWorkbook :

VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each ws In Worksheets
If ws.Name <> "TOTO" Then 'TOTO = onglet non concerné
ws.PageSetup.PrintArea = ""
ws.PageSetup.PrintArea = "$A$1:$g$20"
End If
Next
End Sub
 

DoubleZero

XLDnaute Barbatruc
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Re-bonjour,

Dans ce cas, peut-être ainsi :confused: :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "TOTO" Then 'TOTO = onglet non concerné
ws.PageSetup.PrintArea = ""
ws.PageSetup.PrintArea = "$A$1:$g$20"
End If
Next
End Sub
 

DoubleZero

XLDnaute Barbatruc
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Re-bonjour, bonjour, carcharodon-carcharias :),

... il te reste à définir la variable ws , si tu ne sait pas le faire lire ceci ...

Merci beaucoup pour le lien vers ton tuto car j'ai d'ENORMES difficultés dans la déclaration des variables :eek:.

Qui plus est, je ne comprends pas la raison pour laquelle la macro fonctionne, chez moi, correctement sans cette déclaration :confused:.

A bientôt :D.
 

libellule85

XLDnaute Accro
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

re DoubleZéro, Bonsoir CC, mth,
Je te remercie CC pour ce tuto que je vais lire attentivement....
merci à vous tous pour votre aide vous êtes super et surtout très patient, merci
Bonne soirée
 

Staple1600

XLDnaute Barbatruc
Re : macro pour définir la même zone d'impression pour 12 feuilles sur 13

Bonsoir le fil

A tester car non testé (pas d'imprimante sous le coude, ni derrière le genou ;) )

Dans ThisWorkbook

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name <> "toto" Then
ActiveSheet.PageSetup.PrintArea = "$A$1:$M$120"
End If
End Sub
 

Discussions similaires

Réponses
7
Affichages
550

Statistiques des forums

Discussions
312 329
Messages
2 087 335
Membres
103 520
dernier inscrit
Azise