Bouton qui ajuste zone d'impression puis imprime

Bonjour le forum,

Je souhaiterai réaliser un bouton qui m'ajusterai ma zone d'impression sur ma page "produccion" de A1 à Uy, "y" étant la dernière ligne remplie de mon tableau colonne A à U. De plus il faudrait qu'il lance l'impression avec pour paramètres : format paysage et faire entrée toute les colonne sur une feuille.

Je n'ai rien réussi à adapter à mon programme est-ce que l'un d'entre vous aurai une idée de code que je puisse tester?

Un grand merci

Bonjour,

Un fichier exemple pour une explication plus claire ?

"y" est l'inconnue pour la zone d'impression ?

Si tu as réalisé la mise en page de ton onglet avec l'option ajuster automatiquement à la page ; je vois pas

ou est le probléme ?

Ensuite un bouton commande avec

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

devrait suffir ?

Un fichier exemple n'est pas nécessaire : j'ai un tableau qui s'étends de la colonne A à la colonne U et dont le nombre de ligne change régulièrement (rempli de données confidentielles). Mais si tu y tiens je peux te faire un tableau de la colonne A à la colonne U sur excel.

C'est pour cela qu'il faudrait que le bouton avant d'imprimer me redéfinisse la zone d'impression de la feuille en prenant en compte toutes les lignes remplies jusqu'à la dernière sachant qu'elle varie.

Exple : des fois la zone à imprimer sera A1:U8, des fois A1:U54, des fois A1:U24.

Est ce que j'ai été assez clair? sinon je te mets lun fichier

C'est pour cela qu'il faudrait que le bouton avant d'imprimer me redéfinisse la zone d'impression de la feuille en prenant en compte toutes

Et c'est pour celà que je t'ai répondu que dans les options de mise en page de ton onglet tu peux :

Définir le mode paysage et sélectionner l'option d'ajustement "automatique de la feuille à une page"

