IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

nombre de page d'un fichier PDF


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut nombre de page d'un fichier PDF
    Bonjour à tous

    j'utilise une macro qui permet de compter le nombre de page dans un fichier pdf depuis quelques temps déjà et jusqu'ici pas de problème
    je viens de l'utiliser pour 3 pdf et au lieu de m'afficher le nombre de feuilles réelles
    je regarde sur internet et a priori ce problème est récurrent avec la macro ci dessous
    une personne a t'il réussi à régler le problème?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Sub Test()
    Dim MyPath As String, MyFile As String
    Dim I As Long
    MyPath = ActiveWorkbook.Path '& "/"
    MyFile = Dir("*.pdf", vbDirectory)
    Range("A:B").ClearContents
    Range("A1") = "File Name": Range("B1") = "Pages"
    Range("A1:B1").Font.Bold = True
    I = 1
    Do While MyFile <> ""
    I = I + 1
    Cells(I, 1) = MyFile
    Cells(I, 2) = GetPageNum(MyFile)
    MyFile = Dir
    Loop
    Columns("A:B").AutoFit
    MsgBox "Total of " & I - 1 & " PDF files have been found" & vbCrLf _
    & " File names and corresponding count of pages have been written on " _
    & ActiveSheet.Name, vbInformation, "Report..."
    End Sub
    '
    Function GetPageNum(PDF_File As String)
    'Haluk 19/10/2008
    Dim FileNum As Long
    Dim strRetVal As String
    Dim RegExp
    Set RegExp = CreateObject("VBscript.RegExp")
    RegExp.Global = True
    RegExp.Pattern = "/Type\s*/Page[^s]"
    FileNum = FreeFile
    Open PDF_File For Binary As #FileNum
    strRetVal = Space(LOF(FileNum))
    Get #FileNum, , strRetVal
    Close #FileNum
    GetPageNum = RegExp.Execute(strRetVal).Count
    End Function
    y a t'il un caractère parasite dans les pdf ou il faut modifier la macro pour des cas à la marge?

    merci pour vos pistes ou autres

    david

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 950
    Points : 9 279
    Points
    9 279
    Par défaut
    hello,
    sinon il y a la bibliothèque COM Quick PDF Library Lite ​d'utilisation libre qui permet de faire cela assez facilement exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Read_NbPages_PDF()
    Dim QP As New DebenuPDFLibraryLite1114.PDFLibrary
    Dim fileName, PageText As String
    fileName = "D:\Temp\monDocument.pdf"
    Dim docID As Long
    docID = QP.NewDocument()
    QP.LoadFromFile fileName, ""
    Debug.Print QP.pagecount
    QP.RemoveDocument (docID)
    End Sub
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut
    bonjour Jurassik pork

    merci de ta réponse
    j'ai installé le .dll indiqué dans ton message
    par contre après avoir installé celui ci j'ai tout de même un message d'erreur à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docID = QP.NewDocument()
    le message est le suivant : classe non enregistrée

    as tu une idée d'où peu venir le problème ?

    merci d'avance

    david

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénierie de Maintenance
    Inscrit en
    Août 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénierie de Maintenance

    Informations forums :
    Inscription : Août 2018
    Messages : 28
    Points : 42
    Points
    42
    Par défaut nombre de page d'un fichier PDF
    bonjour à tous,

    j'ai passé la Sub Test sur un ensemble de pdf, exécution jusqu'au bout sans aucun souci en XL2007...

Discussions similaires

  1. [XL-2007] Nombre de pages d'un fichier PDF
    Par timtim0 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/09/2019, 22h23
  2. [PHP 5.1] Récupération du nombre de pages d'un fichier PDF
    Par marcandre dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2013, 10h33
  3. Connaitre le nombre de page d'un fichier Word
    Par abbd dans le forum Services Web
    Réponses: 1
    Dernier message: 23/02/2009, 11h26
  4. Nombre de pages d'un fichier PDF
    Par ggpm07 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 13/04/2008, 13h44
  5. [FPDF] d'une page php à un fichier PDF
    Par meryem85 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 25/06/2007, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo