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

Ouvrir et scanner un pdf

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 !

Mgn_91

XLDnaute Nouveau
Bonjour à tous,

J'ai aujourd'hui une macro qui me permet :
d'ouvrir les PowerPoint
de relever tous les liens hypertext présents dans le documents
d'identifier la page et l'objet sur lequel se trouve le lien hypertext.

Je souhaite désormais transformer cette macro pour relever tous les liens hypertex présents dans un PDF et non un Powerpoint.

Voici le code que je souhaite adapter pour ouvrir et analyser les PDF :

Function ScanHyperlien(Ldoc As String, Llien As String, UpdateLink As String) As String

Dim A, B, C As Range

Set A = Sheets(Ldoc).Range("A2")
Set B = Sheets(Llien).Range("A2")
Set C = Sheets("Donnée").Range("B18")

Sheets(Llien).Range("A2:F10000").ClearContents

Dim PptApp As Variant
Set PptApp = CreateObject("Powerpoint.Application")

k = 0

While A.Offset(k, 0) <> ""
If Left(Right(A.Offset(k, 2), 3), 2) = "pp" Or Left(Right(A.Offset(k, 2), 3), 2) = "pt" Then
PptApp.Presentations.Open Filename:=C.Value & "\DossierA\" & A.Offset(k, 1) & "\" & A.Offset(k, 2)
'MsgBox C.Value & "\DossierA\" & A.Offset(k, 1) & "\" & A.Offset(k, 2)
Set myDocument = PptApp.Presentations(1)

'Nombre de slide dans la présentation
nbSlides = myDocument.Slides.Count
j = 1
While j <= nbSlides
' Nombre d'objets dans le slide
nbObjets = myDocument.Slides(j).Shapes.Count
i = 1
While i <= nbObjets
TextType = myDocument.Slides(j).Shapes(i).Type
If myDocument.Slides(j).Shapes(i).Type <> 6 And myDocument.Slides(j).Shapes(i).Type <> 12 Then
If myDocument.Slides(j).Shapes(i).ActionSettings(1).Hyperlink.Address <> "" Then
B.Offset(M, 0) = A.Offset(k, 2)
'B.Offset(M, 10) = myDocument.Slides(j).Shapes(i).Name
'MsgBox myDocument.Slides(j).Shapes(i).Type

If UpdateLink = "Y" Then
myDocument.Slides(j).Shapes(i).Name = "doc_" & k & "_slide_" & j & "_objet_" & i
End If
B.Offset(M, 1) = A.Offset(k, 2) & "_" & myDocument.Slides(j).Shapes(i).Name
B.Offset(M, 2) = myDocument.Slides(j).Shapes(i).ActionSettings(1).Hyperlink.Address
B.Offset(M, 3) = myDocument.Slides(j).Shapes(i).ActionSettings(1).Hyperlink.SubAddress
M = M + 1
PptApp.Presentations(1).Save
End If
End If
i = i + 1
Wend
j = j + 1
Wend
nbPrez = PptApp.Presentations.Count
' MsgBox nbPrez
For l = 1 To nbPrez
PptApp.Presentations(l).Close
Next l

End If
k = k + 1
Wend

ScanHyperlien = "Ok"

End Function


Merci pour votre aide
 

Pièces jointes

- 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

Discussions similaires

Réponses
2
Affichages
539
Réponses
5
Affichages
562
Réponses
0
Affichages
459
Réponses
6
Affichages
604
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Réponses
2
Affichages
1 K
Réponses
3
Affichages
896
Réponses
1
Affichages
685
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…