Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Macro pour mise en page

candido57

XLDnaute Occasionnel
Bonjour,
J'ai un fichier qui est sur 2 pages, mais je n'ai pas toujours besoin de ces 2 pages, donc j'ai rajouté une macro de masquer les lignes que je n'ai pas besoin avant impression pour que ça tienne sur 1 page. J'ai rajouté la macro ci-dessous, mais lorsque j'ai une partie de la page 1 et 1 partie de page 2, l'imprimante me l'imprime sur 2 pages au lieu de l'imprimer sur une.
Exemple: Sur feuille "Hiver 1" en colonne A j'ai des numéro de 1 à 4 , sans rien faire j'ai le n°1 et 2 sur une page puis le n°3 et 4 sur une autre.
Si ma macro MASQUER_LIGNE masque le n°1 et N°4, je souhaite avoir sur une page le n°2 et 3 qui sont à la base sur une autre page.
Peut on aussi rajouter pour que l'imprimante reste en RECTO/VERSO ?
J'espère que je suis clair, mais ce n'est pas évident.

Merci pour votre aide.

Sub Ajuster()

ActiveSheet.Select
With ActiveSheet.PageSetup
.PrintArea = "$A$1:$AA$78"
.PaperSize = xlPaperA4
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.3)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = 60
.Orientation = xlLandscape

End With

End Sub



Sub MASQUER_LIGNE()
'********************************************************
' Procédure pour Masquer ou Dermasquer les lignes 9 à 22
'********************************************************

'Masquer Hiver 1
If [Test1] = 0 Then
Sheets("Hiver 1").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = True
Else
Rows("10:23").Select
Selection.EntireRow.Hidden = False

End If

If [Test2] = 0 Then
Sheets("Hiver 1").Select
Rows("27:42").Select
Selection.EntireRow.Hidden = True
Else
Rows("27:42").Select
Selection.EntireRow.Hidden = False

End If

If [Test3] = 0 Then
Sheets("Hiver 1").Select
Rows("46:60").Select
Selection.EntireRow.Hidden = True
Else
Rows("46:60").Select
Selection.EntireRow.Hidden = False

End If

If [Test4] = 0 Then
Sheets("Hiver 1").Select
Rows("64:78").Select
Selection.EntireRow.Hidden = True
Else
Rows("64:78").Select
Selection.EntireRow.Hidden = False

End If

'Masquer Été 1
If [Test5] = 0 Then
Sheets("Été 1").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = True
Else
Rows("10:23").Select
Selection.EntireRow.Hidden = False

End If

If [Test6] = 0 Then
Sheets("Été 1").Select
Rows("27:42").Select
Selection.EntireRow.Hidden = True
Else
Rows("27:42").Select
Selection.EntireRow.Hidden = False

End If

If [Test7] = 0 Then
Sheets("Été 1").Select
Rows("46:60").Select
Selection.EntireRow.Hidden = True
Else
Rows("46:60").Select
Selection.EntireRow.Hidden = False

End If

If [Test8] = 0 Then
Sheets("Été 1").Select
Rows("64:78").Select
Selection.EntireRow.Hidden = True
Else
Rows("64:78").Select
Selection.EntireRow.Hidden = False

End If

'Masquer Été 2
If [Test9] = 0 Then
Sheets("Été 2").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = True
Else
Rows("10:23").Select
Selection.EntireRow.Hidden = False

End If

If [Test10] = 0 Then
Sheets("Été 2").Select
Rows("27:42").Select
Selection.EntireRow.Hidden = True
Else
Rows("27:42").Select
Selection.EntireRow.Hidden = False

End If

If [Test11] = 0 Then
Sheets("Été 2").Select
Rows("46:60").Select
Selection.EntireRow.Hidden = True
Else
Rows("46:60").Select
Selection.EntireRow.Hidden = False

End If

If [Test12] = 0 Then
Sheets("Été 2").Select
Rows("64:78").Select
Selection.EntireRow.Hidden = True
Else
Rows("64:78").Select
Selection.EntireRow.Hidden = False

End If

'Masquer Hiver 2
If [Test13] = 0 Then
Sheets("Hiver 2").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = True
Else
Rows("10:23").Select
Selection.EntireRow.Hidden = False

End If

If [Test14] = 0 Then
Sheets("Hiver 2").Select
Rows("27:42").Select
Selection.EntireRow.Hidden = True
Else
Rows("27:42").Select
Selection.EntireRow.Hidden = False

End If

If [Test15] = 0 Then
Sheets("Hiver 2").Select
Rows("46:60").Select
Selection.EntireRow.Hidden = True
Else
Rows("46:60").Select
Selection.EntireRow.Hidden = False

End If

If [Test16] = 0 Then
Sheets("Hiver 2").Select
Rows("64:78").Select
Selection.EntireRow.Hidden = True
Else
Rows("64:78").Select
Selection.EntireRow.Hidden = False

End If

End Sub

Sub AFFICHER_LIGNE()
'***************************************************************************
' Procédure pour Démasquer les lignes 9 à 22 quelque soit la valeur du TEST
'***************************************************************************

'Afficher Hiver 1
Sheets("Hiver 1").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = False
Rows("27:42").Select
Selection.EntireRow.Hidden = False
Rows("46:60").Select
Selection.EntireRow.Hidden = False
Rows("64:78").Select
Selection.EntireRow.Hidden = False

'Afficher Été 1
Sheets("Été 1").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = False
Rows("27:42").Select
Selection.EntireRow.Hidden = False
Rows("46:60").Select
Selection.EntireRow.Hidden = False
Rows("64:78").Select
Selection.EntireRow.Hidden = False

'Afficher Été 2
Sheets("Été 2").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = False
Rows("27:42").Select
Selection.EntireRow.Hidden = False
Rows("46:60").Select
Selection.EntireRow.Hidden = False
Rows("64:78").Select
Selection.EntireRow.Hidden = False

'Afficher Hiver 2
Sheets("Hiver 2").Select
Rows("10:23").Select
Selection.EntireRow.Hidden = False
Rows("27:42").Select
Selection.EntireRow.Hidden = False
Rows("46:60").Select
Selection.EntireRow.Hidden = False
Rows("64:78").Select
Selection.EntireRow.Hidden = False

End Sub
 

Pièces jointes

  • Candido57_Imprimer liste.xlsm
    114.8 KB · Affichages: 6
Solution
Code:
Sub AFFICHER_LIGNE()
'***************************************************************************
' Procédure pour Démasquer les lignes 9 à 22 quelque soit la valeur du TEST
'***************************************************************************

'Afficher Hiver 1
With Sheets("Hiver 1")
    Union(.Rows("10:23"), .Rows("27:42"), .Rows("46:60"), .Rows("64:78")).EntireRow.Hidden = False
End With

'Afficher Été 1
With Sheets("Été 1")
    Union(.Rows("10:23"), .Rows("27:42"), .Rows("46:60"), .Rows("64:78")).EntireRow.Hidden = False
End With

'Afficher Été 2
With Sheets("Été 2")
    Union(.Rows("10:23"), .Rows("27:42"), .Rows("46:60"), .Rows("64:78")).EntireRow.Hidden = False
End With

'Afficher Hiver 2
With Sheets("Hiver 2")...

vgendron

XLDnaute Barbatruc
Hello
à priori, dans ta macro "Ajuster", rien ne spécifie qu'il faut mettre tout sur UNE page

correction ici
VB:
Sub Ajuster()
    With ActiveSheet.PageSetup
        .PrintArea = "$A$1:$AA$78"
        .PaperSize = xlPaperA4
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0.3)
        .BottomMargin = Application.InchesToPoints(0)
        '.Zoom = 60
        .Orientation = xlLandscape
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    ActiveSheet.PrintPreview
End Sub

et pour tes macros à rallonge qui piquent les yeux

Code:
Sub MASQUER_LIGNE()
'********************************************************
' Procédure pour Masquer ou Dermasquer les lignes 9 à 22
'********************************************************
    'Masquer Hiver 1
    With Sheets("Hiver 1")
        .Rows("10:23").EntireRow.Hidden = ([Test1] = 0)
        .Rows("27:42").EntireRow.Hidden = ([Test2] = 0)
        .Rows("46:60").EntireRow.Hidden = ([Test3] = 0)
        .Rows("64:78").EntireRow.Hidden = ([Test4] = 0)
    End With
       
    'Masquer Été 1
    With Sheets("Été 1")
        .Rows("10:23").EntireRow.Hidden = ([Test5] = 0)
        .Rows("27:42").EntireRow.Hidden = ([Test6] = 0)
        .Rows("46:60").EntireRow.Hidden = ([Test7] = 0)
        .Rows("64:78").EntireRow.Hidden = ([Test8] = 0)
    End With
   
    'Masquer Été 2
    With Sheets("Été 2")
        .Rows("10:23").EntireRow.Hidden = ([Test9] = 0)
        .Rows("27:42").EntireRow.Hidden = ([Test10] = 0)
        .Rows("46:60").EntireRow.Hidden = ([Test11] = 0)
        .Rows("64:78").EntireRow.Hidden = ([Test12] = 0)
    End With
   
    'Masquer Hiver 2
    With Sheets("Hiver 2")
        .Rows("10:23").EntireRow.Hidden = ([Test13] = 0)
        .Rows("27:42").EntireRow.Hidden = ([Test14] = 0)
        .Rows("46:60").EntireRow.Hidden = ([Test15] = 0)
        .Rows("64:78").EntireRow.Hidden = ([Test16] = 0)
    End With
End Sub

