Ouvrir un PDF à une page donnée

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 30 sept. 2016 à 11:47
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 1 sept. 2018 à 12:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/101647-ouvrir-un-pdf-a-une-page-donnee

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
1 sept. 2018 à 12:04
Bonjour,
Merci jordane45 pour la mise à jour et la correction.
Problème résolu pour ma part
Cordialement
@+ Le Pivert
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
1 sept. 2018 à 09:52
Bonjour,
Si je ne me trompe pas.. la mise à jour a bien été ajoutée.
Par contre j'ai corrigé les balises de code. Il semble que tu ais oublié d'y préciser le LANGAGE.
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
1 sept. 2018 à 08:58
Bonjour,

Voici une nouvelle version, que je n'ai pas pu ajouter au snippet!
A mettre dans le module de la feuille qui recevra les infos.
Au premier double clic les infos sont enregistrées.
Ensuite le double clic sur le nom du PDF l'ouvre à la page souhaitée.

Option Explicit
Dim strPath As String
Dim ligne As Long
Dim colonne As Long
Dim page As Long
Dim nom As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then ' lien dans la colonne A, a adapter
On Error Resume Next
ligne = Target.Row
colonne = Target.Column
If Target.Value = "" Then
Ouvrir
page = InputBox("Entrez le numéro de page", "Choisir Page PDF", "1")
Cells(ligne, colonne + 2) = page
Else
nom = Target.Value 'nom fichier
strPath = Range("B" & ligne).Value 'chemin fichier
page = Range("C" & ligne).Value ' numero page
 ThisWorkbook.FollowHyperlink strPath
 SendKeys "+^n" & page & "~"
 SendKeys "{NUMLOCK}"
End If
End If
End Sub
'choisir pdf
Sub Ouvrir()
Dim intChoice As Integer
'Supprimer tous les autres filtres
Call Application.FileDialog(msoFileDialogOpen).Filters.Clear
'Ajouter un filtre personnalisé
Call Application.FileDialog(msoFileDialogOpen).Filters.Add( _
    "PDF Files Only", "*.pdf")
'faire la boîte de dialogue de fichier visible pour l'utilisateur
intChoice = Application.FileDialog(msoFileDialogOpen).Show
'déterminer quel choix l'utilisateur a fait
If intChoice <> 0 Then
    'obtenir le chemin de fichier sélectionné par l'utilisateur
    strPath = Application.FileDialog( _
        msoFileDialogOpen).SelectedItems(1)
    'le chemin du fichier dans la feuille 1
    Cells(ligne, colonne + 1) = strPath 'chemin fichier pdf
nom = Mid(strPath, InStrRev(strPath, "\") + 1)
Cells(ligne, colonne) = nom 'nom pdf
End If
End Sub



Voilà, bonne programmation

@+ Le Pivert
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
30 sept. 2016 à 14:31
Bonjour,

Dans la transcription du code, les antislash sont absents. Il faut lire:


C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe


Pour avoir le chemin, voir ceci de PCPT que je remercie:

http://www.codyx.org/snippet_recuperer-chemin-programme-associe-fichier-apres-son-extension_544.aspx#1708

remplacer ceci:

 '   retour
    If lRet > 32 Then
        GetExePathFileFromExtention = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
          'a ajouter
          Debug.Print GetExePathFileFromExtention
    Else
        GetExePathFileFromExtention = vbNullString
    End If


vous aurez votre chemin dans Execution en bas

J'espere que cette explication vous sera utile!

@+ Le Pivert
Rejoignez-nous