IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compatibilité PC/Mac code conditionnel ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 14
    Points
    14
    Par défaut Compatibilité PC/Mac code conditionnel ?
    Bonjour à tous,
    J'ai finalisé mon classeur sous WinXp, mais certains utilisateurs l'ouvriront depuis Mac...
    Inutile de vous apprendre que ça bug sur certaines macros

    Question1:
    J'ai déjà modifié quelques fonctionnalités pour que ça "passe", et je me demande si je pourrais pas différencier des lignes de code, qui s'exécuteraient ou non selon si l'OS est Mac ou Win ?? Je suis sûr qu'un joli IF peut me faire ça... comment tester l'OS ?

    Question2:
    La commande Sendkeys "{F2}" fonctionne bien sous Win mais pas sur Mac. A votre avis est-ce une commande inexistante sous Mac, ou bien un simple problème de désignation de la bonne touche sur le clavier Mac... ? (pour info j'ai besoin de F2 pour positionner le curseur automatiquement en fin de valeur dans une cellule pour "suggérer sa saisie")

    Merci d'avance de vos éclairages.
    Antipod
    si je converse à contre-temps, c'est que je suis aux antipodes...

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,Pour 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Option Explicit
     
    Sim Sys as String
     
        .....
        Sys = UCase(Left$(Application.OperatingSystem, 3))
        Select Case Sys
            Case "WIN"
    		.....
            Case "MAC"
    		.....
         End Select
         .....
    Pour 2 : Pas de SendKeys (c'est indiqué dans l'aide de SendKeys)

    Sinon créer une constante de compilation conditionnelle et la définir de manière à indiquer si le code est
    compilé pour Windows ou pour Macintosh.
    Pour préciser que le code est compilé pour Macintosh,
    dans le menu Outils de Visual Basic Editor, cliquez sur Propriétés de VBAProject,
    puis dans la zone Arguments conditionnels de compilation, tapez Macintosh = 1.
    Tu pourras alors compiler et exécuter le code sur Macintosh.
    Pour Windows, attribuez la valeur 0 (zéro) à la même constante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #If Macintosh Then
    .....
    #End If
    Sans oublier qu'Excel 2008 Mac n'intègre plus VBA ( provisoirement ? )

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Bonjour Kiki29,

    J'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     Sim Sys as String
     
        .....
        Sys = UCase(Left$(Application.OperatingSystem, 3))
        Select Case Sys
            Case "WIN"
    		.....
            Case "MAC"
    		.....
         End Select
         .....
    (et pour les débutants (dont je fais partie) Option Explicit+Sim Sys as String se place par exemple en tête de Module)

    J'ai pu ainsi diriger l'execution d'un code différencié selon si la macro s'exécute sur Mac ou Win.

    Sinon créer une constante de compilation conditionnelle et la définir de manière à indiquer si le code est
    compilé pour Windows ou pour Macintosh.
    Comme la formule précédente fonctionne pour moi, je laisse à d'autres le soin d'utiliser cette solution... j'imagine que ça peut mieux convenir selon les cas, pour l'instant je ne saisis pas tout!!!
    "compilation"... je ne vois pas pourquoi tu parles musique !!

    Sans oublier qu'Excel 2008 Mac n'intègre plus VBA ( provisoirement ? )
    je suis sous XL2000(win) et XL2004 (Mac) donc ça passe.

    Merci Beaucoup,
    A une prochaine...
    Antipod
    si je converse à contre-temps, c'est que je suis aux antipodes...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [QUESTION] Compatibilité hardware Mac/PC
    Par KiranoO dans le forum Composants
    Réponses: 1
    Dernier message: 16/11/2009, 16h30
  2. Code conditionnel
    Par Micklabrute dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 14/02/2009, 23h35
  3. compatibilité entre mac et pc
    Par isis1be dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/04/2008, 20h52
  4. Code conditionnel : if else ou for_each ?
    Par quicky2000 dans le forum C++
    Réponses: 8
    Dernier message: 18/02/2007, 16h30
  5. Delphi Turbo - Compatibilité avec le code Delphi6
    Par Moustache dans le forum Delphi
    Réponses: 3
    Dernier message: 18/09/2006, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo