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

Création de deux instances séparées

1 réponse
Avatar
Alain
Je souhaite démarrer deux applications Excel indépendantes de manière à
pouvoir lancer une macro nécessitant plus d'1/2 heure d'exécution dans une
application Excel et de pouvoir continuer à travailler dans d'autres
classeurs Excel dans l'autre application Excel. Comment faire ?
Par défaut, c'est impossible: on a une seule application Excel qui gère tous
les classeurs et, si on lance une macro lourde, tous les classeurs sont
indisponibles.
Merci d'avance.

Alain.

1 réponse

Avatar
PMO
Bonjour,

Une piste avec l'astuce ci-dessous.

Pour tester faites les opérations suivantes:

CLASSEUR COMPORTANT LA MACRO
DEMANDANT UN LONG TEMPS D EXECUTION
1) Créez un nouveau classeur
2) Copiez le code ci-dessous comportant une boucle interminable
'*********************
Sub BoucleSansFin()
Do
[a1] = [a1] + 1
DoEvents
Loop
End Sub
'*********************
3) Enregistrez le classeur dans le disque C: sous le nom test.xls
4) Fermez le classeur

CLASSEUR POUR CONTINUER DE TRAVAILLER
1) Créez un nouveau classeur et nommez le ZAZA.xls
2) Copiez le code ci-dessous
'*********************
Sub PMO_NewInstance()
Dim i&
i& = Shell("Excel", 1)
AppActivate i&
DoEvents
MsgBox "Continuer ?"
End Sub
'*********************
3) Lancez la macro PMO_NewInstance
4) Une nouvelle instance d'Excel apparaît
5) Faites usage du menu Fichier/Ouvrir et dans la boîte de dialogue
sélectionnez le classeur test.xls
6) A partir de lui, lancez la macro BoucleSansFin
7) Cliquez sur ZAZA.xls dans la barre des tâches Window

Si tout se passe bien, vous pouvez travaillez dans ZAZA.xls pendant
que la macro BoucleSansFin de test.xls continue de tourner.
Vous pouvez vérifier la progression de test.xls en cliquant
sur test.xls dans la barre des tâches Window.

IMPERATIF POUR LE FONCTIONNEMENT DoEvents
Vous noterez l'usage, dans les deux macros, de
l'instruction DoEvents qui est ABSOLUMENT INDISPENSABLE
pour pouvoir reprendre la main.
Il vous faudra placez cette instruction dans vos vraies macros
et, notamment pour le classeur où s'exécute la macro longue,
à des endroits judicieux afin qu'elle puisse réitérer.

Cordialement.
--
PMO
Patrick Morange



Je souhaite démarrer deux applications Excel indépendantes de manière à
pouvoir lancer une macro nécessitant plus d'1/2 heure d'exécution dans une
application Excel et de pouvoir continuer à travailler dans d'autres
classeurs Excel dans l'autre application Excel. Comment faire ?
Par défaut, c'est impossible: on a une seule application Excel qui gère tous
les classeurs et, si on lance une macro lourde, tous les classeurs sont
indisponibles.
Merci d'avance.

Alain.