Export en PDF pour Excel sur Mac

Bonjour à tous,

Je cherche à faire une macro pour exporter des PDFs qui fonctionnerait pour Excel 2016 sur Mac.

J'ai une macro qui fonctionne très bien sur Excel 2016 pour Windows, mais mes collègues qui sont sur Mac, ont un message d'erreur, semble-t-il au niveau de la fonction ExportAsFixedFormat :

Sub Macro1()

Dim Chemin As String
Dim texte As String

Chemin = ThisWorkbook.Path & Application.PathSeparator
texte = Range("C3")
Application.DisplayAlerts = False

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Chemin & texte & ".pdf", _
Quality:=xlQualityMinimum, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Cells(1, 3).Value = Cells(1, 3).Value + 1

End Sub

Avez-vous des pistes ?

Je suis preneur de toute macro de création de PDF qui fonctionnerait sur Mac. Je l'adapterai.

Merci beaucoup.

P.

Bonjour

Il faudrait savoir ce que contient la cellule C3 ?

Cordialement

Il y a une formule qui affiche le nom de fichier.

Le contenu ressemble à ça :

CS262 - Facture Client - Licence mars 2016

Re

As-tu pensé à mettre le nom de ta feuille dans cette instruction

texte = SHEETS("nom de feuille").Range("C3")

Crdlt

Je vais tester ça.

Mais je ne comprends pas bien le rapport avec ma problématique qui est que ça marche très bien sur windows, mais pas sur mac...

Re

Sous excel mac, il faut rester précis comme partout en programmation. Seule chose que j'ai souvent constaté c'est que Windows accepte souvent les "crasses" tandis que MAC nécessite plus de rigueur

Pour qu'elle fonctionne sous es deux environnements MAC et windows, je ferais ta macro comme ceci

Sub Macro1()
Dim Chemin As String
Dim texte As String

With ThisWorkbook
    Chemin = .Path & Application.PathSeparator
        With .Sheets("nom de ta feuille")
            texte = .Range("C3")
            Application.DisplayAlerts = False
            .ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=Chemin & texte & ".pdf", _
            Quality:=xlQualityMinimum, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False

            .Cells(1, 3).Value = .Cells(1, 3).Value + 1
        End With
End With
End Sub

A te relire pour le test

Bonjour

Un fonctionnement sur mac peut-etre très différent d'un fonctionnement sous windows

Exemple : j'ai personnellement un problème pour récupérer un chemin d'accès à un fichier dans lequel il y a des lettres accentuées sur MAC, et sous windows aucun soucis.....

Est-ce ton cas ?? As-tu dans ton arborescence un ou plusieurs dossiers pour accéder a ton fichier sur MAC qui contiennent des lettres accentuées ??

pour info voici un lien sur une référence des macros sur MAC

http://www.rondebruin.nl/mac.htm

Fred

Bonjour,

Étant utilisateur d'Excel 2016 sur Mac et ayant eu le même problème, le souci vient du fait qu'avec cette version, Excel n'a pas les autorisations d'écrire un fichier dans un répertoire de ton Mac.

Cependant, il y a une Exception, un dossier dans ta bibliothèque dont le chemin pour moi est:

"/Users/Hugo/Library/Group Containers/UBF8T346G9.Office

J'imagine que pour toi, ce chemin devrait être semblable avec ton nom d'utilisateur à la place du miens.

La stratégie consiste donc à créer ton fichier DPF avec ExportAsFixedFormat dans ce dossier. Ensuite de copier ton fichier PDF depuis ce dossier vers le dossier désiré.

Avant de te proposer une alternative, je te conseille aussi d'utiliser ActiveWorkbook.FullName qui est plus simple à utiliser que la combinaison de ton .Path et de la valeur contenu dans la cellule.

Dans cet exemple, le PDF final est collé sur le bureau:

Sub ImpressionPDF()
Dim TempFile As String
Dim FinalFile As String

'D'abord créer le fichier PDF temporaire

TempFile = "/Users/Hugo/Library/Group Containers/UBF8T346G9.Office/" & ActiveWorkbook.Name & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _

TempFile, Quality:=xlQualityStandard, _

IncludeDocProperties:=True, IgnorePrintAreas:=False

'Copier ce fichier sur le bureau (par exemple)

FinalFile = "/Users/Hugo/Desktop/" & ActiveWorkbook.Name & ".pdf"

FileCopy TempFile, FinalFile

'Supprimer le fichier temporaire

Kill TempFile

End Sub

Hugo

Rechercher des sujets similaires à "export pdf mac"