Compatibilité code VBA Windows à Mac

Bonjour,

Je travaille depuis peu sur Mac et j'aurais aimé pouvoir retravailler certains de mes excels développés sur windows. Seulement lorsque je souhaite compiler je me retrouve avec un "code erreur 70" me ramenant toujours à la même ligne de mon code... Alors que sur mon windows le code compile normalement.

Merci pour votre aide :)

image image

Bonjour,

Les séparateurs de chemin sont différents. Essayez avec cette ligne modifiée :

Repertoire = thisworkbook.path & application.pathseparator & "Img2.jpg"

Normalement, ce code devrait fonctionner sur Windows (séparateur "\") et sur Mac (séparateur ":" ou "/").

Cdlt,

Bonjour,

Merci pour votre réactivité. J'ai essayé de remplacer votre ligne par la mienne mais cela ne fonctionne pas... J'ai toujours la même erreur

Pouvez-vous poster le code actuel sur le forum à l'aide des balises </> du ruban d'icônes ?

De cette manière ?

Sub graphe()
Dim ws As Worksheet
Dim Repertoire As String
Dim MonGraphe As Object

Set ws = ThisWorkbook.Sheets("Feuil3")
Set MonGraphe = ws.ChartObjects(1).Chart

Repertoire = ThisWorkbook.Path & "\" & "Img2.jpg"
MonGraphe.Export Repertoire
Me.Image2.Picture = LoadPicture(Repertoire)

Set ws = Nothing
Set MonGraphe = Nothing
End Sub

Exactement, ça me permet de le copier^^.

Donc vous avez essayé ce code ?

Sub graphe()
Dim ws As Worksheet
Dim Repertoire As String
Dim MonGraphe As Object

Set ws = ThisWorkbook.Sheets("Feuil3")
Set MonGraphe = ws.ChartObjects(1).Chart

Repertoire = ThisWorkbook.Path & application.pathseparator & "Img2.jpg" '<<< CHGT
MonGraphe.Export Repertoire
Me.Image2.Picture = LoadPicture(Repertoire)

Set ws = Nothing
Set MonGraphe = Nothing
End Sub

Oui voilà exactement...

A moins que ce fichier n'existe déjà ou que vous n'ayez pas les autorisations, il n'y a pas de raison que cela bloque.

Voici un essai :

Sub graphe()
dim spath$
spath = ThisWorkbook.Path & application.pathseparator & "Img2.jpg" '<<< CHGT
if dir(spath) <> "" then msgbox "Existe deja", 16: exit sub
ThisWorkbook.Sheets("Feuil3").ChartObjects(1).Chart.Export spath
Me.Image2.Picture = LoadPicture(spath)
End Sub

Je ne sais pas si le format jpg est géré sur mac. Ce ne serait pas jpeg plutôt ?

Dans ce cas, à tester :

Sub graphe()
dim spath$, sep$
sep = application.pathseparator
spath = ThisWorkbook.Path & sep & "Img2" & iif(sep = "\", ".jpg", ".jpeg") '<<< CHGT
if dir(spath) <> "" then msgbox "Existe deja", 16: exit sub
ThisWorkbook.Sheets("Feuil3").ChartObjects(1).Chart.Export spath
Me.Image2.Picture = LoadPicture(spath)
End Sub

Cdlt,

Cela ne fonctionne toujours pas..

J'ai l'erreur 70 renvoyant à la ligne "ThisWorkbook.Sheets..."

Bonjour

En lisant le fil, quelle est votre version Excel MAC ? 2011 ? ...

A partir de 2016, vous n'avez plus d'userform sur excel MAC, donc le Me ne va pas fonctionner

Cordialement

Bonjour,

La version que j'utilise sur mon mac est la 16.51...

Vous êtes sous quel OS ?

je pense que cela est dû à la SANDBOX qu'Apple a mise en place dès la version High Sierra et il va falloir passer par la bibliothèque et le Group Container

Library/Group Containers/UBF8T346G9.Office

Mais ce qui m'étonne c'est que le code ne vous renvoie pas une erreur sur le ME avant exécution.

Bonjour,

Je n'avais pas vu votre réponse.. Je suis sur macOS Big Sur version 11.3.1.

Je ne suis pas un expert, je n'ai pas compris comment intégrer le bibliothèque et le group container à mon code ?

Rechercher des sujets similaires à "compatibilite code vba windows mac"