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("A1900").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
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("A1900").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