Compter le nombre de pages avant d'imprimer et utiliser ce nombre dans un message-box

Le
Pierre F.
Bonjour;

J'ai la macro ci-dessous qui me permet d'imprimer une sélection de
lignes d'une page d'un classeur de 16 feuilles.


'macro qui prépare la feuille pour l'impression (colonnes)
PrepImpr
Dim c As Range, myTxt As String

' Impr A310 (sélection des A310 seulement)
Selection.AutoFilter Field:=8, Criteria1:="A310"
Columns("H:H").ColumnWidth = 0
Columns("I:I").ColumnWidth = 0

For Each c In [h6:h800].Cells
If c.EntireRow.Hidden = False Then myTxt = Range("C2") & " - Salle =
" &
CStr(c): Exit For
Next
ActiveSheet.PageSetup.CenterHeader = myTxt
ActiveSheet.PrintOut
--

Je souhaiterais modifier cette macro pour qu'à la place d'imprimer ces =

pages, elle me compte pour chaque feuille (feuilles 2 à 13) le nombre d=
e
pages qui seront imprimées, qu'elle fasse le total pour toutes les page=
s
et garde ce nombre en mémoire pour pouvoir l'utiliser dans un
message-box qui serait:
"Voulez-vous vraiment imprimer les NOMBREdePAGES de ce classeur?"

Merci :-)

Cordialement,
Pierre F.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4534211
2 façons de faire :

En supposant que les onglets des feuilles à imprimer sont sélectionnées

'-------------------------
Sub SelectToutesLesFeuilles

For each sh in ThisWorkbook.Worksheets
Sh.select false
next

MsgBox ActiveWindow.SelectedSheets.HPageBreaks.Count + 1
'OU
MsgBox ExecuteExcel4Macro("GET.DOCUMENT(50)") & " page(s) à imprimer."
End Sub
'-------------------------





"Pierre F." 693d1$464d798a$55da2b80$
Bonjour;

J'ai la macro ci-dessous qui me permet d'imprimer une sélection de
lignes d'une page d'un classeur de 16 feuilles.

---------------
'macro qui prépare la feuille pour l'impression (colonnes...)
PrepImpr
Dim c As Range, myTxt As String

' Impr A310 (sélection des A310 seulement)
Selection.AutoFilter Field:=8, Criteria1:="A310"
Columns("H:H").ColumnWidth = 0
Columns("I:I").ColumnWidth = 0

For Each c In [h6:h800].Cells
If c.EntireRow.Hidden = False Then myTxt = Range("C2") & " - Salle " &
CStr(c): Exit For
Next
ActiveSheet.PageSetup.CenterHeader = myTxt
ActiveSheet.PrintOut
-----------------

Je souhaiterais modifier cette macro pour qu'à la place d'imprimer ces
pages, elle me compte pour chaque feuille (feuilles 2 à 13) le nombre de
pages qui seront imprimées, qu'elle fasse le total pour toutes les pages
et garde ce nombre en mémoire pour pouvoir l'utiliser dans un
message-box qui serait:
"Voulez-vous vraiment imprimer les NOMBREdePAGES de ce classeur?"

Merci :-)

Cordialement,
Pierre F.
JB
Le #4534181
Bonjour,

tpage = 0
For s = 2 To 16 '
tpage = tpage + (Sheets(s).HPageBreaks.Count + 1) *
(Sheets(s).VPageBreaks.Count + 1)
Next s
MsgBox tpage

JB

On 18 mai, 12:53, "MichDenis"
2 façons de faire :

En supposant que les onglets des feuilles à imprimer sont sélectionn ées

'-------------------------
Sub SelectToutesLesFeuilles

For each sh in ThisWorkbook.Worksheets
Sh.select false
next

MsgBox ActiveWindow.SelectedSheets.HPageBreaks.Count + 1
'OU
MsgBox ExecuteExcel4Macro("GET.DOCUMENT(50)") & " page(s) à imprimer."
End Sub
'-------------------------

"Pierre F." 693d1$464d798a$55da2b80$
Bonjour;

J'ai la macro ci-dessous qui me permet d'imprimer une sélection de
lignes d'une page d'un classeur de 16 feuilles.

---------------
'macro qui prépare la feuille pour l'impression (colonnes...)
PrepImpr
Dim c As Range, myTxt As String

' Impr A310 (sélection des A310 seulement)
Selection.AutoFilter Field:=8, Criteria1:="A310"
Columns("H:H").ColumnWidth = 0
Columns("I:I").ColumnWidth = 0

For Each c In [h6:h800].Cells
If c.EntireRow.Hidden = False Then myTxt = Range("C2") & " - Salle " &
CStr(c): Exit For
Next
ActiveSheet.PageSetup.CenterHeader = myTxt
ActiveSheet.PrintOut
-----------------

Je souhaiterais modifier cette macro pour qu'à la place d'imprimer ces
pages, elle me compte pour chaque feuille (feuilles 2 à 13) le nombre de
pages qui seront imprimées, qu'elle fasse le total pour toutes les pages
et garde ce nombre en mémoire pour pouvoir l'utiliser dans un
message-box qui serait:
"Voulez-vous vraiment imprimer les NOMBREdePAGES de ce classeur?"

Merci :-)

Cordialement,
Pierre F.


lSteph
Le #4534151
Bonjour MD,

;o)) voui!

MsgBox ExecuteExcel4Macro("GET.DOCUMENT(50)") & " page(s) à imprimer."


.. z'y avait des trucs biens qd même dans les fonctions macros excel 4
qd je pense que ma collègue l'an dernier voulait jeter le livre...
Je le garde désormais précieusement!

LSteph

MichDenis
Le #4534131
Pour trouver le Fichier d'aide pour les fonctions macros 4.0, c'est un peu vieux ok mais
quand même...
http://download.microsoft.com/download/excel2000/xlmacro/2000/win98/fr/xlmacro.exe



"lSteph"
Bonjour MD,

;o)) voui!

MsgBox ExecuteExcel4Macro("GET.DOCUMENT(50)") & " page(s) à imprimer."


.. z'y avait des trucs biens qd même dans les fonctions macros excel 4
qd je pense que ma collègue l'an dernier voulait jeter le livre...
Je le garde désormais précieusement!

LSteph

Pierre F.
Le #4533991

Je souhaiterais modifier cette macro pour qu'à la place d'imprimer ce s
pages, elle me compte pour chaque feuille (feuilles 2 à 13) le nombre de
pages qui seront imprimées, qu'elle fasse le total pour toutes les pa ges
et garde ce nombre en mémoire pour pouvoir l'utiliser dans un
message-box qui serait:
"Voulez-vous vraiment imprimer les NOMBREdePAGES de ce classeur?"


Merci à tous!!

J'ai essayé vos différentes propositions.
J'ai eu moins de problèmes (mon niveau Macro est faible) à adapter la
solution de JB.

Cordialement,
Pierre F.

Publicité
Poster une réponse
Anonyme