rebcao Posté(e) le 18 juillet 2016 Posté(e) le 18 juillet 2016 Bonjour à Toutes et à Tous, Existe -t-il une fonction qui permette de connaitre le nombre de page contenu dans un PDF ? Mais en coimmande standard, pas de fenêtre ! Je vous remercie. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
didier Posté(e) le 18 juillet 2016 Posté(e) le 18 juillet 2016 Coucou Je ne viens t'apporter une réponse mais une demande de clarification pour lancer des pistes de recherches : Que veux-tu savoir à propos du nombre de pages ?le nombre de pages d'un fichier PDF présent sur le disquele nombre de pages que contiendra un fichier PDF suite à une impression d'un fichier AutoCAD ?Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
rebcao Posté(e) le 18 juillet 2016 Auteur Posté(e) le 18 juillet 2016 Bonjour Didier, Le nombre de pages d'un fichier PDF existant. Un traitement par lot est à prévoir puisqu'il y a plus de 1000 pdf à TRAITER... L'idée serait simplement d'intéroger le fichier PDF et d'en extraire l'info ! Je te remercie Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
didier Posté(e) le 18 juillet 2016 Posté(e) le 18 juillet 2016 Coucou Une promenade sur le net m'a permis de trouver cette routine en VBAComme il est connu de tous que tu travailles souvent avec Excel je me permets de te la soumettre des fois que ce soit une piste de départ pour résoudre ton souci... Sub Test() Dim MyPath As String, MyFile As String Dim i As Long MyPath = "D:\tempo" MyFile = Dir(MyPath & Application.PathSeparator & "*.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(MyPath & Application.PathSeparator & 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 j'ai testé et ça fonctionne, il faut changer la variable Mypath et tu obtiens un classeur Excel avec le nom du fichier et le nombre de page afférent. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
rebcao Posté(e) le 18 juillet 2016 Auteur Posté(e) le 18 juillet 2016 Je te remercie, mais lorsqu'on fait un copier-coller de ton source, il n'y a pas de retour à la ligne... J'ai trouvé également ça : Sub Test() Dim MyPath As String, MyFile As String Dim i As Long MyPath = "C:\TEMP\PDF" MyFile = Dir(MyPath & Application.PathSeparator & "*.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(MyPath & Application.PathSeparator & 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 Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
didier Posté(e) le 18 juillet 2016 Posté(e) le 18 juillet 2016 Coucou Elle est chouette cette macro que tu as trouvée (hihi) et en plus, ça tombe bien, c'est exactement la même que j'ai déposée (haha)Mis à part que je l'ai déposée avec des balises de codes je ne comprends pas ce que tu dis au sujet du retour à la ligne. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
rebcao Posté(e) le 19 juillet 2016 Auteur Posté(e) le 19 juillet 2016 Bonjour Didier, Oui, je sais je l'ai vu... En fait j'ai réessayé le copier-coller et cette fois ça marche !!!! Sur le poste du stagiaire on a obtenu un copié sur une seule ligne à la queuleuleu.. !!!!! Encore merci. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant