Lancer une appli dans une nouvelle instance Excel , mais pas seulement
Lancer une appli dans une nouvelle instance Excel , mais pas seulement - VB/VBA/VBS - Programmation
MarshPosté le 07-12-2021 à 11:15:17
Bonjour, J'ai une première application VBA Excel qui crée des classeurs (devis, factures,) sous une forme brute, lesquels doivent ensuite être mis en forme pour être édités/imprimés. L'exécution de ces mises en forme est assez longue. J'ai donc créé une deuxième application qui assure ces mises en forme (analogue au spouleur Word<==> Wiindows)
La première application comporte un Userform A dont une des fonctions est de mettre dans une file d'attente (table Access) les demandes d'édition et de lancer la deuxième application dans une nouvelle instance d'Excel, par un bouton du Userform A. La deuxième application comporte un Userform B avec un bouton qui permet de lancer la lecture de cette table Access et d'effectuer les éditions.
Voici mon problème : 1 - Cela fonctionne bien mais la première application attend la fin de la deuxième application pour pouvoir reprendre la main. 2 - Par contre si je déclare le Userform B en "no modal" les deux applications fonctionnent en même temps, mais la deuxième s’arrête (ou semble s’arrêter) lorsque la procédure ferme un classeur ouvert dans cette deuxième application (Classeur qui n'a rien à voir de près ou de loin avec la première application)
Autrement dit comment reprendre la main dans la première application, juste après le lancement de la deuxième application (après l'instruction open ...j'ai tout essayé!)
Dim appExcel As Excel.Application Set appExcel = CreateObject("Excel.Application" )
With appExcel .Workbooks.Open FileName:=ThisWorkbook.Path & "\Edit_Batch.xlsm"
Marsh Posté le 07-12-2021 à 11:15:17
Bonjour,
J'ai une première application VBA Excel qui crée des classeurs (devis, factures,) sous une forme brute, lesquels doivent ensuite être mis en forme pour être édités/imprimés. L'exécution de ces mises en forme est assez longue.
J'ai donc créé une deuxième application qui assure ces mises en forme (analogue au spouleur Word<==> Wiindows)
La première application comporte un Userform A dont une des fonctions est de mettre dans une file d'attente (table Access) les demandes d'édition et de lancer la deuxième application dans une nouvelle instance d'Excel, par un bouton du Userform A.
La deuxième application comporte un Userform B avec un bouton qui permet de lancer la lecture de cette table Access et d'effectuer les éditions.
Voici mon problème :
1 - Cela fonctionne bien mais la première application attend la fin de la deuxième application pour pouvoir reprendre la main.
2 - Par contre si je déclare le Userform B en "no modal" les deux applications fonctionnent en même temps, mais la deuxième s’arrête (ou semble s’arrêter) lorsque la procédure ferme un classeur ouvert dans cette deuxième application (Classeur qui n'a rien à voir de près ou de loin avec la première application)
Autrement dit comment reprendre la main dans la première application, juste après le lancement de la deuxième application (après l'instruction open ...j'ai tout essayé!)
Dim appExcel As Excel.Application
Set appExcel = CreateObject("Excel.Application" )
With appExcel
.Workbooks.Open FileName:=ThisWorkbook.Path & "\Edit_Batch.xlsm"
End With
end sub
'suite des autres fonctions de la procédure
Merci de vos réponses
Message édité par edma le 10-12-2021 à 16:51:33