empecher d'ouvrir ou activer un nouveau fichier

  • Initiateur de la discussion Initiateur de la discussion remes
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

remes

Guest
Bonjour à tous,
Je voudrai savoir si il est possible de faire en sorte que lorsque mon fichier nommé LISTE est ouvert, il soit impossible d'ouvrir un autre fichier excel ou d'activer un autre fichier excel déjà ouvert et qu'une message box dise: avant de travailler sur un autre fichier, veuillez d'abord fermer LISTE. Si on peu pas empécher l'ouverture d'un nouveau fichier, au moins avoir un message qui indique qu'il faut fermer le fichier LISTE avant de travailler sur un autre fichier.
D'avance merci.
 
Re : empecher d'ouvrir ou activer un nouveau fichier

Bonjour ,

Pour le message lors du lancement de Liste pas de problème si le classeur est dans la même instance Excel.
Pour empêcher de lancer l'autre fichier, hormis modifier tous les fichiers (lol, j'y crois pas trop ), je ne pense pas que ce soit possible en vba depuis liste.
Pour le message, il faut voir, mais en imaginant une procédure qui scannerait les fichiers ouverts, si l'on constate que l'un d'entre eux est un Excel alors hop , on envoi le message.

Ton fichier liste est ouvert parce qu'une macro tourne ou pour l'avoir sous la main rapidement ?
 
Re : empecher d'ouvrir ou activer un nouveau fichier

Bonjour Remes, camarchepas

essaye peut être comme ceci, codes à placer dans ton classeur "liste" :

dans un module standard :
Code:
Option Explicit
Public e As New Classe1

dans le module "thisworkbook" :
Code:
Option Explicit
Private Sub Workbook_Open()
Set e.MonExcel = Application
End Sub

dans un module de classe nommé "Classe1" :
Code:
Option Explicit
Public WithEvents MonExcel As Application
Private Sub MonExcel_WorkbookActivate(ByVal Wb As Workbook)
If Wb.Name <> "LISTE.xls" Then
    MsgBox "interdit"
    Workbooks("LISTE.xls").Activate
End If
End Sub
Private Sub MonExcel_WorkbookOpen(ByVal Wb As Workbook)
If Wb.Name <> "LISTE.xls" Then Wb.Close
'ou bien plus simplement
'wb.Close
End Sub

bon après midi
@+
 
Dernière édition:
Re : empecher d'ouvrir ou activer un nouveau fichier

Bonjour Pierrot,

J'ai essayé , mais rien ne ce passe, je suis sous Excel 2003, aussi bien dans la même instance que pour une nouvelle instance. par le moindre signe ?
J'ai peut être oublié un truc.
Voici le fichier d'essai :
 

Pièces jointes

Re : empecher d'ouvrir ou activer un nouveau fichier

camarchepas, ca marche chez moi sous 2003

j'avais édité cette partie...
Code:
Private Sub MonExcel_WorkbookOpen(ByVal Wb As Workbook)
If Wb.Name <> "LISTE.xls" Then Wb.Close
'ou bien plus simplement
'wb.Close
End Sub
 
Re : empecher d'ouvrir ou activer un nouveau fichier

Bonjour camarchepas voici en fait la base de cette discution qui a fait naitre cette question merci à toi.
https://www.excel-downloads.com/threads/thisworkbook-close.143268/
PIerrot93 peux tu me dire ce qu'est un module standard et un module de classe merci.
Mon niveau est faible en VBA mais je me débrouille en bricolage et souvent grace à vos conseil je solutionne merci.
 
Re : empecher d'ouvrir ou activer un nouveau fichier

Un module est un fichier de déclaration de fonction et de variables Public ou globale au classeur.

Un module de classe est un objet de données.
Il possède un constructeur (Initialize) et un Destructeur (Terminate)
Tu peux déclarer plusieurs variable de différents type. Et même d'autres object.
Il est à la base de ce qu'on appel Programmation Orienté Objet.

Exemple simple:
Généralement, un vecteur de donnée bien qu'il possède 2 dimensions ne peut gérer qu'un seul type de données.

dim v() as string ou dim v(0) as double

Par contre, les possibilité deviennent infini avec un objet de donné

dans Classe test
dim nom as string
dim numero as long

dim v() as test

ensuite tu fait v(i).nom ou v(i).numero pour accéder à tes données.
 
Re : empecher d'ouvrir ou activer un nouveau fichier

Précision,

Merci pour cette démonstration du jamais impossible ,

Alors effectivement pour le cas d'une ouverture d'un fichier contenant une macro alors que Liste est ouvert ça fonctionne bien, par contre lorsqu'on lance Liste et qu'un fichier Excel est ouvert il scratch directement le fichier 'Aprés 2 heures de saisie pas cool quand même. par contre je ne vois jamais le message interdit dans quel cas l'affiches -tu ?

Ps : a oui , sur ouverture d'un excel sans macro rien ne se passe
 
Re : empecher d'ouvrir ou activer un nouveau fichier

Re,

le message est affiché lors de l'activation d'un autre classeur... pas lors de l'ouverture, mais chaacvun peut adaapter comme il le veut.... bien évidement il faut autoriser les macros dans le classeur "liste"....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
24
Affichages
4 K
Réponses
4
Affichages
2 K
Compte Supprimé 979
C
Retour