simplifier un code d'impression

fr832

XLDnaute Occasionnel
Bonsoir à tous j'ai eu ce code pour une impression grâce à l'enregistreur VBA, le problème c'est que le code est long à ce réaliser y a t'il moyen d'alleger ce code ?
Par avance merci à tous

Code:
Sub impressionordinaires()

    Range("A2:F48").Select
    ActiveSheet.PageSetup.PrintArea = "$A$2:$F$48"
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$2:$4"
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = "$A$2:$F$48"
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = "&""Times New Roman,Italique""&9Imprimé le &D"
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.393700787401575)
        .RightMargin = Application.InchesToPoints(0.393700787401575)
        .TopMargin = Application.InchesToPoints(0.393700787401575)
        .BottomMargin = Application.InchesToPoints(0.393700787401575)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 71
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    ActiveWindow.SelectedSheets.PrintPreview
End Sub
 

fr832

XLDnaute Occasionnel
Re : simplifier un code d'impression

rebonjour désolé pour le doublon mais je pensais qu'il fallait retraité un autre post.
Voila ce que je cherche à réaliser, car j'ai pas réussi sur les conseils de staple 1600
je cherche à réaliser deux macros pour imprimer des pages .
La premiere je voudrais imprimer les pages 1 et 2 avec repport des lignes 2;3;4 sur la deuxième page.

La deuxième macro imprimer les pages 3 et 4 avec repport des lignes 49;50 ;51 sur la quatrième page.

Par avance merci et encore désolé pour le doublon

Cijoint.fr - Service gratuit de dépôt de fichiers
 

fr832

XLDnaute Occasionnel
Re : simplifier un code d'impression

rebonjour ce fichier est qu'un extrait j'ai effectivement ton code ,qui fonctionne trés trés bien mais j'essaye de modifier l'impression en mettant les lignes a recopier sur les feuilles 2 et 4.ainsi que de voir un aperçu avant l'impression.
Mais je ne boude en aucun cas ton code mais simplement d'ameliorer mon fichier, et suis trés reconnaissant de l'aide que tu m'apportes ainsi qu'a tous les personnes du forum.
Amitiés
 

fr832

XLDnaute Occasionnel
Re : simplifier un code d'impression

voila le code que staple m'avait fournit il fonctionne trés bien sauf que je cherche à modifier la mise en page sur les feuilles , merci pour votre aide .
Code:
Sub choixprint()
Dim type_print
type_print = MsgBox("type impression", vbYesNo, "choix")
Select Case type_print
Case vbYes
printm 1, 2
Case vbNo
printm 3, 4
End Select
End SubCode:
Sub printm(paged As Long, pagef As Long, Optional nbcop As Long = 1)
Sheets("PV bosses").PrintOut From:=paged, To:=pagef, Copies:=nbcop
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : simplifier un code d'impression

Re


Code que l'on peut modifier ainsi

Code:
Sub feuille_temp()
Const f As String = "PV bosses"
Sheets(f).Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Temp_" & Int((Second(Time) + 100000 * Rnd) + 1)
End Sub
Ensuite tu mets en forme cette feuille Temp


Pour l'effacer :
Code:
Sub efface_temp()
Dim s As Worksheet
For Each s In Worksheets
If s.Name Like "Temp_*" Then
Application.DisplayAlerts = False
s.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 134
Messages
2 116 611
Membres
112 810
dernier inscrit
raphounet