Compter le nombre de pages de plusieurs (bcp !!!) documents

sofysofe

XLDnaute Junior
Bonjour,

Je dois compter le nombre de pages d'environ 500 documents word.
Je sais le faire pour un à la fois, mais me dit qu'il dois bien y avoir qqn sur ce forum qui saurait comment le faire automatiquement !

Petite précision, j'ai besoin du nombre total, et non du compte par document. J'i déjà essayer d'utiliser les propriétés des document, mais le nb de pages renvoyé n'est pas correct (à cause de macro utilisée pour insérer des sauts de pages et des sauts de section)

Un grand merci d'avance !
 

MJ13

XLDnaute Barbatruc
Re : Compter le nombre de pages de plusieurs (bcp !!!) documents

Bonjour

Je sais le faire pour un à la fois, mais me dit qu'il dois bien y avoir qqn sur ce forum qui saurait comment le faire automatiquement !

Dans un premier temps, ce serait intéressant que tu nous donnes le code que tu as.

Ce serait plus facile pour t'aider.
 

GarnierFlorian

XLDnaute Nouveau
Re : Compter le nombre de pages de plusieurs (bcp !!!) documents

Salut !

Pour compter le nombre de pages d'un seul document, j'ai trouvé dans la FAQ :

Sub NbrePages()
MsgBox Selection.Information(wdActiveEndPageNumber)
End Sub

Suffit de l'intégrer dans une boucle, ou tu sélectionne un autre doc à chaque fois que tu rentre dans celle-ci.

Peace
 

PMO2

XLDnaute Accro
Re : Compter le nombre de pages de plusieurs (bcp !!!) documents

Bonjour,

Une piste avec le code suivant à copier dans un module standard (Excel ou une autre application Office supportant VBA)

Code:
'''Library Shell32
'''    C:\WINDOWS\system32\SHELL32.dll
'''    Microsoft Shell Controls And Automation
'''Library Word
'''    C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB
'''    Microsoft Word 11.0 Object Library
 
'### Constante à adapter ###
Const CHEMIN_DOSSIER As String = "C:\Test"
'###########################

Sub NbPagesAllDoc()
Dim SH  As Object 'As Shell32.Shell
Dim FoldIT  As Object  'As Shell32.FolderItem
Dim FOL  As Object    'As Shell32.Folder
Dim AppWord  As Object  'As Word.Application
Dim myDoc  As Object  'As Word.Document
Dim nbDoc&
Dim nbPages&
Dim nbTotalPages&
Set SH = CreateObject("Shell.Application")
Set FOL = SH.Namespace(CHEMIN_DOSSIER)
For Each FoldIT In FOL.Items
  If FoldIT.isFolder = False Then
    If LCase(Right(FoldIT, 4)) = ".doc" Then
      nbDoc& = nbDoc& + 1
      If AppWord Is Nothing Then Set AppWord = CreateObject("Word.Application")
      Set myDoc = AppWord.Documents.Open(CHEMIN_DOSSIER & "\" & FoldIT & "")
      nbPages& = myDoc.Windows(1).Panes(1).Pages.Count
      nbTotalPages& = nbTotalPages& + nbPages&
      myDoc.Close 0 'wdDoNotSaveChanges
      Set myDoc = Nothing
    End If
  End If
Next FoldIT
If Not AppWord Is Nothing Then
  AppWord.Quit
  Set AppWord = Nothing
End If
MsgBox nbTotalPages & " pages dans " & nbDoc& & " fichier(s) .doc"
End Sub

Mettez tous vos fichiers .doc dans le même répertoire.
Adaptez la constante CHEMIN_DOSSIER cernée par des ###
Lancez la macro NbPagesAllDoc


Cordialement.

PMO
Patrick Morange
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 393
Membres
103 537
dernier inscrit
alisafred974