J'ai essayé d'ouvrir le fichier via la méthode shell mais apparemment ça ne fonctionne pas. Y aurait-il un autre moyen ?
J'ai essayé d'ouvrir le fichier via la méthode shell mais apparemment ça ne fonctionne pas. Y aurait-il un autre moyen ?
Bonjour,
Si tu as acrobat reader ou autre programme pouvant ouvrir du PDF, cela devrait fonctionner avec la commande shell.
Donnes le code que tu as utilisé.
Autre bidouille : un lien hypertexte vers le dossier où le pdf est stocké, ce qui ouvre une fenêtre explorateur. Il suffit alors de cliquer sur le fichier voulu, et hop !
oui moi j'ai fais comme zenas et ca marche niquel
Salut,
Autre astuce utiliser l'API ShellExecute (il me semble qu'elle est dans la faq), elle te permet de lancer un PDF (ou autre), l'avantage, c'est que cette Api fonctionne comme lorsque l'on clique sur une icone, elle prend le programme associé, cela évite les chemins du programme (juste celui du fichier), et si le poste à une autre version d'Acrobat pas de problèmes
Starec
Effectivement avec la méthode Shell, ça fonctionne mais le problème c'est qu'on doit spécifier le chemin d'accès de l'application Acrobat Reader. Et donc, on doit coder le shell de cette manière pour que ça fonctionne :
Et donc, l'inconvénient, comme le dit Starec c'est que suivant la version d'Acrobat et suivant où il est installé sur le disque, le chemin d'accès d'Acrobat sera différent d'une machine à l'autre. D'où si on veut utiliser shell pour que ça fonctionne, on doit sûrement aller lire quelque part dans la base de registre le chemin d'accès de l'application Reader (où dans la base de registre ? Il faut encore le déterminer ce qui n'est pas si évident dans la mesure où suivant l'OS installé, ça ne se trouvera pas nécessairement au même endroit dans la base de registre) , ce qui complique fortement le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Shell "C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe c:\temp\dvdfr.pdf"
D'où finalement, je pense que la meilleure solution est celle de Starec qui est d'utiliser l'API ShellExecute. Je ne l'ai pas encore testé mais je suppose que ça fonctionne.
Merci à tous pour toutes vos propositions.
Oui j'oubliais aussi celui qui a émis l'idée du lien hypertexte qui fonctionne aussi sans problème. L'inconvénient, c'est que moi je veux que l'utilisateur n'ai aucune manipulation à faire pour ouvrir le fichier PDF et je ne veux pas qu'il ait la possibilité d'ouvrir n'importe quel fichier PDF se trouvant dans le répertoire, je veux que mon application ouvre directement acrobat reader et qu'elle ouvre elle-même le fichier PDF X du répertoire Y.
Merci tout de même pour l'idée, elle pourra peut-être me servir pour autre chose.
Re
Je ne parle pas de la méthode Shell, inclus dans VBA, mais de l'API ShellExecute, qui te permet de lancer ton fichier sans spécifier le chemin de ton prog
Starec
Je ne sais pas s'il faut ajouter quelque chose pour que la fonction soit utilisable mais tu devrais avoir un code qui ressemble à cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part ShellExecute "C:\....\Monpdf.pdf", "open", "", "", SW_SHOW
Je me suis peut-être mal exprimé mais j'avais bien compris que Starec parlait de la fonction API ShellExecute et non de la méthode Shell du VBA.
(Je répondais à ceux qui m'avaient proposé la méthode Shell de VBA les inconvénients que cela occasionnaient).
Et donc je viens de tester l'API aujourd'hui et ça fonctionne très bien. Il ouvre directement le document avec l'application associée d'où comme le dit Starec il n'y a pas besoin de spécifier le chemin de l'application.
Merci beaucoup.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager