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

Fermeture des fichier

19 réponses
Avatar
IMER09
Bonjour a tous

Je voudrai a l'ouverture d'un fichier A
fermer tout les fichiers ouvert (si il y en a) tout en laissant le fichier A
ouvert.
De meme je voudrai empecher l'ouverture d'un autre fichier tant que le
fichier A est ouvert est ce possible?

Rémi

10 réponses

1 2
Avatar
j
avec une macro workbook_open :

Private Sub Workbook_Open()
For Each wbks In Workbooks
If wbks.Name <> ThisWorkbook.Name Then wbks.Close (True)
Next
End Sub

quant à empecher l'ouverture d'un autre fichier, ça semble moins évident
(sauf à déclencher la macro toutes les secondes par ex)


http://jacxl.free.fr



"IMER09" a écrit dans le message de
news: #
Bonjour a tous

Je voudrai a l'ouverture d'un fichier A
fermer tout les fichiers ouvert (si il y en a) tout en laissant le fichier


A
ouvert.
De meme je voudrai empecher l'ouverture d'un autre fichier tant que le
fichier A est ouvert est ce possible?

Rémi




Avatar
IMER09
Merci

"" a écrit dans le message de news:
eJG$
avec une macro workbook_open :

Private Sub Workbook_Open()
For Each wbks In Workbooks
If wbks.Name <> ThisWorkbook.Name Then wbks.Close (True)
Next
End Sub

quant à empecher l'ouverture d'un autre fichier, ça semble moins évident
(sauf à déclencher la macro toutes les secondes par ex)


http://jacxl.free.fr



"IMER09" a écrit dans le message de
news: #
Bonjour a tous

Je voudrai a l'ouverture d'un fichier A
fermer tout les fichiers ouvert (si il y en a) tout en laissant le
fichier


A
ouvert.
De meme je voudrai empecher l'ouverture d'un autre fichier tant que le
fichier A est ouvert est ce possible?

Rémi








Avatar
LE TROLL
Bonsoir

sub x()
dim Aouvert as boolean
Reset ' ferme tout
openA...
Aouvert=true
...
close A
Aouvert = false
end sub

......

sub y()
if Aouvert then exit sub ' tant que A open = rejet autre ouvertures
open file B, C...
end sub


Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"IMER09" a écrit dans le message de
news:%
Bonjour a tous

Je voudrai a l'ouverture d'un fichier A
fermer tout les fichiers ouvert (si il y en a) tout en laissant le fichier
A ouvert.
De meme je voudrai empecher l'ouverture d'un autre fichier tant que le
fichier A est ouvert est ce possible?

Rémi



Avatar
michdenis
Bonjour,

Pour faire ce que tu demandes, tu dois utiliser un "module de classe"

Dans la fenêtre de l'éditeur de code, insère un module de classe
tu baptises ce module de classe (propriété Name) : MonApp
Dans ce module, tu ajoutes le code suivant :

Tu remplaces : "NomDuFichierD" par le nom dudit fichier

'-------------------------------------
Public WithEvents AppExcel As Application
'---------------------------
Private Sub AppExcel_WorkbookOpen(ByVal Wb As Workbook)
If Ucase(Wb.Name) = Ucase("NomDuFichierD") Then
Wb.Close False
End If
End Sub
'---------------------------

Dans un module Standard -> tu en ajoutes un si tu n'en as pas déjà un
tu inscris le code suivant :
'---------------------------
Sub Instantier_Le_Module_Classe()
Dim Appt As New MonApp
Set Appt.AppExcel = Application
End Sub
'---------------------------


Et dans le ThisWorkbook de ton classeur, le code suivant :
'---------------------------------
Private Sub Workbook_Open()

Dim Wk As Workbook
For Each Wk In ThisWorkbook
If Wk <> ThisWorkbook.Name Then
Wk.Close False
End If
Next
Instantier_Le_Module_Classe

End Sub
'---------------------------------





"IMER09" a écrit dans le message de groupe de
discussion : #
Bonjour a tous

Je voudrai a l'ouverture d'un fichier A
fermer tout les fichiers ouvert (si il y en a) tout en laissant le fichier A
ouvert.
De meme je voudrai empecher l'ouverture d'un autre fichier tant que le
fichier A est ouvert est ce possible?

Rémi
Avatar
michdenis
La section pour fermer tous tes classeurs devraient être
dans une procédure à part que tu pourrais appeler au besoin.
Avatar
IMER09
Merci LE TROLL
Est ce que je peu mettre le code x dans ThisWorkbook
Je suis un peu perdu je ne suis pas un crac en excel je suis plutot un
bidouilleur ou plutot un copieur/colleur de code

