Bonjour Job75, bonjour tt le monde,
Le sujet est résolu... j'ai trouvé une solution pour ouvrir un classeur dans une autre instance, uniquement si qq chose est déja ouvert, et si ce classeur à ouvrir contient des instructions "perturbatrices".
Je m'explique:
Excel est ouvert sur un classeur A.
Je souhaite ouvrir le classeur B, qui contient des instructions (à l'ouverture) qui pertuberaient le classeur A, si l'on est dans la même instance.
Pour y arriver, le classeur B contient ce code:
-au début de Thisworkbook_Open(): If Workbooks.Count > 1 Then
ThisWorkbook.Close
Exit Sub
End If
ensuite je mets normalement le code de modification d'Excel que j'utilise habituellement..
- au début de Thisworkbook_BeforeClose(): If Workbooks.Count > 1 Then
Call OuvrirDansNouvelleInstance
Else:
ensuite je mets le code qui enlève les modifications d'Excel (retour état "standard"), suivi bien sur de End if
et juste à la fin de cette macro, je mets If Workbooks.Count > 1 Then
ActiveWorkbook.Saved = True
End If
Application.DisplayAlerts = False
End Sub
- dans un module je mets la macro: Sub OuvrirDansNouvelleInstance()
Dim appExcel As Excel.Application
Set appExcel = CreateObject("Excel.Application")
Dim Titre
Dim Repertoire
Titre = ActiveWorkbook.Name
Repertoire = ThisWorkbook.Path
'lancement d'une autre occurence
With appExcel
.Workbooks.Open Repertoire & "\" & Titre
.Visible = True
.ActiveWorkbook.RunAutoMacros xlAutoOpen
.DisplayAlerts = False
End With
End Sub
ça fonctionne bien, si je ne travaille pas avec des classeurs contenant les modifs --> RAS, sinon le classeur "modifiant" commence à s'ouvrir, se lance en double ds une autre instance, se ferme sans alertes, et rien n'est modifié dans le classeur qui était ouvert initialement. Celui qui vient de se lancer dans l'autre instance a bien sur installé les modifs qu'il demande, mais c'est une autre instance..... donc pas de pb.
Je dois avouer une simple conséquence : le lancement ds la 2nde instance m'affiche la boite de sélection "Lecture-écriture / Lecture seule", mais ce n'est pas très gênant.
Si mes explications ne sont pas claires, dites-le moi ... et n'hésitez pas non plus à donner votre avis.
Merci encore de votre intérêt,
Cordialement
WS