Macro a basculer sur mac

Bonjour a toutes et tous

J"ai une macro qui me permet de créé une facture en PDF et de l'enregistrer directement dans un fichier qui ce trouve sur mon bureau

Mais maintenant j'ai un PC MAC et la macro ne fonctionne pas et je ne comprend pas pourquoi

Voila ma macro utilisé sur pc

Sub PDF()

On Error Resume Next
Chemin = "C:\Users\Nath\Desktop\CLIENTS\Facture"

'Dossier = Sheets("Facture").Range("B1")

DateExtraction = Format(Now(), "yyyy-mm-dd")

ns = Sheets("Facture").Range("I13")
nsem = Sheets("Facture").Range("C13")


MkDir Chemin & "\" & Dossier
MkDir Chemin & "\" & Dossier & "\" & DateExtraction

For Each onglet In ThisWorkbook.Sheets
If onglet.Name = "Facture" Then
onglet.Select
nompdf = Chemin & " " & "N° " & ns & " " & "Du " & DateExtraction & " " & " " & nsem & " " & Dossier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next
End Sub

Si quelqu'un a la solution a mon problème afin de dire a la macro d'aller sur le bureau , puis sur fichier Facture et mettre facture en pdf

Merci d avance pour votre aide

En attente de réponse

Bonne semaine a toutes et tous

NATH

Je ne m'y connais peu mais essayez :

Dim subFolder
subFolder = "Desktop\CLIENTS\Facture"

If LCase(Left(Application.OperatingSystem, 3)) = "win" Then
chemin = "\Users\" & Environ("USERNAME") & "\" & subFolder
Else
chemin = "/Users/" & Environ("USER") & "/" & Replace(subFolder,"\","/")
End If

au lieu de

chemin= "C:\Users\Nath\Desktop\CLIENTS\Facture"

Bonjour

Si je comprend bien , il me faut supprimer :

Chemin = "C:\Users\Nath\Desktop\CLIENTS\Facture"

et de le remplacer par :

Dim subFolder
subFolder = "Desktop\CLIENTS\Facture"

If LCase(Left(Application.OperatingSystem, 3)) = "win" Then
chemin = "\Users\" & Environ("USERNAME") & "\" & subFolder
Else
chemin = "/Users/" & Environ("USER") & "/" & Replace(subFolder,"\","/")

ce qui donne au resultat

Dim subFolder
subFolder = "Desktop\CLIENTS\Facture"

If LCase(Left(Application.OperatingSystem, 3)) = "win" Then
chemin = "\Users\" & Environ("USERNAME") & "\" & subFolder
Else
chemin = "/Users/" & Environ("USER") & "/" & Replace(subFolder,"\","/")

'Dossier = Sheets("Facture").Range("B1")

DateExtraction = Format(Now(), "yyyy-mm-dd")

ns = Sheets("Facture").Range("I13")
nsem = Sheets("Facture").Range("C13")

MkDir Chemin & "\" & Dossier
MkDir Chemin & "\" & Dossier & "\" & DateExtraction

For Each onglet In ThisWorkbook.Sheets
If onglet.Name = "Facture" Then
onglet.Select
nompdf = Chemin & " " & "N° " & ns & " " & "Du " & DateExtraction & " " & " " & nsem & " " & Dossier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next
End Sub

C'est cela qu il faut faire

En attente de reponse

NATH

Bonjour,

Quelle est votre version Excel et OS MAC ?

Est-ce que le fichier Excel duquel vous faites votre facture, se trouve aussi sur votre bureau ?

Oui c'est à peu près cela, Attention il manque la ligne "End if"

MERCI

Oui le fichier est sur le bureau et version excel 2010

Ensuite ou j'ai oublié le "End if"

Merci pour ta patience

En attente de ta réponse

NATH

Oui le fichier est sur le bureau et version excel 2010

Impossible cette version n'existe pas sous MAC : 2011, 2016 ou 2019

Quid de l'OS ? High sierra ou autre ?

Votre fichier est dans le dossier Facture ?

Bonjour

Version 2016

high sierra

J'ai d abord un dossier sur le commun qui ce nomme Suivi NATH , a l'interieur :

j'ai un fichier qui ce nomme : suivi d activité ( ce fichier me sert a faire mon suivi d activité et créé mes factures)

J'ai ensuite un autre fichier qui ce nomme Facture ( ce fichier me permet de récupérer via la macro les factures en PDF

Me dire si ma réponse convient afin de trouver la solution a mon problème

Merci d avance pour votre aide

Et en attente de réponse

Cordialement

NATH

Bonjour,

Pas sûr d'avoir compris notamment au sujet du "commun"

Peut être avoir une vue de la structure et éventuellement un modèle de fichier contenant le code que vous avez ?

Dans le code proposé, mettez ceci --> Msgbox chemin

Cela vous renvoie quoi comme info ?

Bonjour Dan

Déjà merci pour ton aide sur ce sujet

Je te joint un exemple de facture sur onglet excel avec la macro qui fonctionne bien sur Windows mais pas sur Mac

Et encore merci pour ta patience

NATH

Quelques questions :

- Est-ce que l'utilisation doit se faire aussi bien sous windows que sous MAC
- Sous mac dans votre code, mettez ceci en premier ligne et donnez moi ce que vous renvoie le message. Ce message va permettre de savoir où se trouve votre fichier Facture

Msgbox Thisworkbook.path

- Dans le code, vous avez une variable "Dossier", cela correspond à quoi dans le code. Il n'y a pas de lignes et sous windows vous devriez avoir un arrêt à cet endroit

Bonjour Dan

Grand merci a toi pour prendre du temps sur mon problème

Je suis novice en VBA et concernant la macro pour enregistrer onglet directement en PDF dans un dossier vient du forum

on ma juste donnée la façon de faire et j'ai juste rajouter chemin d accès

Donc j'ai une question : est il plus simple de refaire une macro adaptable sur Mac , qui prend en compte l onglet facture , avec un bouton qui :

Crée le pdf , le renomme en prenant comme élément :

Facture N° + CELLULE I 13

Du + CELLULE I 14

+ CELLULE C13

Ce qui donne en résultat : Facture N° F2021-10-42 Du 10/03/2021 RAOUL

Ensuite j'enregistre ce PDF dans mon dossier Facture Et par client

Je sais je demande beaucoup , mais si tu peux m'aider ou alors trouver une façon plus simple a faire je suis preneuse

L'idée est pour moi de garder l historique des factures dans un dossier

Voila

merci pour ton aide

Bonne journée

NATH

Bonjour

Je suis désolé mais je ne peux pas me pencher sur le problème si vous ne répondez pas aux questions posées

De plus ce nom de fichier --> Facture N° F2021-10-42 Du 10/03/2021 RAOUL, ne sera pas accepté ni sous windows ni sous mac (les / ne sont pas autorisés). Vous devez mettre votre date comme ceci 10-03-2021 ou 10032021 ou mieux --> 20210310.

Pour ma part j'aurais plutot fait un dossier FACTURE dans lequel j'aurais enregistré toutes les factures avec un nom comme ceci --> Facture-20210310_F2021-10-42_RAOUL. Donc pas de dossier par client et la date sous forme inversée

N'oubliez pas que vous disposez la recherche via l'explorateur Windows et de Spotlight sous MAC

Rechercher des sujets similaires à "macro basculer mac"