Zone d'impression dynamique
Bonjour,
J'ai fait un bouton a partir d'une forme j'ai créer un module et j'ai mis cette macro :
Sub Imprimer()
'********************************************************************
'ROUTINE POUR COPIER ENTETE DATE TITRE No DE PAGE SUR TOUTE LES PAGES
'********************************************************************
With Worksheets("Achats")
With .PageSetup
.PrintTitleRows = "$1:$1" 'COPIE 1Ere LIGNE SUR CHAQUE FEUILLE
.LeftHeader = "&""Arial,Gras""&D" 'AFFICHE DATE A GAUCHE
.CenterHeader = "&""Arial,Gras""&14ACHATS MARTIN DESSERT" 'TITRE DE LA PAGE
.CenterFooter = "Page &P de &N" 'INDIQUE PAGE 1 SUR 2 PAR Ex
End With
.PrintOut 'ENLEVER " ' " EN DEBUT LIGNE POUR IMPRIMER LA FEUILLE ACHATS
End With
End Sub
et lorsque que je regarde l'aperçu avant impression j'ai impression de la page 1 à 11 alors que je n'aie qu'une feuille à imprimer
par contre si je créer un bouton de commande et que je met cette macro
tout fonctionne bien je peux imprimer 1 ou 2 ou 3 pages selon la longueur ce code ce trouve dans "feuil2(Achats)" et non dans un module
Private Sub CommandButton1_Click()
'********************************************************************
'ROUTINE POUR COPIER ENTETE DATE TITRE No DE PAGE SUR TOUTE LES PAGES
'********************************************************************
With Worksheets("Achats")
With .PageSetup
.PrintTitleRows = "$1:$1" 'COPIE 1Ere LIGNE SUR CHAQUE FEUILLE
.LeftHeader = "&""Arial,Gras""&D" 'AFFICHE DATE A GAUCHE
.CenterHeader = "&""Arial,Gras""&14ACHATS MARTIN DESSERT" 'TITRE DE LA PAGE
.CenterFooter = "Page &P de &N" 'INDIQUE PAGE 1 SUR 2 PAR Ex
End With
.PrintOut 'ENLEVER " ' " EN DEBUT LIGNE POUR IMPRIMER LA FEUILLE ACHATS
End With
End Sub
je voudrais garder ma forme et lui affecter une macro qui me permettrai d'imprimer un nombre de pages selon la longeur de lignes remplies étant nouveau en vba je vous demande votre aide
Merci d'avance pour vos réponses
Cordialement
Bonjour,
Cette image est sans intéret. (illisible)
Ou tu mets une image agrandie, ou (mieux) tu mets cette feuille en fichier joint. Tu peux supprimer la plupart des lignes.
l'important est qu'on puisse bien visualiser la plage à imprimer et les colonnes masquées.
A+
Bonjour,
Merci pour ta réponse effectivement l'image est illisible je joins la feuille comme tu me l'as demandé
Cordialement
Bonjour,
Insérer ces 2 lignes tout de suite après
With .PageSetup
Z = Cells(65535, 2).End(xlUp).Row
.PrintArea = "$B$1:$X$" & Z 'Définition de la zone d'impression
la suite sans changement
A+
Bonjour
ma solution sera peut-être non adapée mais as-tu essayé d'utiliser les paramètrages de l'impression à définir dans le menu MISE EN PAGE / IMPRIMER LES TITRES sans passer par les macros ?
Tu peux dans "entête / pied de page" définir tes données pour chaque feuille imprimée,
Tu peux dans "feuille" définir les lignes qui devront apparaitre en haut et/ou à gauche de tes pages
Tu peux dans "Page" définir que ton document devra toujours être imprimé 1 en largeur sans donner la hauteur et ainsi le document génèrera des pages à mesure que tu ajoutes des lignes
ETC.....
et puis une fois que tu as défini la zone à imprimer (prends quelques lignes vierges à la fin) elle s'adaptera automatiquement lorsque tu ajouteras des lignes entre les lignes du document dès lors que les lignes insérées sont DANS la zone déjà définie...
Bon, c'est une idée..... et désolé si tu connais déjà tout ça....
Bonjour,
Merci à tous les deux pour vos réponses
Avec les deux lignes de code que vous m'avez donné tout fonctionne Merci
Pour la mise en page zone d'impression déjà essayer mais concorde pas avec ce que voulais merci aussi
Cordialement