Macro zone d'impression dernière ligne saisies

Bonjour à tous !

Je viens de commencer à me mettre à la programmation VBA et je dois dire que je rame un peu... Je souhaiterai faire une macro qui me définisse automatiquement une zone d'impression en se positionnant automatiquement sur la dernière ligne saisie. mais je ne connais pas le code pour aller jusqu'à la dernière ligne saisie...

Afin de comprendre un peu mieux vous trouverez ci-joint mon tableau COMPTE2000 ci-joint.

Concrètement je voudrais que ma macro sélectionne et définisse sa zone d'impression sur les critères suivants :

- Commencer la zone d'impression de la Ligne A8 à la colonne S jusqu'à la dernière ligne écrite en dessous (dans mon modèle c'est la ligne 62 mais je voudrais vraiment qu'il s'arrête à la ligne ou j'arrête d'écrire).

- Je voudrais que la macro VBA reporte à chaque page la ligne en en tête 1 et 7 (mais je crois que c'est :

    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$7"
        .PrintTitleColumns = ""

)

- Après est-il possible d'être positionné sur la fenêtre aperçu avant impression

- Enfin je souhaiterai rajouter cette macro au bouton "Impression Compta" présent à la ligne 6

Merci d'avance de votre aide les z'amis !

69compt2000.xlsm (216.78 Ko)

bonjour

cela doit ressembler a ceci :

ActiveSheet.PageSetup.PrintArea = "A8:S" & Range("B65536").End(xlUp).Row
ActiveWindow.SelectedSheets.PrintPreview

Fred

127compt2000.xlsm (218.63 Ko)

Merci beaucoup pour ta réponse par contre je ne comprends pas où se trouve dans ta ligne de code la partie qui définit l'en-tête de la ligne 1 à la ligne 7?

Bonsoir

j'avais pas lu toute la question... méa culpa....

voici le code qui doit remplacer celui donné précédemment

Sub PrintCompta()
With ActiveSheet.PageSetup
        .PrintArea = "A1:S" & Range("B65536").End(xlUp).Row
        .PrintTitleRows = "$1:$7"
        .FitToPagesWide = 1
End With
ActiveWindow.SelectedSheets.PrintPreview
End Sub

dans ce code je force l'ajustement de l'impression à une page en largeur et comme cela excel fixe lui meme le nombre de pages a imprimer en fonction du nombre de lignes

fred

114compt2000-1.pdf (19.49 Ko)
fred2406 a écrit :

Bonsoir

j'avais pas lu toute la question... méa culpa....

voici le code qui doit remplacer celui donné précédemment

Sub PrintCompta()
With ActiveSheet.PageSetup
        .PrintArea = "A1:S" & Range("B65536").End(xlUp).Row
        .PrintTitleRows = "$1:$7"
        .FitToPagesWide = 1
End With
ActiveWindow.SelectedSheets.PrintPreview
End Sub

dans ce code je force l'ajustement de l'impression à une page en largeur et comme cela excel fixe lui meme le nombre de pages a imprimer en fonction du nombre de lignes

fred

Merci beaucoup Fred! T'es un AS! Comme je vois que t'es un vrai professionnel , je crois que je vais encore abusé de ton hospitalité...

Voila sur ce même tableau comment t'y prendrai tu pour faire en sorte que la macro VBA supprime les informations suivantes:

  • À partir de la cellule A8 jusqu'à la dernière écriture inscrite en bas
  • À partir de la cellule B8 jusqu'à la dernière écriture inscrite en bas
  • de la colonne F8 à jusqu'à la dernière écriture inscrite en bas

J'ai essayé en vain plein de code j'ai que des messages d'erreur.

Merci d'avance

Bonjour je suis loin d’être un As comme tu dis ce n'est pas du tout mon métier, je fais cela en loisir....

alors si dans la colonne A et B c'est sur qu'elles s'arrêtent sur la même ligne (colonne B)

Range("A8:B" & Range("B65536").End(xlUp).Row).ClearContents

Range("F8:F" & Range("F65536").End(xlUp).Row).ClearContents

si c'est pas sur que les colonnes s'arrêtent à la même ligne

Range("A8:A" & Range("A65536").End(xlUp).Row).ClearContents

Range("B8:B" & Range("B65536").End(xlUp).Row).ClearContents

Range("F8:F" & Range("F65536").End(xlUp).Row).ClearContents

Fred

Rechercher des sujets similaires à "macro zone impression derniere ligne saisies"