Différence entre VBA Excel pour WINDOWS et MAC

Bonjour à tous

je développe actuellement des macros sous Excel pour des collègues. et je suis sous Excel 2007 pour Windows.

Je sais que certains de mes collègues sont sous MAC... et il y a quelque temps j'avais un collègue qui m'avait dis qu'un fichier contenant une macro que j'avais fait ne fonctionnait pas sur son MAC.

  • je voudrais savoir si un recueil existe des fonctions non compatibles entre MAC ET WIN ?
  • S'il était possible d'activer une option ou autre (installation d'un patch...) pour que mon code soit opérationnel sous les deux systèmes ??
à vous lire

Fred

Bonjour,

Toutes les APIS windows utilisées par VBA ne sont pas opérationnelles sur mac...

Donc si tu gères le clipboard, des fenetres d'explorateur de dossiers, des formulaires activx ou d'autres choses très windows ça ne marchera pas, la seule solution pour voir la compatibilité, c'est de construire sous win, passer sur mac et débeuger

Ok Merci Engue pour ta réponse

j'ai plus qu'a me faire prêter un MAC ou d'en acheter un .......

en l’occurrence j’utilise une fenêtre d'explorateur de dossier pour demander a l'utilisateur de choisir soit un fichier dans une macro soit un dossier dans une autre.

aurais tu cela en version mac pendant que j'y suis Engue ?

Merci

Fred

Il ne faut pas faire une version mac et une windows. Il faut faire qqchose qui marche sur les deux

Function isMac() As Boolean

   If Application.OperatingSystem Like "*Mac*" Then
      isMac = True
   Else
      isMac = False
   End If

End Function
Function myGetOpenFileName(Optional sPath As String) As String
Dim sFile As String
Dim sMacScript As String

    If isMac Then
        If sPath = vbNullString Then
            sPath = "the path to documents folder"
        Else
            sPath = " alias """ & sPath & """"
        End If
        sMacScript = "set sFile to (choose file of type ({" & _
            """com.microsoft.Excel.xls"", ""org.openxmlformats.spreadsheetml.sheet""," & _
            """public.comma-separated-values-text"", ""public.text"", ""public.csv""," & _                   """org.openxmlformats.spreadsheetml.sheet.macroenabled""}) with prompt " & _
            """Select a file to import"" default location " & sPath & ") as string" _
            & vbLf & _
            "return sFile"
         Debug.Print sMacScript
        sFile = MacScript(sMacScript)

    Else 'windows

        sFile = Application.GetOpenFilename("CSV files,*.csv,Excel 2007 files,*.xlsx", 1, _
            "Select file to import from", "&Import", False)

    End If

    myGetOpenFileName = sFile
End Function

Merci Engue

tu as raison il faut que je fasse une version de mon code qui soit compatible pour les deux systèmes.....

je vais devoir me renseigner sur les fonctions vba pour mac alors car c'est pas tout a fait la meme chose .....

mais bon c'est pas très facile a tester sans MAC sous la main mais cela est mon problème...

Engue aurais tu aussi le même genre de code adapter a MAC pour demander à l'utilisateur de selectionner seulement un dossier ?? et non pas un fichier comme précedemment.

j'utilise cette fonction (trouvé) pour windows :

Function ChoixDossier()
    If Val(Application.Version) >= 10 Then
       With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = ActiveWorkbook.Path & "\"
        .Show
        If .SelectedItems.Count > 0 Then
           ChoixDossier = .SelectedItems(1)
        Else
           ChoixDossier = ""
        End If
       End With
     Else
       ChoixDossier = InputBox("Répertoire?")
     End If
End Function

merci

Fred

myGetOpenFileName = sFile

ça c'est un chemin..

Tu trouves le dernier "/" et tu vires jusque là..

Merci Engue pour ta réponse, mais ce n'est pas cela que je demande.

si je demande un nom de fichier je suis d'accord avec toi en supprimant le nom j'ai le chemin d’accès au fichier pas de soucis.

mais dans une macro je demande a l'utilisateur de me choisir un DOSSIER et non pas un fichier. ensuite mon traitement passe en revue tous les fichiers contenu dans le DOSSIER renseigné.

Une solution serait de faire choisir un des fichiers contenu dans le dossier désiré mais perso je préférerais lui demandé de sélectionner le dossier. (m'a solution actuelle sous windows)

si tu as une solution, je suis preneur

merci

Fred

.... Tu pourrais faire un effort..

Remplace :

"""com.microsoft.Excel.xls"", ""org.openxmlformats.spreadsheetml.sheet""," & _

"""public.comma-separated-values-text"", ""public.text"", ""public.csv""," & _ """org.openxmlformats.spreadsheetml.sheet.macroenabled""

Par :

"""public.directory""

merci Engue

je testerais cela dès que je pourrais avoir un MAc a dispo

il faut vraiment que je me renseigne que les instructions MAC

Merci pour tout

Fred

Bonsoir a Tous

je déterre un petit peu ce post ouvert il y a quelques mois simplement pour donner quelques liens bien utiles pour ceux qui veulent faire une application excel compatible avec un excel MAC, on y retrouve ouverture de fichier creation/suppression de dossiers, ....

(désolé tous les liens sont en anglais....)

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

http://msdn.microsoft.com/en-us/library/jj614412(v=office.14).aspx#odc_xl14_ta_PerformFileFolderOpers_File

http://msdn.microsoft.com/en-us/library/jj614412.aspx#odc_xl14_ta_PerformFileFolderOpers_Correct

Fred

Rechercher des sujets similaires à "difference entre vba windows mac"