Excel VBA sous Mac
Fermé
Mike-31
Messages postés
18309
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 mars 2024
-
Modifié le 13 mai 2017 à 17:51
Mike-31 Messages postés 18309 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 14 mars 2024 - 15 mai 2017 à 14:32
Mike-31 Messages postés 18309 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 14 mars 2024 - 15 mai 2017 à 14:32
A voir également:
- Vba sur mac
- Adresse mac - Guide
- @ Sur mac - Guide
- Nettoyer mac - Guide
- Temperature mac - Guide
- Reinstaller mac os - Guide
6 réponses
Aliboron Martin
Messages postés
3430
Date d'inscription
samedi 1 janvier 2011
Statut
Contributeur
Dernière intervention
26 mars 2024
927
13 mai 2017 à 18:17
13 mai 2017 à 18:17
De quelle version d'Excel est-il question ? Qu'est-ce que c'est que ces antislash dans le chemin d'accès ? Sur Mac c'est soit : (Excle 2011), soit / (Excel 2016). Le mieux c'est d'utiliser une variable Application.PathSeparator, comme ça, pas de souci !
Chez moi, en tout cas, ton code fonctionne sans problème, aussi bien avec Excel 2011 qu'avec Excel 20126 (du moins pour la partie création et enregistrement d'une copie de la feuille "Devis").
Chez moi, en tout cas, ton code fonctionne sans problème, aussi bien avec Excel 2011 qu'avec Excel 20126 (du moins pour la partie création et enregistrement d'une copie de la feuille "Devis").
Mike-31
Messages postés
18309
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 mars 2024
5 071
Modifié le 13 mai 2017 à 21:02
Modifié le 13 mai 2017 à 21:02
Bonsoir Aliboron,
Le code sur PC fonctionne parfaitement quelque soit la version Excel 2007, 2010 etc
sur PC il faut utiliser les antislash comme séparateur.
Le problème est sur mac le fichier s'enregistre dans le répertoire et non dans le sous répertoire même en utilisant la syntaxe Application.PathSeparator ce que j'ai déjà fait
il faudrait que la copie s'enregistre dans le sous répertoire nommée Archives Devis, et cet cette ligne de commande qui fonctionne parfaitement sur PC mais coince sur mac
ActiveWorkbook.SaveAs chemin & "\Archives Devis\" & nom, FileFormat:=xlExcel8
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
Le code sur PC fonctionne parfaitement quelque soit la version Excel 2007, 2010 etc
sur PC il faut utiliser les antislash comme séparateur.
Le problème est sur mac le fichier s'enregistre dans le répertoire et non dans le sous répertoire même en utilisant la syntaxe Application.PathSeparator ce que j'ai déjà fait
ActiveWorkbook.SaveAs chemin + Application.PathSeparator + Archives Devis + nom, FileFormat:=xlExcel8
Ou encore
ActiveWorkbook.SaveAs chemin & Application.PathSeparator & Archives Devis & nom, FileFormat:=xlExcel8
il faudrait que la copie s'enregistre dans le sous répertoire nommée Archives Devis, et cet cette ligne de commande qui fonctionne parfaitement sur PC mais coince sur mac
ActiveWorkbook.SaveAs chemin & "\Archives Devis\" & nom, FileFormat:=xlExcel8
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
Aliboron Martin
Messages postés
3430
Date d'inscription
samedi 1 janvier 2011
Statut
Contributeur
Dernière intervention
26 mars 2024
927
Modifié le 14 mai 2017 à 00:17
Modifié le 14 mai 2017 à 00:17
Mike-31 :
il faudrait que la copie s'enregistre dans le sous répertoire nommée Archives Devis, et cet cette ligne de commande qui fonctionne parfaitement sur PC mais coince sur mac
ActiveWorkbook.SaveAs chemin & "\Archives Devis\" & nom, FileFormat:=xlExcel8
Mais comme vu, ça fonctionne sans problème chez moi, aussi bien avec Excel 2011 (séparateur :) qu'avec Excel 2016 (séparateur /) et sous Windows (séparateur \) :
La seule différence, chez moi, c'est que j'ai mis en commentaire la ligne ActiveSheet.Shapes.Range(Array("Bouton")).Visible = False parce que j'avais la flemme d'ajouter un bouton (inutile).
Dans ton exemple, tu n'as pas mis de guillemets à "Archive Devis", mais je suppose que c'est dans la transcription. En réalité, tu as bien ça, je présume :
PathSep = Application.PathSeparator
ActiveWorkbook.SaveAs chemin & PathSep & "Archives Devis" & PathSep & nom, FileFormat:=xlExcel8
Quand tu exécutes en pas à pas, tout se passe bien ?
Bonjour chez vous !
Bernard
il faudrait que la copie s'enregistre dans le sous répertoire nommée Archives Devis, et cet cette ligne de commande qui fonctionne parfaitement sur PC mais coince sur mac
ActiveWorkbook.SaveAs chemin & "\Archives Devis\" & nom, FileFormat:=xlExcel8
Mais comme vu, ça fonctionne sans problème chez moi, aussi bien avec Excel 2011 (séparateur :) qu'avec Excel 2016 (séparateur /) et sous Windows (séparateur \) :
La seule différence, chez moi, c'est que j'ai mis en commentaire la ligne ActiveSheet.Shapes.Range(Array("Bouton")).Visible = False parce que j'avais la flemme d'ajouter un bouton (inutile).
Dans ton exemple, tu n'as pas mis de guillemets à "Archive Devis", mais je suppose que c'est dans la transcription. En réalité, tu as bien ça, je présume :
PathSep = Application.PathSeparator
ActiveWorkbook.SaveAs chemin & PathSep & "Archives Devis" & PathSep & nom, FileFormat:=xlExcel8
Quand tu exécutes en pas à pas, tout se passe bien ?
Bonjour chez vous !
Bernard
Mike-31
Messages postés
18309
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 mars 2024
5 071
15 mai 2017 à 10:31
15 mai 2017 à 10:31
Salut Aliboron,
ok ça marche, le fichier s'enregistre bien dans le sous répertoire.
mais j'ai un autre problème sous toujours sur PC avant la création d'une copie de ma feuille Excel dont le nom est renseignée par la cellule E5 je testais si le fichier existait déjà avec cette ligne de commande
If Dir(chemin & "\Archives Devis\" & nom) <> "" Then
MsgBox "Un devis nommé " & [E5] & ".xls" & " est déjà archivé !", , "demande rejetée."
Exit Sub
End If
bien évidemment cette ligne ne fonctionne pas sous Mac alors j'ai essayé de bidouiller sans succès à partir de ta ligne de code
If Dir(chemin & PathSep & "Archives Devis" & PathSep & nom) <> "" Then
MsgBox "Un devis nommé " & [E5] & ".xls" & " est déjà archivé !", , "demande rejetée."
Exit Sub
End If
quelque soit les modifications apportées il me retourne que le fichier existe déjà alors qu'il ne figure pas dans le sous répertoire.
vois tu ou le code pêche.
difficile de passer de PC qui n'a plus trop de secret à Mac, je te remercie pour ton aide
ok ça marche, le fichier s'enregistre bien dans le sous répertoire.
mais j'ai un autre problème sous toujours sur PC avant la création d'une copie de ma feuille Excel dont le nom est renseignée par la cellule E5 je testais si le fichier existait déjà avec cette ligne de commande
If Dir(chemin & "\Archives Devis\" & nom) <> "" Then
MsgBox "Un devis nommé " & [E5] & ".xls" & " est déjà archivé !", , "demande rejetée."
Exit Sub
End If
bien évidemment cette ligne ne fonctionne pas sous Mac alors j'ai essayé de bidouiller sans succès à partir de ta ligne de code
If Dir(chemin & PathSep & "Archives Devis" & PathSep & nom) <> "" Then
MsgBox "Un devis nommé " & [E5] & ".xls" & " est déjà archivé !", , "demande rejetée."
Exit Sub
End If
quelque soit les modifications apportées il me retourne que le fichier existe déjà alors qu'il ne figure pas dans le sous répertoire.
vois tu ou le code pêche.
difficile de passer de PC qui n'a plus trop de secret à Mac, je te remercie pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Aliboron Martin
Messages postés
3430
Date d'inscription
samedi 1 janvier 2011
Statut
Contributeur
Dernière intervention
26 mars 2024
927
Modifié le 15 mai 2017 à 11:33
Modifié le 15 mai 2017 à 11:33
Ah, bienvenue dans le monde merveilleux du développement de macros compatibles Windows et Mac, de la compilation conditionnelle, etc.
Le mieux, c'est de voir tout ce qu'a déjà écrit Ron de Bruin à ce sujet sur son site. Et plus particulièrement, concernant la commande Dir, cette page-ci. Tu as de grandes découvertes devant toi... ;-)
Bonjour chez vous !
Bernard
Le mieux, c'est de voir tout ce qu'a déjà écrit Ron de Bruin à ce sujet sur son site. Et plus particulièrement, concernant la commande Dir, cette page-ci. Tu as de grandes découvertes devant toi... ;-)
Bonjour chez vous !
Bernard
Mike-31
Messages postés
18309
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 mars 2024
5 071
15 mai 2017 à 14:32
15 mai 2017 à 14:32
Re,
Merci pour tes encouragement, je vais me procurer des l'aspirine et me plonger dans ces codes compatibles, mais à petite dose
Merci pour tes encouragement, je vais me procurer des l'aspirine et me plonger dans ces codes compatibles, mais à petite dose