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é

48test.xlsx (113.87 Ko)

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

Rechercher des sujets similaires à "zone impression dynamique"