Macro pour imprimer plusieur zone d'impression en une fois Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
n
nunizgb
Membre habitué
Membre habitué
Messages : 123
Inscrit le : 26 décembre 2012
Version d'Excel : 2013

Message par nunizgb » 15 mars 2016, 23:25

bonjour,

Comment on puisse faire un code pour imprimer plusieurs zone d'impressions en une seule fois sachent que chaque zone d'impression doit être sur une page.

Donc voici mon code pour imprimer une zone d'impression :
Sub Print_Janvier()
    ActiveSheet.PageSetup.PrintArea = "ImpressionJanvier"
    With ActiveSheet.PageSetup
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = "&8&P/&N" '<-- numéro de page / nombre de pages (taille 8)
        .LeftMargin = Application.InchesToPoints(0.393700787401575)
        .RightMargin = Application.InchesToPoints(0.393700787401575)
        .TopMargin = Application.InchesToPoints(0.393700787401575)
        .BottomMargin = Application.InchesToPoints(0.393700787401575)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA3
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
       'trouver comment faire si on choisir oui dans USF que cela imprime ren couleur sinon en noir
        .BlackAndWhite = False
        .Zoom = 73
    End With
    ActiveWindow.SelectedSheets.PrintPreview
End Sub


Donc ensuite j'ai même code pour le mois de Février sauf que je change la zone d'impression en ImpressionFévrier

Par contre comment je puis assembler ces zone en un seul code et que chaque zone d'impression soit sur une page

Que je doit ajouter ici ActiveSheet.PageSetup.PrintArea = "ImpressionJanvier" pour que je puisse ajouter ImpressionFévrier et qu'entre ces deux sone uil y un saut de page

Merci pour votre aide
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'193
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 16 mars 2016, 07:07

Bonjour,

Ton code un peu allégé...
Sub Print_Janvier()
    ActiveSheet.PageSetup.PrintArea = "ImpressionJanvier" '???
    With ActiveSheet.PageSetup
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .RightFooter = "&8&P/&N" '<-- numéro de page / nombre de pages (taille 8)
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .PaperSize = xlPaperA3
        .Zoom = False
    End With
    ActiveWindow.SelectedSheets.PrintPreview
End Sub
L'enregistreur te renvoie toutes les propriétés par défaut dès que tu enrregistres un élément du setup. Les seuls qui comptent sont ceux dont tu as modifié les valeurs... J'ai ajusté si tu veux que l'impression occupe une seule page : FitToPageTall doit être mis à 1 aussi et Zoom à False.
Est-ce que "ImpressionJanvier" est un nom de plage ?
Là tu n'imprimes pas, tu affiches seulement un aperçu avant impression ?

Maintenant il te reste à intégrer ça dans une boucle, si tes réglages sont les mêmes, rien à changer sauf la définition de la zone d'impression.
A suivre si tu fournis les éléments.
n
nunizgb
Membre habitué
Membre habitué
Messages : 123
Inscrit le : 26 décembre 2012
Version d'Excel : 2013

Message par nunizgb » 16 mars 2016, 08:23

