Ouvrir un fichier déjà ouvert

  • Initiateur de la discussion Initiateur de la discussion BBX
  • 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 !

B

BBX

Guest
Bonjour,

J'ai une macro qui copie des données dans un fichier commun.
Ma macro plante lorsque le fichier commun est déjà ouvert.

Comment puis je récupérer l'info que le fichier est déjà ouvert et shunter la macro pour eviter de la faire planter . Je voudrais également éviter que le message ce fichier est déjà ouvert apparaisse à l'écran.
 
Salut,

Tu peux utiliser cette fonction:

Function FichierOuvert(NomC$) As Boolean
Dim I&
For I = 1 To Application.Workbooks.Count
If UCase(Workbooks(I).Name) = UCase(NomC) Then
FichierOuvert = True
Exit Function
End If
Next I
End Function


If fichierouvert("lenomdetonclasseur.xls") then msgbox "fichier déjà ouvert"


A+++
 
Salut

tu peux tester si le classeur est ouvert par

Sub essai()
Dim Test As Boolean, Classeur_en_Cours
Test = False
For Each Classeur_en_Cours In Application.Workbooks
If Classeur_en_Cours.Name = "nomclasseur" Then Test = True
Next
If Test = False Then
'macro à exécuter si classeur non ouvert
End If
End Sub

pour les messages indésirables

Application.DisplayAlerts = False

supprime les messages de confirmation ou d'information

A+
 
Bonjour
Génial les solutions ci-dessus, je vais en user pour mon compte personnel.
Mais.....

Tu peux, peut être, aussi essayer de partager le dit fichier ?.....
Outil, partage etc.. et t'affranchir ainsi de cette contrainte.
Par contre cela t'en créera d'autres (des contraintes) du fait des limitations de certaines fonctions sur les fichiers partagés
Papyjo
 
Merci pour vos réponses.

Le code que vous m'avez fourni fonctionne si j'ai ouvert le fichier sur mon PC.
Le pb est que c'est d'autres utilisateurs qui ouvrent le fichier de leurs postes qui sont en réseau.

Comment puis-je controler que personnes dans le réseau n'a déjà ouvert le fichier ?
Excel me propose d'ouvrir le fichier en lecture seul, puis je me servir de ce message (sans l'afficher) pour savoir si le fichier est déjà ouvert ou pas ?

Merci de vos réponses.
 
Salut

Je me suis plongé dedans pour mieux te l'expliquer et je me suis aperçu qu'elle ne fonctionne pas pour vérifier l'ouverture par d'autres utilisateurs. Excuse moi de t'avoir induit en erreur, je te cherche une soluce applicable.

A+
 
Salut

J'ai testé le code suivant, il fonctionne, tu n'as plus qu'à le coupler avec un test fichier déja ouvert sur le poste d'origine.
J'ai créé deux fichiers 1 et 2 sur une ressource serveur
j'ai ouvert le fichier2 sur un autre poste
en lançant la macro, je récupére l'info que le fichier2 est déja ouvert ailleurs

Sub essai()

'empéche l'affichage du message ouvrir en lecture seule
Application.DisplayAlerts = False
'ouvre fichier 1
Workbooks.Open Filename:="chemin fichier 1"
'ouvre fichier2
Workbooks.Open Filename:="chemin fichier 2"
If Workbooks("fichier1").ReadOnly Then
MsgBox "fich1 déja ouvert"
End If
If Workbooks("fichier2").ReadOnly Then
MsgBox "fich2 déja ouvert"
End If
End Sub

Cette fois ci, cela devrait être bon

A+
 
- 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

Retour