Pour ce qui est du code y je n'est pas de procedure qui ouvre d'autre
fichier
je voudrai simplement empecher l'utilisateur d'ouvrir un autre fichier excel
si le fichier A est ouvert

Merci


"LE TROLL" <le a écrit dans le message de news:

Bonsoir

sub x()
dim Aouvert as boolean
Reset ' ferme tout
openA...
Aouvert=true
...
close A
Aouvert = false
end sub

......

sub y()
if Aouvert then exit sub ' tant que A open = rejet autre ouvertures
open file B, C...
end sub


Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"IMER09" a écrit dans le message de
news:%
Bonjour a tous

Je voudrai a l'ouverture d'un fichier A
fermer tout les fichiers ouvert (si il y en a) tout en laissant le
fichier A ouvert.
De meme je voudrai empecher l'ouverture d'un autre fichier tant que le
fichier A est ouvert est ce possible?

Rémi






Avatar
IMER09
Merci michdenis

J' ai essaye d' utiliser ce que tu m'a posté mais je bog "Propriete ou
methode non gerée par cette objet"
"For Each Wk In ThisWorkbook" en jaune
J'ai du mal a decripter le code que tu m'as fourni, je n'ai jamais utilisé
un module de classe (c'est la premiere fois)
c'est quoi la diff avec un module Standart
Public WithEvents AppExcel As Application
Private Sub AppExcel_WorkbookOpen(ByVal Wb As Workbook)
..........
End Sub
Je met tout ca dans module de classe MonApp !

Pour le module standart j' en ai deja 1 avec une fonction est ce genant?

Desolé pour l'incompetence
Merci

"michdenis" a écrit dans le message de news:

Bonjour,

Pour faire ce que tu demandes, tu dois utiliser un "module de classe"

Dans la fenêtre de l'éditeur de code, insère un module de classe
tu baptises ce module de classe (propriété Name) : MonApp
Dans ce module, tu ajoutes le code suivant :

Tu remplaces : "NomDuFichierD" par le nom dudit fichier

'-------------------------------------
Public WithEvents AppExcel As Application
'---------------------------
Private Sub AppExcel_WorkbookOpen(ByVal Wb As Workbook)
If Ucase(Wb.Name) = Ucase("NomDuFichierD") Then
Wb.Close False
End If
End Sub
'---------------------------

Dans un module Standard -> tu en ajoutes un si tu n'en as pas déjà un
tu inscris le code suivant :
'---------------------------
Sub Instantier_Le_Module_Classe()
Dim Appt As New MonApp
Set Appt.AppExcel = Application
End Sub
'---------------------------


Et dans le ThisWorkbook de ton classeur, le code suivant :
'---------------------------------
Private Sub Workbook_Open()

Dim Wk As Workbook
For Each Wk In ThisWorkbook
If Wk <> ThisWorkbook.Name Then
Wk.Close False
End If
Next
Instantier_Le_Module_Classe

End Sub
'---------------------------------





"IMER09" a écrit dans le message de
groupe de
discussion : #
Bonjour a tous

Je voudrai a l'ouverture d'un fichier A
fermer tout les fichiers ouvert (si il y en a) tout en laissant le fichier
A
ouvert.
De meme je voudrai empecher l'ouverture d'un autre fichier tant que le
fichier A est ouvert est ce possible?

Rémi



Avatar
michdenis
Voir fichier exemple :

http://cjoint.com/?lqxkmJ7ATy

| For Each Wk In ThisWorkbook

Cette ligne aurait dû être :
For each Wk in Application.Workbooks

Désolé !
Avatar
IMER09
Merci michdenis
Ton "Désolé" me géne, mais c' est quand meme vachement agreable d'avoir a sa
disposition des gens super competant et en plus courtois

J'ai COLLER la macro de ton bouton dans Thisworbook et les fichiers se
ferment, c'est nikel et bien expliqué,
Et comme tu me la proposé plus haut j'appelle cette meme procedure, que j'ai
en plus dans un module, pour verifier regulierement que seul le fichier A
est ouvert

Merci encore

Rémi


"michdenis" a écrit dans le message de news:
e%
Voir fichier exemple :

http://cjoint.com/?lqxkmJ7ATy

| For Each Wk In ThisWorkbook

Cette ligne aurait dû être :
For each Wk in Application.Workbooks

Désolé !





Avatar
michdenis
Le module de classe si tu l'intègre à ton fichier permet
de fermer le fichier si un usager tente de l'ouvrir... pour
ce faire, tu dois renseigner dans la procédure du module
de classe le nom du fichier dont tu veux empêcher de
s'ouvrir !
1 2