Problème avec une macro VBA Excel entre PC et Mac

deus33

Membre enregistré
5 Décembre 2014
6
1
Bonjour,
je ne sais pas si je suis au bon endroit ....

mais j ai un soucis avec un programme developpé sur pc qui tourne parfaitement sur pc mais lorsque je veux le mettre sur mon mac bin erreur chemin invalide ....
pouvez vous m aider ?

voici les lignes de commandes

sur mon mac la ligne que j'ai mis en rouge est en jaune ......
et je suis avec office 2011 sous osX
et 2010 sur pc

par avance Merci



Sub Facture()
chemin = Application.ActiveWorkbook.Path
Range("P1") = Range("P1") + 1
NONO = [Num]
Range("A1:i42").Select
Range("G27").Activate
Application.CutCopyMode = False
Selection.Copy
Workbooks.Add Template:=chemin & "\modele\FacVide.xltx"
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A9").Select
ActiveWorkbook.BuiltinDocumentProperties("Title").Value = Range("C4").Value
Range("A9").Value = "Facture no " & NONO
ActiveWorkbook.BuiltinDocumentProperties("Subject").Value = Range("c10").Value

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & "\F_" & NONO, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=chemin & "\F_" & NONO, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

End Sub
 
Bourk, quelle vilaine macro (enregistrée ?) ;)

Pour qu'une macro soit compatible entre Mac et Windows, il faut s'astreindre à n'utiliser que des éléments qui ne sont pas directement liés à un des deux systèmes d'exploitation (et au besoin mettre en place des solutions de contournement).

Dans le cas présent, tu écris un chemin "en dur" sous une forme incompatible avec Mac OS X :
Bloc de code:
[COLOR=Red]Workbooks.Add Template:=chemin & "\modele\FacVide.xltx"[/COLOR]
Comment veux-tu que ce soit interprété correctement ? Le séparateur sous Windows est l'antislash, sous Mac OS X c'est le slash mais pour des raisons de compatibilité, Visual Basic a conservé l'ancien séparateur de Mac OS, les deux points. Cela n'a donc aucune chance de fonctionner tel quel. Il te faudrait nécessairement quelque chose qui ressemble à ça :
Bloc de code:
[COLOR=Red]Workbooks.Add Template:=chemin & ":modele:FacVide.xltx"[/COLOR]

Note : tu peux faire appel à la constante Application.PathSeparator pour contourner ce genre de difficulté.

De façon générale, pour approfondir un peu l'aspect "multi-plateforme" des macros, tu peux utilement consulter les pages dédiées de Ron de Bruin.
 
merci pour ta réponse
je regarde tout a l heure
ce n est pas moi qui l est faite
je ne m y connais pas assez ....

---------- Nouveau message ajouté à 15h01 ---------- Le message précédent a été envoyé à 13h08 ----------

Merci sa fonctionne :) :)
 
  • J’aime
Réactions: Aliboron