Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA Récupérer le nombre de pages à imprimer

Matt51140

XLDnaute Nouveau
Bonjour le forum,

Par l'enregistreur (quand je paramètre le nombre de feuille à imprimer) j'obtiens ceci :

Code:
 ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate _
        :=True, IgnorePrintAreas:=False

Est il possible de récupérer (dans un before_print par exemple) la valeur affectée à "To:=" afin de l'insérer dans un pied de page (ce que je sais faire).

J'ai une méthode avec un bouton et une inputbox qui demande le nombre de page à imprimer mais j'aimerais que l'utilisateur utilise la méthode classique d'inpression.

Merci d'avance,

A+, Matt.
 

Matt51140

XLDnaute Nouveau
Re : VBA Récupérer le nombre de pages à imprimer

Bonjour,

D'après ce que je comprends cette fonction compte le nombre de saut de pages. Dans mon fichier, j'ai 15 pages en hauteur. L'utilisateur n'a pas besoin d'imprimer ces 15 pages systématiquement. C'est pourquoi, il définit le nombre de pages à imprimer. C'est ce nombre que j'ai besoin de récupérer.

A+
 

Matt51140

XLDnaute Nouveau
Re : VBA Récupérer le nombre de pages à imprimer

Re,

non ce n'est pas ça. Je crois que je me fais mal comprendre. Pour moi ces fonctions indiquent le nombre de page total ou en hauteur existant sur l'onglet.
Ce que je veux c'est quand l'utilisateur indique, dans les paramètres d'impressions, d'imprimer les pages 1 à 5, récupérer le chiffre 5.

A+
 

gilbert_RGI

XLDnaute Barbatruc
Re : VBA Récupérer le nombre de pages à imprimer

Faites une boucle de 1 à n pages '(sheets.count)

avec l'une ou l'autre fonction cela vous indiquera le nombre total de feuilles

dans le cas que vous citez le 5 représente bien le nombre total de feuilles à imprimer
 

Matt51140

XLDnaute Nouveau
Re : VBA Récupérer le nombre de pages à imprimer

Bonjour,

Désolé de ne reprendre le fil que maintenant.
Gilbert, je crois comprendre ce que vous me suggérer. Me mettriez un petit bout de code pour me lancer car là je ne vois pas comment incrémenter le nombre de feuilles imprimées ?

A+
 

gilbert_RGI

XLDnaute Barbatruc
Re : VBA Récupérer le nombre de pages à imprimer

ben comme ceci peut-être.

 

camarchepas

XLDnaute Barbatruc
Re : VBA Récupérer le nombre de pages à imprimer

Bonjour Matt,

Comment l'utilisateur fait-il pour selectionner les feuilles à imprimer ?

Peut -être qu'en passant par un userform , en plus d'être plus ergonomique, tu récupérerais exactement le nombre de pages,

Par validation du userform , tu déclencherais ensuite l'impression ....

par
Selection.PrintOut From:=4, To:=6, Copies:=1, Collate:=True, _
IgnorePrintAreas:=False

par exemple

Cordialement,
 

Matt51140

XLDnaute Nouveau
Re : VBA Récupérer le nombre de pages à imprimer

Re,

Gilbert, Sylvain vos solutions ne marchent pas dans mon cas. Elles me renvoient toutes deux au nombre total de page (déterminer par ma mise en page) qu'il y a sur ma feuille et non au nombre de feuille à imprimer sélectionné par l'utilisateur.

camarchepas, chaque page (identique au demeurant) correspond à une "action". Si l'utilisateur a effectué trois actions alors il a de ce fait rempli les trois premières pages. Il indique alors à Excel d'imprimer les pages de 1 à 3 (menu classique : Fichier/Imprimer...)
Pour ce qui est du userform, je voudrais pouvoir m'en passer (que l'utilisateur utilise Excel de manière normale).

A+
 

Matt51140

XLDnaute Nouveau
Re : VBA Récupérer le nombre de pages à imprimer

Je vous joins mon fichier expurgé peut-être cela sera-t-il plus clair.

A+
 

Pièces jointes

  • test.xlsm
    25 KB · Affichages: 46
  • test.xlsm
    25 KB · Affichages: 45
  • test.xlsm
    25 KB · Affichages: 47

Sylvain

XLDnaute Occasionnel
Re : VBA Récupérer le nombre de pages à imprimer

Dim sh as worksheet,nb_pages
for each sh in ActiveWindow.SelectedSheets
sh.activate
nb_pages= nb_pages+Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
next
 

camarchepas

XLDnaute Barbatruc
Re : VBA Récupérer le nombre de pages à imprimer

Matt,

Peut -être une autre solution :

Faire une boucle en vba parcourant les zones afin de déterminer si il y a au moins une cellule non vide ?

A chaque fois que l'on trouve au moins une cellule non vide , c'est que la page est à imprimer , et comme cela l'on peut retrouver le nombre de pages ?

Cordialement
 

Discussions similaires

Réponses
1
Affichages
559
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…