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

[VBA] Compter le nombre de page d'un PDF [Résolu]

LeGaulois

XLDnaute Nouveau
Bonjour,
Je cherche à compter le nombre de page d'un fichier PDF. J'ai essayé de les compter en lisant le fichier puis de chercher tout les /Type/Pages, cependant ça ne fonctionne pas. Cela me donne un nombre différent du nombre de pages du PDF.
J'aimerais savoir si c'était possible de faire une telle macro?

Merci

La solution est ICI

Merci pour tout
 
Dernière édition:

LeGaulois

XLDnaute Nouveau
Re : [VBA] Compter le nombre de page d'un PDF

Re-bonjour!
Une nouvelle piste (que j'ai trouvé dans ce forum : ICI) serrait d'explorer le fichier PDF jusqu'à arriver à la dernière page.
Pour faire cela, j'ai ajouté dans les références : Microsoft Internet Controls
Puis j'ai créé un objet Internet Explorer, et j'ai ouvert le PDF page par page dans le navigateur jusqu'à que j'ai un message d'erreur, ce qui veut dire que je suis arrivé à la fin du PDF.

Le problème avec cette technique, c'est que lorsqu'on arrive à la fin du PDF on a un message d'erreur qui arrête le programme. Et c'est une technique assez lourde si l'on souhaite faire ça avec des centaines de PDF et qui sont en plus assez conséquent.

Personne n'a de solution à proposer ?

EDIT : RE-re-bonjour!
Encore une troisième solution, mais qui pose encore un soucis pour la réalisation de mon problème.
Celle ci consiste à lire les propriétés des fichiers, quel que soit la nature du fichier, cependant avec les fichiers PDF, contrairement par exemple à un fichier excel, je ne vois pas le nombre de pages...

Aussi il faut savoir qu'on utilise la version Reader d'Adobe. Il me semble que ça joue un rôle...

Je précise tout de même que le code doit être exportable sur les versions d'excel 2002 jusqu'à la plus récente.
Et qu'on est sur des environnements Windows XP, mais qu'il se peut que ça évolue à un Windows plus récent.
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : [VBA] Compter le nombre de page d'un PDF

Bonjour LeGaulois et bienvenue ,
Je viens de tester la macro de Kiki29, elle fonctionne impécablement, mais évidemment, j'ai un AcrobatPro ...
Je ne crois pas non plus qu'il y ait moyen de gérer de la même façon sous Reader ...
Désolé ...
Bon courage
 

LeGaulois

XLDnaute Nouveau
Re : [VBA] Compter le nombre de page d'un PDF

Bonjour JNP et merci,

J'ai continué à chercher une solution, et à priori se serrait une technique proche de celle des /Type/Pages, car il faudrait chercher : /Count et à côté de ça il y a un nombre qui définit le nombre de pages.
Cependant parfois il n'y en a pas qu'un seul, et il faut, il me semble, chercher le Count qui a la plus grosse valeur.

Voilà, j'essaie de faire la macro et je la mettrai en ligne si ça fonctionne.

EDIT : Pour l'instant j'obtiens toujours 0, je me suis basé sur un code ( ICI ), je recherche pourquoi ça ne va pas...
 
Dernière édition:

LeGaulois

XLDnaute Nouveau
Re : [VBA] Compter le nombre de page d'un PDF

Hop résolu!
Et ça a l'air de plutôt bien fonctionner!
J'ai trouvé la solution ICI, le post #4, et à priori il est plutôt fiable!


Et bien merci de votre attention, j'espère que j'aurai aidé quelques personnes.

Si par contre c'est possible, je ne comprend pas comment fonctionne la fonction, si quelqu'un pouvait me l'expliquer ?

A bientôt
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : [VBA] Compter le nombre de page d'un PDF

Re ,
Si par contre c'est possible, je ne comprend pas comment fonctionne la fonction, si quelqu'un pouvait me l'expliquer ?
Je vois que MJ13 aime bien, mais Michel, tu aurais pu lui expliquer la fonction ...
Ben figure toi que c'est pas évident, mais je vais essayer ...
RegExp est une expression régulière (je te conseilles de lire mon tuto à ce sujet).
"/Type\s*/Page[^s]" signifie qu'il cherche "/Type" puis "\s*" signifie des blancs autant qu'on veut puis "/Page" et enfin "[^s]" tout sauf un "s" ...
Ensuite, RegExp.Execute(strRetVal).Count renvoie le nombre de fois qu'il a trouvé le motif .
Sinon, ben c'est du chargement dans une variable, mais comme une variable String serait limitée, il l'a force avec strRetVal = Space(LOF(FileNum)), c'est à dire en mettant autant d'espaces que de caractères (si j'ai tout compris ).
Sinon, c'est de la récupération de fichier en binaire comme ta première macro. Si tu veux mieux comprendre, tu change l'extension d'un ".pdf" en ".txt" et tu ouvre le fichier avec WordPad .
Bon courage
 

LeGaulois

XLDnaute Nouveau
Re : [VBA] Compter le nombre de page d'un PDF [Résolu]

Bonjour,

Merci encore une fois JNP, "nous vous devons une reconnaissance éternelle" !
Pour MJ13, j'ai peut être fait la modification après qu'il ait aimé le fil lol

Expliqué comme ça, ça parait simple! Mais je n'aurais jamais trouvé seul

Un grand merci JNP!

A bientôt
 

MJ13

XLDnaute Barbatruc
Re : [VBA] Compter le nombre de page d'un PDF [Résolu]

Bonjour Legaulois, jean-Noël

Désolé Jean-Noël, mais j'avais même pas vu que c'était du Regexp .

Mais, comme, cela a marché du premier coup alors j'ai liké . Merci Legaulois .

Par contre le regexp (reggae pour les experts), cela ne rentre pas trop .
 

Discussions similaires

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