Macros impression personnalisée

elodon

XLDnaute Nouveau
Bonjour à tous,
Je me permets de poser une question sur la création de macros sur Excel.
Concernant les impressions.

Je suis un novice, et mon souci est de pouvoir créer pour mon classeur, une macro qui me permet d'avoir le choix, c'est-à-dire :
-Sélectionner en cochant des boutons les feuilles que je souhaite imprimer
-Et imprimer l'ensemble des feuilles du classeur

Je ne sais pas du tout comment m'y prendre, existe t'il une macro déjà toute faite, que j'applique à mon classeur?
Ou le cas échéant m'expliquer la marche à suivre, svp

Merci d'avance, à celui ou ceux qui pourront m'aider
 

Dull

XLDnaute Barbatruc
Re : Macros impression personnalisée

Salut elodon, le Forum

Rien de plus simple

Ouvre ton Fichier en même temps que celui-ci
fait Alt+F11
Fait Glisser l'Userform nommé FrmImprime dans ton Fichier et ça y est il est prêt à l'emploi.

Pour l'appeler soit tu colle un CommandButton dans ta feuille
et tu met comme code VBA

Code:
Private Sub CommandButton1_Click()
    FrmImprime.Show
End Sub
soit directement dans un autre UserForm

Bonne Journée
 

Roland_M

XLDnaute Barbatruc
Re : Macros impression personnalisée

bonjour

ces quelques fonctions à étudier qui peuvent t'éclairer !

Code:
Sub ImpressionApercu() 'ceci ouvre direct aperçu pour imprime
ActiveSheet.PageSetup.PrintArea = [A1].CurrentRegion.Address' <<< cell.haut.gauche d'un range de données
ActiveWindow.SelectedSheets.PrintPreview
End Sub

Sub ImpressionLPT() 'ceci ouvre la boite de dialog imprimante
Feuil$ = "Feuil1" '<<<<<< nom de la feuille
Rang$ = "A1:B10"'<<<<<<<< à voir range de données
LPTZoneImpression$ = Sheets(Feuil$).Range(Rang$) '<<<<<< range de données
LPTOrientationPage = xlPortrait '<<<<<< ou xlLandscape (paysage)
LPTSautDePage = 0 '<<<<<< ou 1 pour autorisation des sauts pages
MsgEntete$ = "bonjour" '<<<<<< voir avec message en entête ou pas =""
' init...
InitImprimante Feuil$, MsgEntete$, LPTZoneImpression$, LPTOrientationPage, LPTSautDePage
' boite de dialogue
Application.Dialogs(xlDialogPrint).Show
End Sub

Sub InitImprimante(Feuil$, MsgEntete$, LPTZoneImpression$, LPTOrientationPage, LPTSautDePage)
EspacH = 0: If MsgEntete$ > "" Then EspacH = 1
With Sheets(Feuil$).PageSetup
    .Zoom = False 'pas true sinon FitToPagesTall invalide
  If LPTSautDePage Then
    .FitToPagesTall = False 'permet le saut de page si trop haut
  Else
    .FitToPagesTall = 1 'impose sur la hauteur de la page
  End If
    .FitToPagesWide = 1 'impose sur la largeur de la page(toujours)
    .Orientation = LPTOrientationPage
    .CenterHorizontally = False
    .CenterVertically = False
    If LPTZoneImpression$ > "" Then .PrintArea = LPTZoneImpression$ 'sinon page entière
    .LeftHeader = MsgEntete$
    .CenterHeader = ""
    .RightHeader = ""
    .LeftFooter = ""
    .CenterFooter = ""
    .RightFooter = ""
    .TopMargin = Application.CentimetersToPoints(EspacH)
    .LeftMargin = Application.InchesToPoints(0)' <<< marge au choix(ici aucune)
    .RightMargin = Application.InchesToPoints(0)
    .HeaderMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
    .FooterMargin = Application.InchesToPoints(0)
End With
End Sub
 

elodon

XLDnaute Nouveau
Re : Macros impression personnalisée

Merci Dull pour ton aide précieuse et Roland cela fonctionne très bien

J'ai une question, je ne sais pas pas pourquoi, lorsque je rajoute une feuille dans le classeur, celle-ci s'ouvre avec des colonnes immense en largeur.
Est-ce un bug ou un fichier qui altere mon classeur
 

damslab

XLDnaute Nouveau
Re : Macros impression personnalisée

Bonjour à tous,
Je suis nouveau sur le forum.
Je cherchait une macro pour choisir mes feuilles à imprimer dans les nombreuses que comporte mon fichier.
J'ai utilisé celle donnée par Dull. Elle marche du tonnerre !!!
Merci :D
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson