Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC Macro simple Enregistrer sous PDF dans Bureau avec même nom

Marowak

XLDnaute Nouveau
Bonjour à tous,

J'utilise Excel 2016 pour Mac, version 16.16.24.

Je vous sollicite car j'aurais grand besoin d'une macro pour me simplifier la vie au quotidien.

Je dois enregistrer des documents Excel (ou Word) au format .pdf sur mon bureau de manière extrêmement récurrente.

Etant un noob, mais connaissant tout de même l'existence des macros, j'aurais voulu savoir si vous aviez une idée pour créer une macro utilisable sur tous types de documents (pas un classeur spécifique) et qui fasse les choses suivantes:

- Clic sur Enregistrer sous
- Dossier de destination : Bureau
- Format du fichier : PDF
- Nom du fichier : le même que le fichier Excel (ou Word) source

Merci par avance de votre aide !

Bien à vous,
Marowak
 

job75

XLDnaute Barbatruc
Bonjour Marowak, bienvenue sur XLD,

Téléchargez le fichier "Pilote PDF(1).xlsm" sur le bureau, les 2 autres où vous voulez.

Les macros dans le 1er fichier :
VB:
Sub PDF_Excel()
'se lance par les touches Ctrl+E
Dim chemin$, wb As Workbook
chemin = ThisWorkbook.Path & Application.PathSeparator 'à adapter
Application.ScreenUpdating = False
For Each wb In Workbooks
    If wb.Name <> ThisWorkbook.Name Then _
        wb.Worksheets(1).ExportAsFixedFormat xlTypePDF, chemin & Left(wb.Name, InStrRev(wb.Name, ".") - 1)
Next
End Sub

Sub PDF_Word()
'se lance par les touches Ctrl+W
Dim chemin$, Wapp As Object, doc As Object
chemin = ThisWorkbook.Path & Application.PathSeparator 'à adapter
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
For Each doc In Wapp.Documents
    doc.ExportAsFixedFormat chemin & Left(doc.Name, InStrRev(doc.Name, ".") - 1), 17 'wdExportFormatPDF
Next
End Sub
A+
 

Pièces jointes

  • Pilote PDF(1).xlsm
    18.2 KB · Affichages: 30
  • Fichier Excel.xlsx
    9.8 KB · Affichages: 12
  • Document Word.docx
    14.6 KB · Affichages: 6
Dernière édition:

Marowak

XLDnaute Nouveau
Bonjour job75 et merci pour ton aide !

J'ai bien téléchargé les trois fichiers, mais dans quoi dois-je enregistrer les macros ?
Je t'ai joint des captures d'écran de l'onglet Affichage sur Excel où on me propose d'en enregistrer, ainsi que des interfaces suivantes.

Dois-je créer une macro dans n'importe quel fichier Excel que je peux transformer en PDF via la macro, ou bien créer la marcro dans le Pilote PDF que tu m'as envoyé ?

Je veux également souligner que les fichiers Excel sur lesquels je travaille sont en .xlsx et non en .xlsm. Aussi, dois-je les convertir tous en .xlsm afin de pouvoir travailler avec des macros ?

D'ailleurs, j'ai essayé de lancer la première macro Excel et un message d'erreur apparaît (captures d'écran 3 et 4).

Désolé du fouillis ambiant, mais j'essaie de tout recouper pour comprendre comment cela fonctionne...

Merci d'avance !

PS: @kiki29, ton site est pour Excel 2011, non ?
 

Pièces jointes

  • Capture d’écran 2020-08-11 à 11.08.07.png
    95.3 KB · Affichages: 18
  • Capture d’écran 2020-08-11 à 11.11.24.png
    148.3 KB · Affichages: 18
  • Capture d’écran 2020-08-11 à 11.12.29.png
    361.3 KB · Affichages: 21
  • Capture d’écran 2020-08-11 à 11.13.18.png
    91.9 KB · Affichages: 19

Marowak

XLDnaute Nouveau
@kiki29 Je viens d'aller sur ton site et tu avais raison car il me semble qu'ils parlent bien d'Excel 2016 pour Mac et des enregistrements de fichiers PDF — voir ma pièce jointe.

Donc au temps pour moi, mais du coup, ils proposent 4 macros (voire plus) pour ce faire et disent qu'il faut créer au préalable un fichier destination... ce qui ne me dérange pas tant qu'il en existe un raccourci sur mon bureau !

Par contre, je ne sais absolument pas laquelle choisir, ni comment la mettre en oeuvre, d'autant que la question du format (.xlsx ou .xlsm) reste entière...
 

Pièces jointes

  • Capture d’écran 2020-08-11 à 11.15.53.png
    389.1 KB · Affichages: 23

job75

XLDnaute Barbatruc
Bonjour Marowak,

Utilisez toujours le fichier Pilote PDF.xlsm, c'est lui qui contient les macros à exécuter.

Pour ce qui est de l'erreur je ne peut guère vous aider, n'étant pas sur MAC.

Faites tourner l'enregistreur de macro pendant que vous créez le fichier PDF.

Quel code obtenez-vous ?

A+
 

Marowak

XLDnaute Nouveau
Bonjour job75,

Je viens d'ouvrir le Pilote PDF et ai constaté que les macros y sont en effet déjà présentes, aussi je l'ai laissé actif.

Ensuite, j'ai ouvert un fichier .xlsx à imprimer en PDF, ai appuyé sur Ctrl + E, le raccourci dédié, et j'ai eu le même message d'erreur "1004".

En pièce jointe se trouvent les screens de l'erreur en question.
Quelqu'un saurait-il me dire comment la corriger ?

Apparemment, la ligne de code surlignée en jaune pose problème...
 

Pièces jointes

  • Capture d’écran 2020-08-11 à 12.41.55.png
    194.3 KB · Affichages: 17
  • Capture d’écran 2020-08-11 à 12.42.01.png
    128.7 KB · Affichages: 18
  • Capture d’écran 2020-08-11 à 12.42.12.png
    580.7 KB · Affichages: 17

kiki29

XLDnaute Barbatruc
Re,
 

Pièces jointes

  • Mac2PDF.xlsm
    17.8 KB · Affichages: 13
Dernière édition:

Marowak

XLDnaute Nouveau
Bonjour kiki29,

J'ai bien essayé de changer le format d'un classeur Excel ouvert en .xlsm, cependant la même erreur 1004 se produit lorsque j'appuie sur Ctrl + E.

Quel est le problème selon vous ?
 

Marowak

XLDnaute Nouveau
Oui, je vois bien que MAC apporte son lot de désagréments...

Je n'avais pas compris votre demande. Voici le code que j'obtiens:

Sub Macro1()
'
' Macro1 Macro
'

'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"/Users/info/Desktop/NOMDUFICHIER.pdf", Quality:= _
xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
 

job75

XLDnaute Barbatruc
Dans mon code je n'avais pas précisé l'extension .pdf parce que chez moi ce n'est pas nécessaire.

Essayez le fichier Pilote PDF(2).xlsm joint qui contient ces macros :
VB:
Sub PDF_Excel()
'se lance par les touches Ctrl+E
Dim chemin$, wb As Workbook
chemin = ThisWorkbook.Path & Application.PathSeparator 'à adapter
Application.ScreenUpdating = False
For Each wb In Workbooks
    If wb.Name <> ThisWorkbook.Name Then _
        wb.Worksheets(1).ExportAsFixedFormat xlTypePDF, chemin & Left(wb.Name, InStrRev(wb.Name, ".") - 1) & ".pdf", _
            Quality:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next
End Sub

Sub PDF_Word()
'se lance par les touches Ctrl+W
Dim chemin$, Wapp As Object, doc As Object
chemin = ThisWorkbook.Path & Application.PathSeparator 'à adapter
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
For Each doc In Wapp.Documents
    doc.ExportAsFixedFormat chemin & Left(doc.Name, InStrRev(doc.Name, ".") - 1) & ".pdf", 17 'wdExportFormat
Next
End Sub
PS : au post #2 il manquait le document Word, je viens de l'ajouter.
 

Pièces jointes

  • Pilote PDF(2).xlsm
    18.6 KB · Affichages: 6

Marowak

XLDnaute Nouveau
Merci pour ça !

Je viens d'essayer d'utiliser le pilote numéro 2 et voici le code du message d'erreur obtenu.
 

Pièces jointes

  • Capture d’écran 2020-08-11 à 17.12.44.png
    336.8 KB · Affichages: 17

job75

XLDnaute Barbatruc
Dernière tentative en utilisant le chemin indiqué dans votre post #11.

Remplacez :
VB:
chemin = ThisWorkbook.Path & Application.PathSeparator
par :
VB:
chemin = "/Users/info/Desktop/"
 

Discussions similaires

Réponses
3
Affichages
283
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…