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]

  • Initiateur de la discussion Initiateur de la discussion LeGaulois
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

LeGaulois

Guest
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 modification par un modérateur:
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 modification par un modérateur:
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 😎
 
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 modification par un modérateur:
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 modification par un modérateur:
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 😎
 
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 😀
 
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 😱.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…