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

Webperegrino

XLDnaute Impliqué
Supporter XLD
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é
Supporter XLD
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
314 656
Messages
2 111 612
Membres
111 225
dernier inscrit
arnaud3110