VBA & Acrobat reader

bahhbouh

XLDnaute Nouveau
Bonjour à tous,
J'essaye désespérément à l'aide de macro d'ouvrir un fichier pdf à une page, de paire pivoter la page, puis enregister sous format tiff.
J'ai 2 versions de acrobat: -version 5 writer
- version 10 reader
j'ai 2 soucis:
1) j'ai trouvé une marco pour ouvrir le fichier dans une userform mais j'arrive pas à la faire tourner malgré qu'il y a une commande .setrotate(90) pour 90°. Le problème est qu'elle s'ouvre avec acrobat 10 et avec cette version je ne peu pas sauvgarder sous tiff.
Voici la macro:
Code:
Sub LoadPDF(FicPdf As String, NoPage As Integer)

'Création de l'objet AcroPdf dans fenetre 'PdfForm'
Set mObjPDF = PdfForm.Controls.Add("AcroPDF.PDF.1", "VisuPDF")
ch = mObjPDF.src
'récupère la version d'acrobat
ver = mObjPDF.GetVersions
'Paramétrage de l'objet sur la fenetre
With PdfForm.Controls("VisuPDF")
  'rend le composant Visible
  .Visible = True
  'fixe la hauteur du composant par rapport a la fenetre
  .Height = PdfForm.Height - 20
  'fixe la largeur du composant par rapport a la fenetre
  .Width = PdfForm.Width - 5
'mObjPDF.setViewRect 0, 0, 650, 580
End With
'Paramétrage de l'objet AcroPdf
With mObjPDF
  .src = FicPdf 'Nom du fichier ou lien URL
  '.LoadFile ("c:\nomfichier.pdf")
  .setShowScrollbars (True) 'Affiche l'assenceur True/False
  .setShowToolbar (True) 'Affiche la barre d'outil True/false
  .setPageMode ("none") 'Determine le mode d'affichage none/bookmarks/thumbs
  .setLayoutMode ("SinglePage") 'Determine le type d'affichage DontCare/SinglePage/OneColumn/TwoColumnLeft/TwoColumnRight
  .setCurrentPage (NoPage) 'Numéro de la page a afficher
  .setView ("Fit") 'Fixe la méthode d'affichage Fit/FitH/FitV/FitB/FitBH/FitB
  '.setZoom (100) 'Determine de niveau de zoom
  '.SetRotate (90)<--- marche pas
  ''.this setPageRotations(90)
End With
'Affiche la feuille
PdfForm.Show
End Sub
2) j'arrive à ouvrir avec une macro le fichier avec acrobat version 5 (writer) mais je n'arrive aussi pas à la faire pivoter puis la sauver sous tiff.
Voici le code:
Code:
Sub copier_plan()

Dim adrplan$


adrplan0 = Range("f47")
adrplan1 = Range("c47")

On Error GoTo message1
    ThisWorkbook.FollowHyperlink adrplan0, , True
GoTo fin1
message1:
If MsgBox("Le dossier n'existe pas ou nommé autrement" & vbNewLine & "Voulez vous ouvrir le dossier racine?", vbYesNo, "Message") = vbYes Then
ThisWorkbook.FollowHyperlink adrplan1, , True
End If
fin1:
End Sub

Personnellement je prefère améliorer le 2eme code car il est plus simple et plus court, mais je suis preneur de toute solution.
Merci pour votre patience et pour vos réponses.
Bonne année pleine de belle macros ;)
 

job75

XLDnaute Barbatruc
Re : VBA & Acrobat reader

Bonjour bahhbouh, le forum,

Avec des combinaisons de touches, par exemple :

Code:
Sub PDF()
Dim fichier As String, page As Integer
fichier = ThisWorkbook.Path & "\TOTO.pdf" 'à adapter
page = 5 'numéro de la page à afficher
SendKeys "{RIGHT " & page - 1 & "}" 'affiche la page
SendKeys "^+=" 'rotation horaire
'SendKeys "^+!" 'rotation antihoraire
ThisWorkbook.FollowHyperlink fichier
End Sub

Testé sur Adobe Reader 9...

Edit : SendKeys "{RIGHT " & page - 1 & "}" mieux que SendKeys "^+n" & page & "~"

A+
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : VBA & Acrobat reader

Bonjour bahhbouh, Job

Merci Job: il y a peu, je cherchais pour mettre une boucle sur sendkeys avec les touches de direction. Et en voyant ton code, j'ai compris ;).

Code:
Sub test()
Page = 5
SendKeys "{RIGHT " & Page & "}"
End Sub
 

Statistiques des forums

Discussions
312 508
Messages
2 089 137
Membres
104 045
dernier inscrit
Megajoules