Bonjour,
Voila grâce à une macro exel j'ouvre un fichier pdf dans un onglet Internet Explorer. Je cherche alors à sauvegarder ce fichier sur mon disque.
La seul façon de faire que j'ai trouvé est l'utilisation de SendKeys, ce qui ne fonctionne pas tout le temps.
J'aurais donc aimé savoir s'il existe une manière de recuperer ce document pdf plus simplement.
J'espere avoir été clair et j'attends une reponse de votre part
Ci dessous mon code si cela vous est utile.
Chipss
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 Sub IE_dl2(S As String) 'nécéssite d'activer la référence Microsoft HTML Objects Library 'nécéssite d'activer la référence Microsoft Internet Controls Set IE = CreateObject("InternetExplorer.Application") 'IE.Visible = True IE.Navigate S Dim chemin() As String Dim PPath As String PPath = Mid(ThisWorkbook.Path, 1, Len(ThisWorkbook.Path) - 6) Dim x As Integer Dim maPageHtml Do DoEvents Loop Until IE.ReadyState = 4 Set maPageHtml = IE.document j = 0 IE.Visible = True For x = 0 To maPageHtml.Links.Length - 1 ext = Right(maPageHtml.Links(x), 3) If ext = "pdf" Then j = j + 1 maPageHtml.Links(x).Click Sleep 1000 SendKeys "+^{S}", 1 Sleep 500 SendKeys "^{X}" Sleep 500 SendKeys PPath, 1 Sleep 500 SendKeys "{\}" Sleep 500 SendKeys "^{V}" Sleep 500 SendKeys "{ENTER}" ElseIf ext = "doc" Then i = i + 1 maPageHtml.Links(x).Click Sleep 5000 Do On Error Resume Next Set appwd = GetObject(, "Word.application") If Err.Number = 429 Then erreur = True ElseIf Err.Number = 0 Then erreur = False End If Loop While erreur = True docName = appwd.ActiveDocument.Name appwd.ActiveDocument.SaveAs Filename:=PPath & "\" & docName ReDim Preserve chemin(i - 1) chemin(i - 1) = PPath & "\" & docName appwd.ActiveDocument.Close appwd.Quit ElseIf ext = "xls" Then maPageHtml.Links(x).Click End If Next 'IE.Visible = False If i <> 0 Then For k = 0 To i - 1 Set appwd = CreateObject("Word.Application") appwd.Visible = True appwd.Documents.Open (chemin(k)) Next k End If If (i + j) <> 0 Then MsgBox ("Download managed! " & Chr(10) & i + j & " Files downloaded") Else MsgBox ("No Files attached to this DP! Try another one or attach the files yourself") End If 'IE.Quit End Sub
Partager