Classeur excel =>nom de feuille.PDF=>ouverture PDF [Résolu]

Signaler
Messages postés
3
Date d'inscription
lundi 28 juillet 2014
Statut
Membre
Dernière intervention
28 juillet 2014
-
Messages postés
12177
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
26 juin 2020
-
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

Messages postés
12177
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
26 juin 2020
12
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
Messages postés
3
Date d'inscription
lundi 28 juillet 2014
Statut
Membre
Dernière intervention
28 juillet 2014

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
Messages postés
12177
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
26 juin 2020
12
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!
Messages postés
3
Date d'inscription
lundi 28 juillet 2014
Statut
Membre
Dernière intervention
28 juillet 2014

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
Messages postés
12177
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
26 juin 2020
12
Merci du retour.
A+