Convertir en pdf dans un répertoire donné

  • Initiateur de la discussion Initiateur de la discussion benjack
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

benjack

XLDnaute Nouveau
Bonjour,

Je cherche à convertir un pdf dans un répertoire donné.
Il faut qu'on puisse sélectionner le répertoire en affichant l'explorateur windows et ensuite le pdf est généré dans ce répertoire qui a été selectionné.

J'arrive à faire afficher l'explorateur pour sélectionner le répertoire mais il m'est difficile de faire comprendre à excel que le pdf doit aller DANS ce répertoire...

'Ce qui suit fait afficher l'explorateur (ça fonctionne)
Dim objShell, objFolder, chemin, SecuriteSlash
Set objShell = CreateObject("Shell.Application")
Set objFolder = _
objShell.BrowseForFolder(&H0&, "Choose a directorie to save the pdf", &H1&)
On Error Resume Next
chemin = objFolder.ParentFolder.ParseName(objFolder.Title).path & ""
If objFolder.Title = "Bureau" Then
chemin = "C:\Windows\Bureau"
End If
If objFolder.Title = "" Then
chemin = ""
End If

SecuriteSlash = InStr(objFolder.Title, ":")
If SecuriteSlash > 0 Then
chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
End If
ChoisirDossier = dossier 'j'attribue un nom de variable à mon répertoire (ça bloque peut-être à partir d'ici)

'ici j'exporte en pdf dans le dossier en appelant mon fichier "loads"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=dossier & "\" & "Loads", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False


Voilà je pense que l'erreur n'est pas grosse mais je galèèèère !😡
si quelqu'un peut me débloquer de là ça serait super cool 🙂


Ben
 
Re : Convertir en pdf dans un répertoire donné

Salut Benjack et bienvenu sur ce forum

Une petite chose avant de commencer, penses à rendre la déclaration de tes variables obligatoires
avec
Code:
Option Explicit
en entête des codes

Tu verras en général ça permet de trouver rapidement le problème.

Là en l'occurence, pas besoin, car tu mémorises le chemin sélectionné dans une variable "Chemin"
Et tu utilises ensuite une variable "Dossier" pour lire ton fichier ... donc problème
Il faut utiliser la même
Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & "Loads", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

A+
 
Re : Convertir en pdf dans un répertoire donné

merci Bruno pour les infos, j'avais pas fait gaffe à ce problème de double variable, je comprend donc mieux... 🙂 et j'ai corrigé mais j'ai refouiné après car ça ne convenait toujours pas

D'ailleurs en fouinant j'ai pu encore trouver une fonction plus simple pour ouvrir l'explorateur et j'ai continué de rebidouiller encore et encore car il y avait un autre bug: quand l'explorateur windows s'ouvre,on peut après soit cliquer sur ok soit sur cancel; si on clique sur "cancel" la macro s'arrête et bug... donc une petite correction minime

je met la macro finale pour ceux que ça intérresserait (ça fonctionne):

Sub pdf()

If MsgBox("Do you want to convert in pdf file ?", vbYesNo, "Do you want to convert in pdf file ?") = 7 Then Exit Sub 'petit message annoncant la macro

Dim Folder As FileDialog
Set Folder = Application.FileDialog(msoFileDialogFolderPicker)

With Folder
.AllowMultiSelect = False
.InitialFileName = "Desktop"
.Title = "Select a Folder"
If .Show = -1 Then path = .SelectedItems(1) & "\" Else Exit Sub
End With

Dim name As String
name = path & "\" & ActiveWorkbook.name 'rajoute au fichier pdf le nom du fichier excel

Sheets("Repair").ExportAsFixedFormat Type:=xlTypePDF, Filename:=name & "Repair", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

MsgBox ("Conversion completed")

'ouvrir le dossier de destination pour vérifier le bon déroulement de la sauvegarde
Shell "Explorer.exe " & path, 3
End Sub
 
Re : Convertir en pdf dans un répertoire donné

Re,

Si je puis me permettre 😉
1) la définition des variables ce fait toujours en début de procédure
2) L'utilisation de nom de variable existant comme mot clé, n'est pas conseillé (Name)

Petite modif sur le code pour la gestion d'erreur au cas ou 🙂
VB:
Sub pdf()
  Dim Folder As FileDialog, FicName As String, Path As String
  ' Petit message annoncant la macro
  If MsgBox("Do you want to convert in pdf file ?", vbYesNo, "Do you want to convert in pdf file ?") = vbNo Then Exit Sub
  ' Boite de dialogue office pour le choix du dossier
  Set Folder = Application.FileDialog(msoFileDialogFolderPicker)
  With Folder
    .AllowMultiSelect = False
    .InitialFileName = "Desktop"
    .Title = "Select a Folder"
    If .Show = -1 Then Path = .SelectedItems(1) & "\" Else Exit Sub
  End With
  ' Construire le nom complet du fichier avec chemin d'accès
  FicName = Path & "\" & ActiveWorkbook.Name & "Repair"
  On Error Resume Next
  Sheets("Repair").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FicName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  ' Si aucune erreur ne c'est produite
  If Err.Number = 0 Then
    MsgBox ("Conversion completed")
    'ouvrir le dossier de destination pour vérifier le bon déroulement de la sauvegarde
    Shell "Explorer.exe " & Path, 3
  Else  ' sinon
    MsgBox "Une erreur c'est produite" & vbCr _
    & Err.Number & "-" & Err.Description, vbCritical, "OUPS ...."
  End If
  On Error GoTo 0
End Sub

A+
 
Dernière modification par un modérateur:
Re : Convertir en pdf dans un répertoire donné

bah tu fais bien de te permettre car je viens de tester et j'ai même l'impression que ça va plus vite avec ta nouvelle reformulation 🙂

merci beaucoup ! du coup je te la pique !😀
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour