Macro zone d'impression dernière ligne saisies Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
l
liod
Membre habitué
Membre habitué
Messages : 98
Inscrit le : 3 avril 2013
Version d'Excel : 2007

Message par liod » 23 septembre 2014, 14:49

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 !
COMPT2000.xlsm
(216.78 Kio) Téléchargé 36 fois
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'040
Appréciations reçues : 37
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 23 septembre 2014, 16:26

bonjour
cela doit ressembler a ceci :
ActiveSheet.PageSetup.PrintArea = "A8:S" & Range("B65536").End(xlUp).Row
ActiveWindow.SelectedSheets.PrintPreview
Fred
COMPT2000.xlsm
(218.63 Kio) Téléchargé 64 fois
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
l
liod
Membre habitué
Membre habitué
Messages : 98
Inscrit le : 3 avril 2013
Version d'Excel : 2007

Message par liod » 24 septembre 2014, 09:30

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?
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'040
Appréciations reçues : 37
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 24 septembre 2014, 22:41

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
COMPT2000 (1).pdf
(19.49 Kio) Téléchargé 71 fois
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
l
liod
Membre habitué
Membre habitué
Messages : 98
Inscrit le : 3 avril 2013
Version d'Excel : 2007

Message par liod » 26 septembre 2014, 13:40

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
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'040
Appréciations reçues : 37
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 26 septembre 2014, 18:52

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
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message