Fermeture des fichier

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
j
Le #20567631
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" 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




IMER09
Le #20567751
Merci

"" 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" 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








LE TROLL
Le #20568061
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" 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



michdenis
Le #20568391
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" 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
michdenis
Le #20568591
La section pour fermer tous tes classeurs devraient être
dans une procédure à part que tu pourrais appeler au besoin.
IMER09
Le #20568741
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"
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" 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






IMER09
Le #20568941
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"
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" 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



michdenis
Le #20569031
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é !
IMER09
Le #20569251
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" 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é !





michdenis
Le #20569241
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 !
Publicité
Poster une réponse
Anonyme