XL 2016 erreur d'affichage sur une boîte de dialogue pour exporter en pdf

  • Initiateur de la discussion Initiateur de la discussion halecs93
  • 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 !

halecs93

XLDnaute Impliqué
Bonjour à toutes et à tous....

Je tente de finaliser, grâce à mes bidouillages et aux conseils donnés ici, mon fichier permettant de créer des organigrammes. Je souhaitais pouvoir exporter le fichier créer en pdf grâce à une macro. Curieusement, la macro fonctionne mais, dans la boîte de dialogue le nom de fichier apparaît avec l'extension xlsx pour finalement se nommer xlsx.pdf à la sauvegarde. Je n'arrive pas à régler le souci.

L'ensemble du code VBA va sembler bien lourd aux spécialistes, mais encore une fois, je bricole.

Je mets le fichier en pj et une copiee d'écran.

Merci beaucoup
erreur organigramme.jpg
 

Pièces jointes

Solution
C
Re,

Pour moi il y a confusion dans le code 🤔

Votre Sub s'intitule "ExporterShapesEnJPG" alors qu'au final vous voulez un PDF

Donc voici un code plus simple qui devrait convenir
Code:
Sub ExporterEnPDF()
  Dim Ws As Worksheet
  Dim CheminNomPDF As String
  ' Spécifiez la feuille contenant l'organigramme
  Set Ws = ThisWorkbook.Sheets("ORGANIGRAMME")
  ' Demande le chemin et nom du fichier
  CheminNomPDF = Application.GetSaveAsFilename("Organigramme.pdf", _
    FileFilter:="PDF Files (*.pdf), *.pdf", Title:="Enregistrer l'organigramme en tant que fichier PDF")
  '
  If CheminNomPDF <> "Faux" Then
      ' Définissez les paramètres de mise en page pour s'ajuster à une seule page
      With Ws.PageSetup
          .Zoom = False...
Bonjour halec93

Vous avez raison au #3, kiki29 ne sait plus que donner le lien vers son fichier fourre tout, sans aucune explication (pourquoi se fatiguer, bravo l'aide) 🙄

@job75, pas cool à 22h58 tu aurais mieux d'aller te coucher plus tôt 🙄

La problématique est simple, votre souci vient de cette ligne et notamment de l'option choisie
VB:
Set dlgSave = Application.FileDialog(msoFileDialogSaveAs)
Vous demande a Excel d'afficher la boite de dialogue, "enregistrer sous", donc forcément avec l'extension ".xls*"

Remplacez simplement par
Code:
Set dlgSave = Application.FileDialog(msoFileDialogFilePicker)

Voilà bonne journée 😉
 
Bonjour halec93

Vous avez raison au #3, kiki29 ne sait plus que donner le lien vers son fichier fourre tout, sans aucune explication (pourquoi se fatiguer, bravo l'aide) 🙄

@job75, pas cool à 22h58 tu aurais mieux d'aller te coucher plus tôt 🙄

La problématique est simple, votre souci vient de cette ligne et notamment de l'option choisie
VB:
Set dlgSave = Application.FileDialog(msoFileDialogSaveAs)
Vous demande a Excel d'afficher la boite de dialogue, "enregistrer sous", donc forcément avec l'extension ".xls*"

Remplacez simplement par
Code:
Set dlgSave = Application.FileDialog(msoFileDialogFilePicker)

Voilà bonne journée 😉
Bonjour et merci pour votre réponse.

J'ai bien remplacé la ligne... mais cela ne permet pas d'enregistrer l'organigramme en PDF... c'est une boite de dialogue pour ouvrir un document.

Je mets la capture d'écran.

Encore merci.

1687419232985.png
 
Re,

Désolé, je n'ai pas compris et je suis allé trop vite

Il faut alors utiliser l'instruction
VB:
Application.GetSaveAsFilename

A+
En effet... l'instruction est bien plus simple. Mais.... la suite du code se met en erreur à la ligne
' Configurez les options de la boîte de dialogue
With dlgSave
.Title = "Enregistrer l'organigramme en tant que fichier PDF"
.InitialFileName = "Organigramme.pdf"

Je pense que c'est à cause de 'With dlgSave' puisqu'il n'apparait plus dans la nouvelle instruction.
 
Re,

Pour moi il y a confusion dans le code 🤔

