autre instance et close (suite)
bonjour,
merci tout d'abord pour votre réponse.
Erreur de ma part (dans le message seulement) pour close, je ferme bien le classeur sous son nouveau nom.
Le "set Wk" n'a pas résolu mon pb.
Dans le classeur "A", excel est "transparent" : aucune barre outil, ruban...,
juste des boutons de commandes. Je force donc son ouverture dans un nouvelle instance pour que l'utilisateur puisse travailler sur des classeurs "normaux" (avec ouverture avant ou après "A").
Apparemment, à partir du classeur A:
- si j'ouvre un classeur B sans macro, je peux fermer le B
- si j'ouvre un classeur C avec macros, quand je ferme C, il me ferme A aussi??
pourtant ds C e n'ai aucun événement before close ou activate...
autre instance et close (suite)
Et non le
Code:
If Workbooks.Count = 1 Then Application.Quit
est dans le classeur initial servant juste à ouvrir le classeur A dans une autre instance, donc aucune influence avec l'instance du classeur A
(vérifié avec le gestionnaire des taches)
autre instance et close (suite)
c'est à dire : ??
en pas à pas détaillé ?
si c'est le cas j'ai déjà essayé et tout se ferme sur la ligne " wb.close"
autre instance et close (suite)
Code du classeur "X" servant juste à ouvrir "A" dans une autre instance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Option Explicit
Private Sub Workbook_Open()
ThisWorkbook.Close False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim XlAp As Excel.Application
Dim Ch1$, Fich$
Ch1 = ThisWorkbook.Path & "\MonDossier\"
Fich = "A.xls"
Set XlAp = CreateObject("Excel.Application") 'autre instance
XlAp.Workbooks.Open (Ch1 & "\" & Fich)
XlAp.Visible = True
Set XlAp = Nothing
If Workbooks.Count = 1 Then Application.Quit
End Sub |
A partir de ce classeur A, j'ouvre un classeur "Mod-Fact.xls", le renomme, le sauve :
Code:
1 2 3 4 5 6 7 8
| ChDos = ThisWorkbook.Path & "\Modèle\"
ChFich = "Mod-Fact.xls"
ch2="001"
Ch3 = "Fact-" & Ch2 & ".xls"
Workbooks.Open (ChDos & ChFich)
Workbooks(ChFich).SaveAs ThisWorkbook.Path & "\Fact\" & Ch3 |
C'est quand je cherche à fermer ch3 que tout se ferme (y compris "A")
Code:
Workbooks(Ch3).close
autre instance et close (suite)
Bonjour
Alors là , AlainTech, je ne te suis plus et ton message n'est pas clair !
D'abord je n'ait jamais dis que ce code était dans open du classeur "A"
ensuite mon problème est que le classeur "A" se ferme aussi
et je ne comprends rien à ta réponse!
autre instance et close (suite)
Code:
1 2 3 4 5 6 7 8
| ChDos = ThisWorkbook.Path & "\Modèle\"
ChFich = "Mod-Fact.xls"
ch2="001"
Ch3 = "Fact-" & Ch2 & ".xls"
Workbooks.Open (ChDos & ChFich)
Workbooks(ChFich).SaveAs ThisWorkbook.Path & "\Fact\" & Ch3 |
est dans un bouton de commande d'un USF du classeur "A"
Code:
Workbooks(Ch3).close
est dans un bouton formulaire d'une feuille du classeur "Ch3"
En fait excel plante (j'avais désactivé les messages d'erreurs) et ferme tout sur "Workbooks(Ch3).close"
le message d'erreur est
AppName: excel.exe AppVer: 9.0.0.2719 ModName: mso9.dll
ModVer: 9.0.0.2812 Offset: 000201cd
Moi, ça ne me parle pas du tout!
autre instance et close (suite)
J'ai essayé de remplacer Ch3 par
Code:
workbooks("Fact-001.xls").close
ou par
excel plante toujours
La patience, j'en ai toujours, cela fait 2 jours que je bute sur ce pb!, mais ds le code de alaintech , le close n'est pas dans le bon classeur.
autre instance et close (suite)
J'ai essayé de mettre un wait (3 secondes) avant le close et dès fois ça marche et des fois ça plante.Je crois que je vais tout remettre à plat comme conseillé!
Il y a surement quelque chose qui m'échappe ds la nouvelle instance d'excel
cette nouvelle instance ou j'ouvre "A", puis "Mod-Fact.xls" que je nomme et sauve en "Fact-" & Ch2 & ".xls"="Ch3"
j'ai donc 2 classeurs ds mon instance "privée" et je cherche à revenir sur "A" après avoir fermé ch3.
J'ai essayé de fermer ch3 à partir de lui ou de "A", les 2 font planter excel.
Le "application.quit" ferme tous les classeurs de l'instance dont ils dépendent,
les classeurs ouverts ds une autre instance ne seront pas concerné ?
Est-ce correct?