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.

Sub PlusieursPages()
Dim tpage(1 To 10) 'à ajuster
Dim s As Integer, i As Integer
Dim msg As String
Dim tpages As String
tpages = 0
For s = 1 To Sheets.Count
tpages = tpages + (Sheets(s).HPageBreaks.Count + 1) * (Sheets(s).VPageBreaks.Count + 1)
Next s
For i = 1 To Sheets.Count
tpage(i) = (Sheets(i).HPageBreaks.Count + 1) * (Sheets(i).VPageBreaks.Count + 1)
Next
msg = "Le Nbre total de pages dans le classeur est de : " & tpages & vbLf & vbLf
For i = 1 To Sheets.Count - 1
msg = msg + "Le Nbre de pages dans la feuille " & i & " est de : " & tpage(i) & vbLf
Next
msg = msg + "Le Nbre de pages dans la feuille " & Sheets.Count & " est de : " & tpage(Sheets.Count)

MsgBox msg
End Sub
 

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+
 

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
552

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2