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 :

Ouvrir une instance avec la version Excel de son choix [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Responsable Logistique Internationale
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Logistique Internationale
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut Ouvrir une instance avec la version Excel de son choix
    Bonjour à tous,
    Beaucoup de cas similaires, mais pas de solution concrète à mon problème, donc je me permets d'ouvrir une discussion.
    Voilà, j'ai créé un fichier excel 2010 (14.0) avec des macros qui ouvrent différentes instances pour travailler en parallèle sur d'autre fichier xlsx. No problemo,
    Sauf que j'ai trois collaborateurs qui ont besoin de conserver une version Excel 2003 (11.0) pour un logiciel spécifique sur leur poste.
    Et pour ces personnes, lorsque que l'on utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim Oapp as new excel.application
    L'instance s'ouvre automatiquement sur la version 2003.
    Et fait planter la macro car le workbook à ouvrir utilise des fonctions 2010 incompatibles avec 2003.

    Ainsi, j'espère que vous comprendrez ma question : comment faire pour forcer Excel à ouvrir une instance sous la version de son choix?

    Merci d'avance pour votre aide, ce couac met tout mon projet en porte-à-faux...

    PeacBee

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut,
    Est ce que cela se produit aussi si une instance de 2010 est déjà ouverte?

    Tu peux vérifier la version de Excel avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Val(Application.Version)< 12 Then exit sub
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Peut être une piste avec le code suivant dans lequel il faudra adapter le chemin.
    J'ai 2003 et 2007, j'ouvre les 2 versions dans des instances différentes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub aa()
    Dim RetVal
    '2007
    RetVal = Shell("C:\Program Files\Microsoft Office\Office12\EXCEL.EXE", 1)
    '2003
    RetVal = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE", 1)
    End Sub

  4. #4
    Membre du Club
    Homme Profil pro
    Responsable Logistique Internationale
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Logistique Internationale
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Merci pour vos réponses!
    Oliv-
    Oui, cela se produit en fait dès que Excel 2003 est installé sur le poste.
    Concrètement j'ai besoin d'indiquer à Excel d'ouvrir une "new excel(14.0).application"...

    Aussi, PMO2017, la fonction Shell semble plus intéressante mais cela implique que tous les utilisateurs aient la même installation (à vérif).
    Par contre avec Shell, comment je peux travailler sur cette instance?
    D'habitude on dim l'application, puis le workbook, puis la sheet... Là je coince, mais bon, il ne m'en faut pas beaucoup ^^.

    Au plaisir de vous lire!

  5. #5
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    essaye avec cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set Oapp = CreateObject("excel.application.14")
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  6. #6
    Membre du Club
    Homme Profil pro
    Responsable Logistique Internationale
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Logistique Internationale
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Oliv-
    set oapp = createobject("Excel.application.14")
    Ne fonctionne pas, du moins, il ouvre toujours une version 11.0 et en plus
    oapp.quit
    ne fonctionne pas (je pense que c'est juste une conséquence de 11.0)...
    N'est-il pas possible de récupérer une application ouverte via shell da&ns une variable type excel.application?

    Merci encore,

    PeaceBee

  7. #7
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    si c'est la seule instance d'excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set myapp= getobject(,"excel.application")
    peut être que là ca fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set myapp= getobject(,"excel.application.14")
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

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

Discussions similaires

  1. Demarrer une instance avec ISQLPLUS (Oracle 10g)
    Par jpouil dans le forum Oracle
    Réponses: 3
    Dernier message: 22/03/2006, 06h09
  2. [Débutant] Créer une instance avec le nom d'une classe
    Par Quetzalcoatl dans le forum Langage
    Réponses: 7
    Dernier message: 23/01/2006, 20h43
  3. Ouvrir une image avec paint depuis un formulaire
    Par gui38 dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 16h40
  4. ouvrir une popup avec php
    Par Defrancesco dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/10/2005, 10h34
  5. [Eclipse 3.1] ouvrir une fenetre avec un bouton
    Par Nanoulov dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 01/08/2005, 13h33

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