Message pour indiquer le nombre de pages (non vides) à imprimer dans une sélection

Webperegrino

XLDnaute Impliqué
Dans une macro, je fais passer l’ordre d’imprimer le document dont les lignes peuvent être variables, par l’ordre suivant, avec zone A1 : P900 comme << Zone d’impression définie >>:
Sheets(7).PrintPreview ‘ le n° 7 étant la feuille en question
Ceci me permet de visualiser les premières pages jusqu’à trouver le numéro de la dernière page X contenant encore des données à imprimer.
Je peux alors indiquer la quantité de pages à imprimer : 1 à X, et passer en impression.
Un spécialiste peut-il m’indiquer une composition de formulation en macro permettant :
1 - De détecter la dernière ligne complétée dans mon tableau ligne 1 à ligne 900
2 – De trouver à quelle page cette dernière ligne non vide est placée
3 – Effectuer un << Sheets(7).PrintOut >> uniquement de la page 1 à cette dernière page non vide
… pour exclure automatiquement les autres pages vides inutiles à imprimer.
(J’aurai bien sûr prédéfini dans « Mise en page » :
- l’orientation A4 paysage
- les marges
- l’ajustement à 1 en largeur et 30 en hauteur
- le pied de page dont le n° de page imprimée
- les lignes répétées en haut de chaque page)
Cette trouvaille me rendrait bien service.

Voici ma macro

Sub ImprBalanceDétail() 'Feuil7
Application.ScreenUpdating = False
Sheets("BALANCE_DÉTAILLÉE").Select
Range("A1:p900").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$P$900"
ActiveWindow.SelectedSheets.PrintPreview 'Sheets("BALANCE_DÉTAILLÉE").PrintPreview
InputBox ("Entrez jusqu'à quelle page (n°) vous désirez l'impression :")
If Message = "" Then Exit Sub
x = Message
Range("A7").Select
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=x, Copies:=1 'To:=8 par exemple
Application.ScreenUpdating = True
End Sub

Je ne vois pas où est mon erreur :
Quand j'active cette macro, avec l'indication des deux premières pages à imprimer par exemple (dans le message qui s'affiche)... :
- l'impression ne se fait pas
,- la feuille reste sélectionnée sur toute la plage alors de "sortir" pour placement du curseur en "A7".

Déjà merci à celui qui se penchera sur ce problème.
Webperegrino
 

Webperegrino

XLDnaute Impliqué
Re : Message pour indiquer le nombre de pages (non vides) à imprimer dans une sélecti

Bonjour Le FORUM,
J'ai trouvé !
Et encore grâce à vous, notamment à MTH et à VINCEGR.
J'ADORE CE FORUM !
Cordialement à vous tous,
Webperegrino

Voici la macro rectifiée ; elle fonctionne parfaitement et je vous recommande de l'utiliser, ça limitera le gaspillage de vos ramettes de papier.

Code :
Sub ImprBalanceDétail() 'Feuil7
Application.ScreenUpdating = False
Sheets("BALANCE_DÉTAILLÉE").Select
Range("A1:p900").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$P$900"
ActiveWindow.SelectedSheets.PrintPreview
Range("A7").Select
'Solution de MTH et de VINCEGR du 23/09/2010 <<Impression VBA>>, adaptée à mon applicationDim Lig As Long
Sheets("BALANCE_DÉTAILLÉE").Select
Lig = Sheets("BALANCE_DÉTAILLÉE").Range("A900").End(xlUp).Row
Sheets("BALANCE_DÉTAILLÉE").PageSetup.PrintArea = "$A$1:$P$" & Lig
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 683
Messages
2 090 894
Membres
104 690
dernier inscrit
caujolle