Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouvrir Excel appli indépendante

5 réponses
Avatar
Etienne
Bonjour,
J'exécute ce petit script tout simple à partir d'un programme :

set objshell = wscript.CreateObject("WScript.Shell")
objexec = objshell.Run("\\MyServer\Write$\toto.XLS", 1, False)

La première fois, ça m'ouvre Excel et le fichier toto.xls
Si je réexécute le scipt avec titi.xls, ça m'ouvre le fichier dans
l'application Excel précédente, mais pas dans une nouvelle instance de Excel.

En revanche, si j'essaie avec Word, ça ouvre bien 2 instances...

Comment ouvrir plusieurs fichiers Excel dans des applis indépendantes en
utilisant la command Run svp ? - sans avoir à mentionner le nom du conteneur
car je dois pouvoir ouvrir tout type de fichier (pdf, autocad...).

Merci.

PS : le changement du second argument de run (windowstyle) n'améliore rien.

5 réponses

Avatar
MC
Bonjour !

Dans Word, il y a une option spécifique, pour ouvrir différents
documents dans la même instance, ou dans des instances différentes.

Donc, la réaction que tu obtiens n'est pas généralisable.

En pratique, pour être sûr d'ouvrir plusieurs fois une application,
c'est encore de spécifier l'application (le conteneur).

Désolé.

--
@-salutations

Michel Claveau
Avatar
Gilles LAURENT
"Etienne" a écrit dans le message
de news:
| Bonjour,

Bonjour,

La réponse de Michel est correcte. Je vais cependant vous donner une
technique permettant d'ouvrir des documents Excel dans des instances
séparées sans avoir besoin de spécifier l'application hôte. Cela
nécessite bien entendu d'apporter des modifications dans la
configuration du poste sur lequel le script s'exécute.

[...]
| Comment ouvrir plusieurs fichiers Excel dans des applis indépendantes
| en utilisant la command Run svp ? - sans avoir à mentionner le nom du
| conteneur car je dois pouvoir ouvrir tout type de fichier (pdf,
| autocad...).

Note : Solution testée avec Microsoft Excel 2002 SP3

- Ouvrir le registre : HKCRExcel.Sheet.8ShellOpenCommand
- Editez la valeur command présente dans le volet droit
- Ajouter "%1" à la fin de la commande
- Fermer le registre

- Ouvrir Excel : Outils -> Options ... -> Général
- Cochez "Ignorer les autres applications"
- Quittez Excel

Note : Les différentes instances ne seront plus en mesure de communiquer
entre elles via la technologie DDE

Set oSh=CreateObject ("WScript.Shell")
oSh.Run "test1.xls" ' instance 1
oSh.Run "test2.xls" ' instance 2

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Méta-MCI
Bonjour !

Ajouter "%1" à la fin de la commande



C 'est rusé.

As-tu essayé, avec : "%1" "%2" "%3" etc. ?
Ou avec %* et "%*" ?

Notamment, pour voir si ce dernier cas pourrait rendre certaines
fonctionnalités à Excel (DDE ?)

Ceci étant, il me semble que MS avait conseillé, il y a quelques années, de
basculer du DDE vers COM. Mais, je ne suis plus très sûr de ma mémoire...

@-salutations

Michel Claveau


Avatar
Etienne
Merci pour toutes vos réponses très utiles.
Avatar
Gilles LAURENT
"Méta-MCI" a écrit dans le message de
news:45c987b8$0$5108$
| Bonjour !

Bonjour,

||| Ajouter "%1" à la fin de la commande
|
| C 'est rusé.

Hé hé !

| As-tu essayé, avec : "%1" "%2" "%3" etc. ?
| Ou avec %* et "%*" ?
|
| Notamment, pour voir si ce dernier cas pourrait rendre certaines
| fonctionnalités à Excel (DDE ?)

Sans succès. Il est nécessaire de désactiver le support DDE pour
bénéficier des instances séparées.

--
Gilles LAURENT
http://glsft.free.fr