Votre Sub s'intitule "ExporterShapesEnJPG" alors qu'au final vous voulez un PDF

Donc voici un code plus simple qui devrait convenir
Code:
Sub ExporterEnPDF()
  Dim Ws As Worksheet
  Dim CheminNomPDF As String
  ' Spécifiez la feuille contenant l'organigramme
  Set Ws = ThisWorkbook.Sheets("ORGANIGRAMME")
  ' Demande le chemin et nom du fichier
  CheminNomPDF = Application.GetSaveAsFilename("Organigramme.pdf", _
    FileFilter:="PDF Files (*.pdf), *.pdf", Title:="Enregistrer l'organigramme en tant que fichier PDF")
  '
  If CheminNomPDF <> "Faux" Then
      ' Définissez les paramètres de mise en page pour s'ajuster à une seule page
      With Ws.PageSetup
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
          .CenterHorizontally = True ' Centre horizontalement la feuille
      End With
      ' Exportez la feuille en tant que fichier PDF
      Ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminNomPDF, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
      ' Petit message
      MsgBox "L'organigramme a été exporté en tant que fichier PDF avec succès."
    End If
End Sub

A+
 
Bjr Le Fil, le Forum 🙂
Peut-être comme dans le fichier joint
🙂
C'est une autre approche en effet. Mais je crois qu'elle ne permet pas de choisir le dossier de sauvegarde, ni le nom du fichier à sauvegarder.
Re,

Pour moi il y a confusion dans le code 🤔

Votre Sub s'intitule "ExporterShapesEnJPG" alors qu'au final vous voulez un PDF

Donc voici un code plus simple qui devrait convenir
Code:
Sub ExporterEnPDF()
  Dim Ws As Worksheet
  Dim CheminNomPDF As String
  ' Spécifiez la feuille contenant l'organigramme
  Set Ws = ThisWorkbook.Sheets("ORGANIGRAMME")
  ' Demande le chemin et nom du fichier
  CheminNomPDF = Application.GetSaveAsFilename("Organigramme.pdf", _
    FileFilter:="PDF Files (*.pdf), *.pdf", Title:="Enregistrer l'organigramme en tant que fichier PDF")
  '
  If CheminNomPDF <> "Faux" Then
      ' Définissez les paramètres de mise en page pour s'ajuster à une seule page
      With Ws.PageSetup
          .Zoom = False
          .FitToPagesWide = 1
          .FitToPagesTall = 1
          .CenterHorizontally = True ' Centre horizontalement la feuille
      End With
      ' Exportez la feuille en tant que fichier PDF
      Ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminNomPDF, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
      ' Petit message
      MsgBox "L'organigramme a été exporté en tant que fichier PDF avec succès."
    End If
End Sub

A+
En effet...pour le nom de la macro, c'est qu'au début je souhaitais un export sous forme d'image... et je n'ai pas modifié son nom après. Quant à ce code, il marche à la perfection. Merci pour cette approche.
 
Re-Bjr 🙂
"Mais je crois qu'elle ne permet pas de choisir le dossier de sauvegarde, ni le nom du fichier à sauvegarder."

Code modifié :
Dim Nom$
Nom = ThisWorkbook.Name
ChDir "C:\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\lionel\Desktop\" & ThisWorkbook.Name & " " & [r4] & " " & ".PDF", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Pour le nom : c'est réglé avec :
"C:\Users\lionel\Desktop\" & ThisWorkbook.Name & " " & [n4] & " " & ".PDF", Quality:= _

Pour choisir l'emplacement, ça doit pas être bien difficile mais j'ai pas le temps maintenant.

Voir fichier joint
🙂
 

Pièces jointes

Re-Bjr 🙂
"Mais je crois qu'elle ne permet pas de choisir le dossier de sauvegarde, ni le nom du fichier à sauvegarder."

Code modifié :
Dim Nom$
Nom = ThisWorkbook.Name
ChDir "C:\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\lionel\Desktop\" & ThisWorkbook.Name & " " & [r4] & " " & ".PDF", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Pour le nom : c'est réglé avec :
"C:\Users\lionel\Desktop\" & ThisWorkbook.Name & " " & [n4] & " " & ".PDF", Quality:= _

Pour choisir l'emplacement, ça doit pas être bien difficile mais j'ai pas le temps maintenant.

Voir fichier joint
🙂
Merci beaucoup
 
- 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
Retour