Sub AFFICHER_LIGNE()
'***************************************************************************
' Procédure pour Démasquer les lignes 9 à 22 quelque soit la valeur du TEST
'***************************************************************************
    'Afficher Hiver 1
    With Sheets("Hiver 1")
        .Rows("10:23").EntireRow.Hidden = False
        .Rows("27:42").EntireRow.Hidden = False
        .Rows("46:60").EntireRow.Hidden = False
        .Rows("64:78").EntireRow.Hidden = False
    End With
       
    'Afficher Été 1
    With Sheets("Été 1")
        .Rows("10:23").EntireRow.Hidden = False
        .Rows("27:42").EntireRow.Hidden = False
        .Rows("46:60").EntireRow.Hidden = False
        .Rows("64:78").EntireRow.Hidden = False
    End With
   
    'Afficher Été 2
    With Sheets("Été 2")
        .Rows("10:23").EntireRow.Hidden = False
        .Rows("27:42").EntireRow.Hidden = False
        .Rows("46:60").EntireRow.Hidden = False
        .Rows("64:78").EntireRow.Hidden = False
    End With
   
    'Afficher Hiver 2
    With Sheets("Hiver 2")
        .Rows("10:23").EntireRow.Hidden = False
        .Rows("27:42").EntireRow.Hidden = False
        .Rows("46:60").EntireRow.Hidden = False
        .Rows("64:78").EntireRow.Hidden = False
    End With
End Sub
 

cp4

XLDnaute Barbatruc
Bonjour,

je n'ai pas tout compris. Edit ton code pour qu'il soit mieux lisible en utilisant (voir image).


Il faut supprimer tous les select et selection. Ils alourdissent et ralentissent le code
Tu devrais allégé ton code comme ceci pour Hiver1 (fais la même chose pour le reste)
VB:
'Masquer Hiver 1
   With Sheets("Hiver 1") 'Avec la feuille hiver 1'
      If [Test1] = 0 Then
         .Rows("10:23").EntireRow.Hidden = True
      Else
         .Rows("10:23").EntireRow.Hidden = False
      End If

      If [Test2] = 0 Then
         .Rows("27:42").EntireRow.Hidden = True
      Else
         .Rows("27:42").EntireRow.Hidden = False
      End If

      If [Test3] = 0 Then
         .Rows("46:60").EntireRow.Hidden = True
      Else
         .Rows("46:60").EntireRow.Hidden = False
      End If

      If [Test4] = 0 Then
         .Rows("64:78").EntireRow.Hidden = True
      Else
         .Rows("64:78").EntireRow.Hidden = False
      End If
   End With
 

cp4

XLDnaute Barbatruc
Code:
Sub AFFICHER_LIGNE()
'***************************************************************************
' Procédure pour Démasquer les lignes 9 à 22 quelque soit la valeur du TEST
'***************************************************************************

'Afficher Hiver 1
With Sheets("Hiver 1")
    Union(.Rows("10:23"), .Rows("27:42"), .Rows("46:60"), .Rows("64:78")).EntireRow.Hidden = False
End With

'Afficher Été 1
With Sheets("Été 1")
    Union(.Rows("10:23"), .Rows("27:42"), .Rows("46:60"), .Rows("64:78")).EntireRow.Hidden = False
End With

'Afficher Été 2
With Sheets("Été 2")
    Union(.Rows("10:23"), .Rows("27:42"), .Rows("46:60"), .Rows("64:78")).EntireRow.Hidden = False
End With

'Afficher Hiver 2
With Sheets("Hiver 2")
    Union(.Rows("10:23"), .Rows("27:42"), .Rows("46:60"), .Rows("64:78")).EntireRow.Hidden = False
End With
End Sub
 

jcf6464

XLDnaute Impliqué
Bonjour le fil,

une remarque
VB:
Sub Ajuster()
    With ActiveSheet.PageSetup
        .PrintArea = "$A$1:$AA$78"
        .PaperSize = xlPaperA4
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0.3)
        .BottomMargin = Application.InchesToPoints(0)
        '.Zoom = 60
        .Orientation = xlLandscape
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
   ' ActiveSheet.PrintPreview '          !!!!!!!!pourquoi cette ligne elle bloque tout'
End Sub

en la désactivant cela fonctionne
en plus j'ai rajouter cette ligne pour choisir l'IMP dans
VB:
Private Sub Cbn_Imprimer_Click()
    'Application.ScreenUpdating = False ' Faire fonctionner la macro sans exécuter
    Dim Ind1 As Long, Ind2 As Long
    Dim ShP As Worksheet
' On va définir les paramètres généraux d'impression de la feuille
Application.Dialogs(Excel.XlBuiltInDialog.xlDialogPrinterSetup).Show
    Application.PrintCommunication = False

bonne journée jcf
 

candido57

XLDnaute Occasionnel
Bonjour,

Je suis fou de joie lorsque le demandeur ne donne plus signe de vie.
Vous m'avez compris.
Bonne journée.
Bonjour cp4,
Je suis désolé , mais j'ai répondu un peu plus haut en disant que j'avais modifier ma macro suivant recommandation et que j'allais la tester lundi. De plus j'ai votre macro modifié.
Chez moi ça fonctionne et je veux la tester lundi en lançant l'impression sur une imprimante du boulot.
Bonne journée
 

cp4

XLDnaute Barbatruc
Rebonjour,

ce n'était pour que tu répondes @jcf6464.

Rien de personnel.

Bon week-end
 

candido57

XLDnaute Occasionnel
Bonsoir Cp4,
J'ai testé la macro au boulot et ça fonctionne comme je voulais.
Encore une grand merci

Bonne soirée
 

Discussions similaires

Réponses
12
Affichages
475
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…