Classeur excel =>nom de feuille.PDF=>ouverture PDF

Résolu
fanch-bzh Messages postés 3 Date d'inscription lundi 28 juillet 2014 Statut Membre Dernière intervention 28 juillet 2014 - Modifié par pijaku le 28/07/2014 à 09:26
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 juil. 2014 à 12:25
Bonjour,
je suis un novice et je bidouille le VB pour EXCEL et CATIA en piochant sur le net

aujourd'hui je suis bloquer sur l'ouverture des fichiers PDF que j'ai généré
en gros
je transforme chaque feuille de mon classeur excel en PDF (nom de feuille.PDF)
en l'enregistrant dans le même répertoire

Maintenant je voudrais ouvrir chaque PDF créé , mais pour l'instant ça n'ouvre qu'une fenêtre me demandant le fichier à ouvrir
Voici ma Macro

Sub PDF()
Application.ScreenUpdating = False
On Error Resume Next

Path_name = ThisWorkbook.Path
For i = 1 To Sheets.Count
Sheets(i).Select
'conversion en PDF de chaque feuille
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path_name & "\" & Sheets(i).Name

'ouverture des PDF
LongFilename = Application.GetOpenFilename("PDF Files (*.pdf), *.pdf,(*.*),*.*")


Next i
Sheets(1).Select
Application.ScreenUpdating = True
MsgBox ("Les " & Sheets.Count & " documents PDF viennent d'être créés et son disponnibles dans le même répertoire")
End Sub

3 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
28 juil. 2014 à 09:39
Bonjour,

Tout d'abord, lorsque vous placez du code sur notre forum, merci d'utiliser les balises à votre disposition. Le mode d'emploi (au cas ou) est ICI.

Ensuite, il est important, en VB, VBA de déclarer les variables que vous utilisez. Pour cela je vous conseille fortement d'utiliser, en tête de Module,
Option Explicit
. cf ICI.

Sinon, pour ouvrir un fichier pdf depuis Excel, vous pouvez simplement utiliser
.FollowHyperlink
.
Comme ceci :
Option Explicit

Sub PDF()
Dim Path_name As String, i As Integer

Application.ScreenUpdating = False
On Error Resume Next

Path_name = ThisWorkbook.Path
For i = 1 To Sheets.Count
    Sheets(i).Select
    'conversion en PDF de chaque feuille
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path_name & "\" & Sheets(i).Name
Next i
Sheets(1).Select
Application.ScreenUpdating = True
MsgBox ("Les " & Sheets.Count & " documents PDF viennent d'être créés et sont disponnibles dans le même répertoire")
For i = 1 To Sheets.Count
    'ouverture des PDF
    ThisWorkbook.FollowHyperlink Path_name & "\" & Sheets(i).Name & ".pdf"
Next i
End Sub


A votre place, j'ajouterai une boite de dialogue avant l'ouverture des pdf, pour demander à l'utilisateur s'il désire les ouvrir ou non...
Pour mettre ce type de boite de dialogue en place, n'hésitez pas à demander...

Cordialement,
Pijaku
0
fanch-bzh Messages postés 3 Date d'inscription lundi 28 juillet 2014 Statut Membre Dernière intervention 28 juillet 2014
28 juil. 2014 à 10:47
super merci ça marche nikel

pour les boites de dialogues , je vais d'abord chercher par moi même .
je reviendrais pour demander de l'aide au besoin et de toute façon pour partager ma macro
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
28 juil. 2014 à 10:48
pour les boites de dialogues , je vais d'abord chercher par moi même
Ok ça marche.
je reviendrais pour demander de l'aide au besoin et de toute façon pour partager ma macro
Très bien, en adéquation avec "l'esprit forum", ce serait parfait.
A bientôt donc et... n'hésite pas!
0
fanch-bzh Messages postés 3 Date d'inscription lundi 28 juillet 2014 Statut Membre Dernière intervention 28 juillet 2014
28 juil. 2014 à 11:25
voila , tout fonctionne


Sub PDF()
Application.ScreenUpdating = False
On Error Resume Next

Path_name = ThisWorkbook.Path
For i = 1 To Sheets.Count
Sheets(i).Select
'conversion en PDF de chaque feuille
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path_name & "\" & Sheets(i).Name

Next i
Sheets(1).Select
Application.ScreenUpdating = True
MsgBox ("Les " & Sheets.Count & " documents PDF viennent d'être créés et son disponnibles dans le même répertoire")

If MsgBox("Voulez-vous afficher les PDF ?", vbYesNo + vbInformation, "Message") = vbYes Then

MsgBox "Vous avez cliquer sur Oui ,voici vos PDF ", vbInformation, "Message"
For i = 1 To Sheets.Count
'ouverture des PDF
ThisWorkbook.FollowHyperlink Path_name & "\" & Sheets(i).Name & ".pdf"
Next i
Else
MsgBox "Vous avez cliquer sur Non . A bientôt ", vbInformation, "Message"
End If


End Sub
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
28 juil. 2014 à 12:25
Merci du retour.
A+
0
Rejoignez-nous