Une fois enregistré çà changera tout seul. ( même en cas de changement d'imprimante)

Ainsi pas de zone d'impression.

Ensuite un simple bouton auquel on affecte une macro avec les lignes précédemment données et voilà ton bouton automatique.

Ok pour le mode paysage cependant je ne peux pas ajuster à une feuille car j'ai d'autres chose à droite de ma colonne U que je ne veux pas voir apparaitre dans mon impression (d'où la zone d'impression).

Et je ne comprends pas le bouton dont tu me parle, les lignes que je t'ai mentionné en exemple était juste un exemple, je ne sais pas combien de ligne il aura à chaque fois que le tableau sera rempli.

Dans ce cas là tu mets une zone d'impression en sélectionnant tes colonnes A à U comme çà plus rien à droite

( pour le reste en ajustement auto et c'est bon. )

Traduction en "ajustement auto à la page" si il y a 24 lignes excel fera avec 24 si il y a 48 excel fera en 48.

Pour le bouton ben c'est toi qui voulait un bouton pour imprimer d'après ce que j'ai lu dans le premier post

149testpaysage.xlsm (18.75 Ko)

Merci,

le problème avec cette technique c'est qu'il me met toutes les lignes sur une même feuille et après c'est écrit en minuscule et ce n'est pas ce que je cherche à faire, une fois mes colonne toutes entrée sur la feuille, il faut que les lignes garde leur taille et qu'elle s'imprime sur une autre feuille si jamais il y en a plus que la contenance d'une seule feuille

Bonjour Pintura, Xmenpl, le forum,

Ta demande n'est pas très claire,

Je souhaiterai réaliser un bouton qui m'ajusterai ma zone d'impression sur ma page "produccion" de A1 à Uy, "y" étant la dernière ligne remplie de mon tableau colonne A à U. De plus il faudrait qu'il lance l'impression avec pour paramètres : format paysage et faire entrée toute les colonne sur une feuille.

il faut que les lignes garde leur taille et qu'elle s'imprime sur une autre feuille si jamais il y en a plus que la contenance d'une seule feuille

Donc au départ tu souhaites que cela tienne sur une seule feuille, et ensuite tu souhaites conserver les dimensions des colonnes donc l'impression peut se faire sur 2 feuilles ?

A tester:

************ impression sur 2 feuilles

Sub test()

   Dim DernLigne As Long                                               'déclaration de la variable Dernligne (dernière ligne)
       DernLigne = Range("A" & Rows.Count).End(xlUp).Row               'cherche la dernière ligne

    With Sheets("produccion")
        .PageSetup.Orientation = xlLandscape                           'mode paysage
        '.Range("A1:U" & DernLigne).PrintPreview                       'aperçu avant impression
        .Range("A1:U" & DernLigne).PrintOut                            'imprime de A1 à U et dernière ligne remplie
    End With

End Sub

***********impression sur une seule feuille

Sub test()

   Dim DernLigne As Long                                               'déclaration de la variable Dernligne (dernière ligne)
       DernLigne = Range("A" & Rows.Count).End(xlUp).Row               'cherche la dernière ligne

    With Sheets("produccion")
        .PageSetup.Orientation = xlLandscape                           'mode paysage
        .PageSetup.Zoom = False                                        'impression sur une seule page
        '.Range("A1:U" & DernLigne).PrintPreview                       'aperçu avant impression
        .Range("A1:U" & DernLigne).PrintOut                            'imprime de A1 à U et dernière ligne remplie
    End With

End Sub

Cordialement,

Bonjour,

J'ai un tableau avec un nombre de colonne connue et un nombre de ligne variable :

donc je veux que les colonnes tiennent toutes sur une feuille lors de l'impression et non pas qu'elle s'étale sur deux feuilles en largeur et que cela me donne un tableau coupé;

Par contre en fonction du nombre de ligne cela pourra tenir sur une ou plusieurs feuilles selon si elle prenne beaucoup de place , je ne veux pas que cela rapetissent mon tableau pour faire tenir toutes les lignes sur une feuille parce qu'après c'est illisible.

Re, merci pour tes précisions, je n'avais pas cerné le problème.

En fait , tu souhaites ajuster la largeur uniquement.

Sub test()

   Dim DernLigne As Long                                               'déclaration de la variable Dernligne (dernière ligne)
       DernLigne = Range("A" & Rows.Count).End(xlUp).Row               'cherche la dernière ligne

    With Sheets("produccion")
        .PageSetup.Orientation = xlLandscape                           'mode paysage
        .PageSetup.Zoom = False                                        'mise à l'échelle définit par FitToPagesWide = 1
        .PageSetup.FitToPagesWide = 1                                  'toutes les colonnes sur une page
        '.Range("A1:U" & DernLigne).PrintPreview                       'aperçu avant impression
        .Range("A1:U" & DernLigne).PrintOut                            'imprime de A1 à U et dernière ligne remplie
    End With

End Sub

Cordialement,

Oui xorsankukai,

Alors j'étais en train de tester tes codes en même temps et ton premier code celui sur deux feuilles fonctionne très bien pour ce que je veux faire, il est génial S'il y a des lignes pour remplir 3 feuilles il m'en imprime 3 etc. et il reste bien de la colonne A à la colonne U. C'est parfaitement ce que je cherchais

Un grand merci à toi et à Xmenpl pour votre aide

Je mets résolu

Bonne journée à vous

En fait , tu souhaites ajuster la largeur uniquement.

Bonjour xorsankukai et Pintura

Si la question avait été bien formulée depuis le départ on aurait gagné du temps ; par ailleurs ma solution fonctionne aussi

avec une Zone d'impression de la colonne A à U et une mise en page : Avec L'option "Automatique sur les colonnes uniquement"

puisque le nombre de page ne te déranges plus

nouvelle image 26
Rechercher des sujets similaires à "bouton qui ajuste zone impression puis imprime"