Merci pour la réponse et oui zone d'impression sont bien les nom de plage et oui les réglage sont les mêmes sauf qu'il y a la zone d'impression qui change donc les noms des plage (impressionJanvier)
Puis dans un autre sujet que j'ai mis en ce qui concerne mon USF dans lequel je demande si on veux en couleur ou noir, en a3 ou a4, recto ou recto-verso.
Donc je cherche aussi comment faire pour que la page setup change en function de la réponse.
J'espère que j'ai fourni assez éléments
PS sur un USF je fait faire afficher que mes onglet numérique (si j'arrive) et ensuite des qu'on sélection les onglets la macro imprimer onglet1 puis onglet2
Mais cela c'est une histoire d'abord macro pour imprimer une année avec plusieurs zone d'impression (12) en une seule fois puis oui j'affiche d'abord aperçu avant impression

Merci pour l'aide

Mon autre sujet http://forum.excel-pratique.com/excel/u ... 75494.html
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'193
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 16 mars 2016, 08:30

Là il te faut créer des variables pour recueillir les réponses et les passer à la macro...

Si tu as un Userform destiné à lancer l'impression, il ne fallait pas éclater le sujet.
n
nunizgb
Membre habitué
Membre habitué
Messages : 123
Inscrit le : 26 décembre 2012
Version d'Excel : 2013

Message par nunizgb » 16 mars 2016, 20:32

MFerrand a écrit :Là il te faut créer des variables pour recueillir les réponses et les passer à la macro...

Si tu as un Userform destiné à lancer l'impression, il ne fallait pas éclater le sujet.

Merci et oups désole pour éclatement de sujet mais c'est que mon USF marche mais que j'essaye de le rendre mieux c'est pour cela que j'ai fait deux sujet par contre comment on déclare les variable pour pouvoir imprimer plusieurs zone d'impression en une seule fois mais que chaque zone d'impression soit sur une page

Merci pour aide
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'193
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 16 mars 2016, 22:50

Il s'agit simplement de bâtir une procédure qui va réaliser l'impression en incorporant les éléments de mise en page ou lancer une procédure d'impression en lui fournissant les paramètres, quantité de solutions équivalentes sont possibles... il faut d'abord savoir à partir d'où tu vas lancer l'impression.
Je n'ai pas vu ton fichier mais si tu dis que tu as mis en place un Userform pour que l'utilisateur exprime ses choix en la matière, les 2 possibilités immédiates, c'est un bouton du Userform dont la procédure associée lancera l'impression, ou laissera la main à la procédure qui a appelé le Userform pour le faire.
Avant de la lancer, il faut déjà savoir où se trouveront les réponses de l'utilisateur, qu'il faut bien conserver pour pouvoir les utiliser !
Donc premier maillon : qu'est-ce qui lance ton Userform et comment sont recueillies les réponses de l'utilisateur, tout le reste va en découler.

Cordialement.
n
nunizgb
Membre habitué
Membre habitué
Messages : 123
Inscrit le : 26 décembre 2012
Version d'Excel : 2013

Message par nunizgb » 16 mars 2016, 23:19

Bonjour,

Merci pour la réponse, je viens de joint image de mon USF et donc c'est utilisateur qui lance USF via image print qui lance ensuite mon USF quand on est sur onglet numérique on a que des choix par mois ou l'année entière (je n'est pas encore mis le bouton car pas encore le code) par contre si on est sur onglet ACCEUIL alors on a que des choix année (pas encore code) ou choix plusieurs année

Les réponses sont recueillies par des zone de liste où on as des mois, couleur, A3 ou A4, recto ou recto-verso

Puis je cherche comment afficher dans USF imprimante disponible dans la zone Imprimante affichage automatique des imprimante disponible sans pourvoir cliquer sur bouton voir les imprimantes
print.jpg
usf.jpg
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'193
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 17 mars 2016, 15:29

Une image ne m'informe pas sur les procédures utilisées...

Et une précision : je suis intervenu sur la mise en page pour impression, et par extension le raccordement au lancement de l'impression pour plusieurs feuilles. Je n'interviens pas sur le choix d'imprimante.
n
nunizgb
Membre habitué
Membre habitué
Messages : 123
Inscrit le : 26 décembre 2012
Version d'Excel : 2013

Message par nunizgb » 17 mars 2016, 22:07

MFerrand a écrit :Une image ne m'informe pas sur les procédures utilisées...

Et une précision : je suis intervenu sur la mise en page pour impression, et par extension le raccordement au lancement de l'impression pour plusieurs feuilles. Je n'interviens pas sur le choix d'imprimante.
Merci et oui je sais puis le choix d'imprimante marche j'ai trouve comment faire en bidouillant le code, désole pour l'erreur
C'est quoi la procédure ?

J'ai un module où j'ai mon code pour la mise en page et aperçu de chaque mois, ce que vous m'avez déjà aider, merci où j'ai cela en début de module
Declare PtrSafe Function GetProfileString Lib "Kernel32" _
Alias "GetProfileStringA" (ByVal lpAppName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Integer) As Integer
Public CBCouleur As Boolean  ==>c'est pour la couleur dans USF
Public CBRecto As Boolean ==> c'est pour recto verso dans USF
Public CBA3 As Boolean ==> c'est pour le format de papier dans USF
Option Explicit
ou je dois mettre DIM CBRecto dans USF où il se trouve afin que je puisse l'avoir dans le module où se trouve la fonction qui lance aperçu de chaque mois ?

Puis dans USF j'ai ce code quand on clique sur aperçu pour chaque mois j'ai ceci qui s’exécuter
 If CBImpressionMois = "Février " & ActiveSheet.Name Then
       Unload ImpressionMois
       Print_Janvier
    End If
donc si je met Print Janvier Print Mars comme faire que Print Janvier sois sur une page et ensuite Print Mars sur une autre page, mais avec votre aide et mes bêtise j’apprends et je suis presque en bout
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'193
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 17 mars 2016, 22:41

Le Print_Janvier devra être modifié pour imprimer plusieurs feuilles...
Est-ce que l'utilisateur choisit les feuilles à imprimer ?
Il faut que tu mettes un fichier pour qu'on avance, allégé si important : il faut le Userform et voir comment il est lancé, présence de feuilles pour qu'on puisse articuler l'impression mais tu peux alléger le contenu...
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message