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 :

Excel ou Open Office ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut Excel ou Open Office ?
    Bonjour,
    ma société envisage de passer sous open office prochainement. Je suis donc en train de voir l'impact sur les macros qui ont été développées dans nos fichiers Excel.

    A première vue, ce n'est pas trop catastrophique mais il y a quand même quelques ajustements. J'essaie de modifier le code pour avoir une version qui puisse être utilisée indifféremment sur Excel ou Open Office. Comme il y a des cas où ça ne semble pas possible, je voudrais pouvoir tester quel logiciel vient de lancer la macro pour déterminer la syntaxe à utiliser. Quelque chose du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Application.Name = "Microsoft Excel" then
        'Code valide pour Excel
      else 
        'Code valide pour Open Office
      end if
    D'où ma question : connaissez-vous un moyen pour déterminer si mon fichier xls a été ouvert par Excel ou par Open Office ? Je pensais utiliser Application.Name ou Application.Version mais ça me donne la même chose sur les deux environnements. Je peux aussi lancer une instruction qui "plante" sous OO. En cas de On error je sais que je suis sous OO mais ce n'est pas très "propre".

    Si l'un de vous a une idée, je suis preneur.

    Merci.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Je suis peut-être hors-sujet mais autant que je me souvienne, le modèle objet d'OO n'est pas du tout le même que celui de Microsoft Office...comment fais-tu pour coder des applications compatibles avec les deux du coup?

    Sinon je ne connais pas l'astuce pour ton problème mais pour éviter les tests inutiles, tu peux définir une compilation conditionnelle avec VBA (http://www.dailydoseofexcel.com/arch...ion-arguments/).

    ...si t'as beaucoup de divergences et des codes un peu lourd, ça permet d'accélérer l'exécution.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut
    Bonjour Sclarckone,
    les dernières versions d'OO sont capables de lire et interpréter les macros VBA....à quelques erreurs prêt ! Par exemple, je rencontre systématiquement une erreur sur l'instruction Redim Preserve pour un tableau à plusieurs dimensions. Pour que ma macro VBA fonctionne sous OO, il faut dans ce cas que déclare une première fois mon tableau sous la forme Dim tab (0,0).

  4. #4
    Expert confirmé
    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

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suis assez d'accord avec Sclarckone et suis très attentif à ce que ced92 nous annonce car pour ma part, j'ai OOo et je n'ai jamais réussis à faire tourner mes codes VBA sur OOo Basic.
    Connaissez vous ce lien Convert VBA to OpenOffice Basic ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut
    Novell et SUN travaillent sur un projet pour qu'OO puisse interpréter des macros écrites en VBA : http://wiki.services.openoffice.org/wiki/VBA

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour ced92
    Citation Envoyé par ced92 Voir le message
    Novell et SUN travaillent sur un projet pour qu'OO puisse interpréter des macros écrites en VBA : http://wiki.services.openoffice.org/wiki/VBA
    Oui, cela je l'avais lu et je crois que c'est payant mais ce qui m'a interpellé c'est ton message.
    Citation Envoyé par ced92 Voir le message
    Bonjour Sclarckone,
    les dernières versions d'OO sont capables de lire et interpréter les macros VBA....à quelques erreurs prêt ! Par exemple, je rencontre systématiquement une erreur sur l'instruction Redim Preserve pour un tableau à plusieurs dimensions. Pour que ma macro VBA fonctionne sous OO, il faut dans ce cas que déclare une première fois mon tableau sous la forme Dim tab (0,0).
    Ton expérience à ce sujet m'intéresse au plus haut point.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,

    en début de module permet de coder en VBA

    mais effectivement ça ne marche pas à 100%

    Sinon essaye la constante de compilation VBA6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #IF VBA6 then
      ' code pour Office
    #Else
      ' code pou OOo
    #End if
    VBA6 est True à partir de Office 2000
    Je ne sais pas ce que ça donne en basic ooo (je ne sais même pas s'il accepte des constantes de compilation ...)

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut
    La constante de compilation ne fonctionne pas. Je vais creuser. Merci pour l'idée.

    Pour Corona :
    le code Option VBASupport 1 permet effectivement de lire une macro VBA. Après quelques tests, je trouve un certain nombre de limites, telles que :
    • Redim preserve tab(0 to 2, 0 to k) ne fonctionne pas (il faut au préalable déclarer un dim tab(0,0))
    • Application.ScreenUpdating = False n'est pas pris en compte
    • Le .ShowAllData semble aussi poser problème
    • ...

Discussions similaires

  1. Utiliser des macros Excel sous open office
    Par Memes dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/11/2007, 21h46
  2. conversion excel vers open office
    Par djedje37et28 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/05/2007, 14h29
  3. utiliser les macros Excel sous Open Office
    Par ProfAnn dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2007, 12h58
  4. Migrer macro excel vers open office (VB vers Ooo) comment faire?
    Par cyberdevelopment dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2007, 21h04
  5. Peux-t'on exécuter des macros excel avec Open Office
    Par Lexot2 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/09/2006, 22h30

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