[VBA] Récupérer le nombre de pages d'une feuille

Récupérer le nombre de pages d'une feuille [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 10-02-2010 à 15:34:18    

Salut à tous !
 
J'ai plusieurs feuilles Excel.
Chaque feuille Excel doit être imprimé... et chaque feuille Excel s'imprime sur plusieurs pages.
Je cherche à renseigner un tableau qui va récupérer le nombre de pages imprimées de chacune de ces feuilles.
 
J'ai utilisé deux types de méthode pour retrouver cela :
 
- ExecuteExcel4macro("GET.DOCUMENT(50)" ) +1
- (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)
 
Les deux méthodes ne fonctionnent pas correctement... parfois cela marche et parfois cela ne marche pas... ???????  :??:  
J'y comprends rien là !
Pour une certaine feuille, je clique sur 'Aperçu avant impression' et je ne vois qu'une page (page 1 sur 1 en bas à gauche).
La formule ExecuteExcel4macro("GET.DOCUMENT(50)" ) +1 me donne 2 !  :fou:  
La feuille suivante qui a 5 pages affiche bien 5 pages (Aperçu : page 1 sur un total de 5) et la formule ExecuteExcel4macro("GET.DOCUMENT(50)" ) +1 me donne bien 5...  :pt1cable:  
 
Existe-t-il une autre méthode plus sympathique ???
  :D


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 10-02-2010 à 15:34:18   

Reply

Marsh Posté le 14-02-2010 à 14:40:53    

UP


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 16-02-2010 à 14:54:57    

Bonjour
 
Aucun souci avec ce genre de code :
 

Code :
  1. Sheets(1).Select
  2. Sheets("Donnees" ).Cells(2,1).Value = ExecuteExcel4Macro("GET.DOCUMENT(50)" )


 
Edit : Je mettais comme toi, dans un tableau le nb de pages de chaque onglet.
Je viens de tester, ca marche nickel...
 
Edit 2 : Pourquoi mets tu "+1" ?


Message édité par SuppotDeSaTante le 16-02-2010 à 14:56:14

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 23-01-2015 à 13:21:02    

Bonjour,
j'ai exactement le même souci .. impossible d'obtenir le nombre de page total de ma feuille
j'ai lu attentivement les commentaires sur le sujet
voici les 3 procédures que j'ai créé mais rien n'y fait. j'obtiens 1 au lieu de 5. puis-je vous envoyer mon document et comment ? :
 
Sub nbpage()
Dim nbf As Integer
Sheets(2).Select
nbf = ActiveSheet.HPageBreaks.Count + 1
 
MsgBox "Nombre de feuille : " & nbf
End Sub
------------------------------------------------------------------
Sub nbpage2()
Dim nbf As Integer
Sheets(2).Select
Range("A24" ).Select
Sheets(3).Cells(1, 1).Value = ExecuteExcel4Macro("GET.DOCUMENT(50)" )
 
'MsgBox "Nombre de feuille dans la : " & nbf
End Sub
------------------------------------------------------------------
Sub nbpage3()
 Dim plage As String
    Dim pageOriginale As Worksheet
    Set pageOriginale = ActiveSheet
 
 
    MsgBox ("nb Ligne = " & pageOriginale.UsedRange.Rows.Count)
    plage = "$A$1:$T$" & pageOriginale.UsedRange.Rows.Count
 
    MsgBox ("Plage = " & plage)
 
    pageOriginale.PageSetup.PrintArea = plage
 
    MsgBox ("nbBreaks = " & pageOriginale.HPageBreaks.Count)
End Sub


---------------
Je vous remercie par avance pour votre aide.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed