Macro pour imprimer plusieur zone d'impression en une fois

J'ai constaté que l'effet sur les sauts de page (horizontaux) n'était provoqué que par FitToPagesTall (définition en hauteur).

[Je suppose que FitToPagesWide fait la même chose avec les sauts de page verticaux...]

Mais on peut donc garder la largeur à 1 et ne plus définir la hauteur. Les essais antérieurs ont montré que la largeur une fois définie, on avait de la marge en hauteur. On peut donc réintroduire les sauts de page !

Je suis donc revenu à la 1re version, réaménagée avec sauts de page pour l'année (et ton option CenterFooter).

Merci MFerrand,

Tout marche comme il faut surtout la mise en page, j'ai enfin fini cet USF impression grâce à toi donc une fois encore Merci, 98 % fini

Si je peux encore abuse de ta disponibilité je viens de modifier ton exemple afin d'avoir ce que je cherche à savoir.

Avoir une option qui demande Aperçu Oui ou Non afin d'avoir un aperçu ou imprimer directement via la macro dans le module1 ou Un bouton Aperçu et un bouton Imprimer et qui appelle la même macro mais suivant le bouton elle exécute un aperçu ou elle exécute impression.

Si elle exécuter l'impression alors un USf est appelle qui demande combien copie, une fois mis le nombre l'impression s’exécute et un USf s'affiche qui dit combien exemplaire sont en cours d'impression puis en out de 5 secondes il se ferme.

Ce qui ne marche pas, je ne sait pas comment faire pour faire un aperçu ou imprimer avec même code. Ce que je sais de faire un copie colle mais cela fait bcp plus de ligne et donc mémoire excel.

Puis mon message s'affiche mais pas combien exemplaire au total puis le message ne se ferme pas automatiquement.

Puis si on met 0 comme nombre de copie j'ai erreur donc i on met 0 alors annuler l’exécution du code.

J'ai mis le fichier afin de voir résultat et ce que j'ai mis.

Merci pour l'aide

Si tu veux rajouter un bouton pour imprimer directement, parallètement à l'aperçu, il faut le mettre en place, de même que le userform demandant le nombre de copies. On fera pointer sur la même procédure à l'intérieur de laquelle on identifiera les options.

La variable recueillant le nombre de copies pourrait d'ailleurs être utilisée pour distinguer Impression directe et Aperçu.

Bonjour, dans le fichier exemple que j'ai mis dans le post précédant, j'ai oublier de mettre le bouton Imprimer en plus de Aperçu donc dans voilà le fichier corriger.

En ce qui concerne j'ai créer USF qui demande nombre de copie ainsi que USF qui affiche que l'impression est lancé.

Voici le code pour USF nombre de copie

Private Sub cmdok_Click()

ActiveWindow.SelectedSheets.PrintOut Copies:=1 * TextBox1, Collate:=True
'MsgBox "Les documents sont en cours d'impression.", vbInformation ==> C'est USF ImpressionEncours qui affiche message car avec msg box je n'arrive pas à fermer automatiquement 

CombienCopie.Hide
ImpressionEncours.Show
End Sub

Code de ImpressionEncours

Private Sub UserForm_Activate()
  ImpressionEncours.Show 0
  NextTime = Now + TimeValue("00:00:01")
  Application.OnTime NextTime, "FermerUSF"
  Me.LImpressionEnCours.Caption = "Vos documents sont en cours d'impression en X exemplaire."
End Sub

Merci pour et avec ton aide j'arrive à pige de plus en plus code VBA, j'ai même change tri d'année afin d'avoir 2013,2014,2015 et lieu de 2015,2014,2013

Par contre mon code pour impression n'imprimer pas ce qui faut car il n'est pas lier à la macro

j'ai même change tri d'année afin d'avoir 2013,2014,2015 et lieu de 2015,2014,2013

Aah ! J'avais cru que le plus récent pouvait intéresser en premier...

Tu m'accorderas bien un peu de repos cette soirée !

Joyeuses Pâques comme le veut la tradition... (si elle recommandait l'inverse, je ne suivrais pas !)

MFerrand a écrit :

j'ai même change tri d'année afin d'avoir 2013,2014,2015 et lieu de 2015,2014,2013

Aah ! J'avais cru que le plus récent pouvait intéresser en premier...

En fait comme je vais faire plusieurs années d'avance afin qu’utilisateur ne devras pas faire aussi tôt donc avant qu'il trouve l'année 2016 alors que dans la feuille j'ai jusqu'à 2022

Tu m'accorderas bien un peu de repos cette soirée !

Joyeuses Pâques comme le veut la tradition... (si elle recommandait l'inverse, je ne suivrais pas !)

Joyeuses Pâques et bonne chasse aux œufs

Bon repos et moi de mon côte je vais essaye d'y trouve moi même mais je n'y promets rien.

J'ai ajusté l'introduction des copies... Si on met 0 ou si on annule, cela basculera sur l'aperçu.

Merci MFerrand,

Cela marche impeccable par contre comment je puisse quand j'affiche USF ImpressionEncours que dans cet USF ,j'ai le nombre de copies que je suis en train d'imprime ?

Pour lancer mon USF, j'ai mis ceci

On Error GoTo 0
        If cpImpr > 0 Then
            .PrintOut copies:=cpImpr
        ImpressionEncours.Show
        Else

Ceci m'appelle bien mon USF mais il n'affiche pas le total de copie que je suis en train de faire.

Dans le code de mon USf j'ai cela :

Private Sub UserForm_Activate()
 Dim cpImpr%, NextTime
  ImpressionEncours.Show 0
  NextTime = Now + TimeValue("00:00:01")
  Application.OnTime NextTime, "FermerUSF_ImpressionEncours"
  Me.LImpressionEnCours.Caption = "Vos documents sont en cours d'impression en cpImpr% exemplaire"
End Sub

et le code pour FermerUSF_ImpressionEncours, j'ai mis dans un module avec ce code :

Sub FermerUSF_ImpressionEncours()

  ImpressionEncours.Hide
End Sub

En clair comment je puisse récupérer la variable cplmpr défini dans USF CombienCopie via la macro ImpressionAnnéeMois afin de l'afficher dans USF ImpressionEncours ?

Pour avoir ceci : "Vos documents sont en cours d'impression en cpImpr exemplaire" où cplmpr est défini par

If IsNumeric(CombienCopie.TextBox1.Value) Then
            cpImpr = CInt(CombienCopie.TextBox1.Value)
        Else

dans la function qui permet impression ou aperçu

Pas fait attention à ça ! tu es sûr que tu en as besoin !

Tu peux faire :

        On Error GoTo 0
        If cpImpr > 0 Then
            .PrintOut copies:=cpImpr
            Load ImpressionEncours
            ImpressionEncours.LImpressionEnCours.Caption = "Vos documents sont en cours d'impression en " _
             & cpImpr & " exemplaires."
            ImpressionEncours.Show

Tu le charges, initialise l'étiquette et l'ouvre. Pour l'ouvrir en non modal, tu peux le fixer dans la fenêtre de propriété (ShowModal à définir une fois pour toutes).

A l'activation, il te reste :

Private Sub UserForm_Activate()
  NextTime = Now + TimeValue("00:00:05")
  Application.OnTime NextTime, "FermerUSF"
End Sub

Si tu ne mets qu'une seconde, c'est un peu court. Inutile de l'ouvrir une 2e fois, si activate intervient c'est qu'il est ouvert.

Pour fermer, tu peux passer directement à : Unload ImpressionEnCours

Ou bien tu supprimes Activate et Fermer et tu mets une procédure de fermeture au Click sur le Userform (ou l'étiquette si celle-ci occupe toute la surface). Dans ce cas rajouter une étiquette pour dire Cliquer pour fermer.

Ouf! Tu as du goût pour les noms longs...

Pas fait attention à ça ! tu es sûr que tu en as besoin !

Oui en cas ou on met un gros nombre sans savoir et avec ce USF on peut le voir et aller annuler l'impression s'il faut

Ouf! Tu as du goût pour les noms longs...

Tout marche comme il faut à 99.99 % sauf ceci :

  ImpressionEncours.LImpressionEnCours.Caption = "Vos documents sont en cours d'impression en " _
             & cpImpr & " exemplaires." 

Parce qu'il m'affiche Vos documents sont en cours d'impression en 1

et donc exemplaires. ne s'affiche pas.

Mais merci bcp pour ton aide et ta disponibilité parce que mon USF pour l'impression est fini enfin presque il lui manque 0.01 %

Bonne pâques et j’espère que la chasse aux œufs était bonne

Faut l'agrandire. C'est qu'elle est pas assez grande pout tout contenir.

Les oeufs ! J'avais liquidé la nuit dernière.

MFerrand a écrit :

Les oeufs ! J'avais liquidé la nuit dernière.

Donc au mois la chasse était bonne la nuit dernière.

J'ai bien agrandi mon USF ImpressionEncours, je lui est mis d'abord

Width = 700 puis Width = 1020,75 dans les propriétés de USF mais toujours même erreur cad qu'il me manque mot exemplaires. après la variable & cpImpr &

Dans USF j'ai ceci : Vos documents sont en cours d'impression en X où X représente nombre de copies.

Agrandir le Userform, OK ! Mais c'est aussi et surtout l'étiquette qu'il faut agrandir !

MFerrand a écrit :

Agrandir le Userform, OK ! Mais c'est aussi et surtout l'étiquette qu'il faut agrandir !

Yep je n'avais plus mes yeux devant comme quoi faut pense à toutes ces petits détail !

Merci et encore et Bravo

Bonjour à tous je viens exposer mon projet un similaire au sujet

je disqpose dans mon classeur deux feuille que je voudrais imprimer en une seule. Pour ce faire j'ai nommer des zone d'impression

zone d'impression 1 nommée "METEO"

je voudrais l’imprimer en pdf en en portrait

Zone d'impression 2 nommée "Analyse"

cette zone est en effet un tableau que je voudrais imprimer à la suite de la première zone d'impression en PDF mais en "Paysage". Aussi le tableau étant petit serait t'il possible qu'il prennent tout les bord de la feuille en Paysage (c'est à dire zoomer au maximum sur la page) pour une meilleure lecture.

capture

Je travaillais sur le code ci dessous

Sub Print_Janvier()
    ActiveSheet.PageSetup.PrintArea = "METEO" 'comment ajouter la seconde zone apres la première ici?
    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
Rechercher des sujets similaires à "macro imprimer zone impression fois"