tester si un fichier est ouvert

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

A

Angelo

Guest
Bonjour à tous
alors voila je fais une application sur excel.
Au départ je voulais faire un seul fichier xls (on va l'appelé fichier1 pour la compréhension) mais le problème est que plusieurs personnes devront utilisé et modifier le contenu du fichier1
et donc il risque d'avoir une perte de temps assez importante car un fois le fichier ouvert les autres utlisateurs ne pourrons utilisé ce fichier qu'en lecture seul
Alors j'ai eu l'idée de dupliqué le fichier1 pour obtenir un traitement de ce style :
si le fichier1 n'est pas utilisé -> utilisé le fichier1
sinon testé le fichier2
si le fichier2 n'est pas ouvert ->utilisé le fichier2
sinon testé le fichier3
si le fichier3 n'est pas ouvert ->utilisé le fichier3
sinon indiqué à l'utilisateur de réessayé plus tard


Comment pourais je faire le teste pour savoir si un fichier est déja ouvert? ou y a t'il un autre moyen ?
 
Bonjour

Une petite idée comme cela en passant

Tu peux tester si le fichier est ouvert ou non en lecture seule de la façon suivante

If ActiveWorkbook.ReadOnly = True Then MsgBox('le fichier est ouvert en lecture seule')

et donc si c'est le cas tu passes alors au fichier 2

ai-je bien compris ton problème ?

A+
 
pas tout à fait je veux que les utilisateurs puissent modifié le contenu des fichiers donc si un fichier est déjà ouvert il faut pas que l'utilisateur y accède (même pas en lecture seul ) par contre un autre fichier s'ouvrira à la place du premier fichier
tu comprend ?
 
je met un petit bout de code pour mieu comprendre vers ou je veux aller

Private Function EstDansCollection(Coln As Object, Item As String) As Boolean
Dim obj As Object
On Error Resume Next
Set obj = Coln(Item)
EstDansCollection = Not obj Is Nothing
End Function

Sub fichier_ouvert()
Dim Reponse
If EstDansCollection(Workbooks, 'Mensuel.xls') = True Then 'si Mensuel déja ouvert
MsgBox ('mensuel ouvert')
Workbooks.Open ('Mensuel2.xls')

Exit Sub
End If

If EstDansCollection(Workbooks, 'Mensuel2.xls') = True Then 'si mensuel2 déjà ouvert
MsgBox ('mensuel2 ouvert')
Workbooks.Open ('Mensuel3.xls')

Exit Sub

End If
If EstDansCollection(Workbooks, 'Mensuel3.xls') = True Then 'si mensuel3 déjà ouvert
MsgBox ('mensuel3 ouvert')
MsgBox ('tout les fichiers sont ouvert')
End If
Exit Sub

End Sub
 
Angelo, c'est bien ce que j'avais compris
Mais pour savoir si il faudra mettre à la disposition d'un utilisateur le fichier 2 parceque le fichier 1 est déjà utilisé par un autre (donc est en lecture seule pour le 2 ème utilisateur) il te faut faire un test
Et c'est ce test que je te proposais, à toi maintenant d'analyser la variable booléenne (True ou False) pour ouvrir ou non le fichier 2

C'est à dire
Si ActiveWorkBook.ReadOnly est à True alors je mets à la disposition de l'utilisateur le fichier 2
Si ActiveWorkBook.ReadOnly (du fichier 2) est à True alors je lui donne le fichier 3

Voila quelle était mon idée

A approfondir

Bon courage


Oups nous nous sommes croisés
Ce que je viens de lire va dans le même sens que mon explication ci-dessus
Certes maintenant il faut écrire une procédure qui fonctionnera
Je n'ai pas le temps d'approfondir cette question maintenant, si ce soir tu n'as aucune réponse engageante je reverrai le problème de plus près

Message édité par: Jacques87, à: 22/02/2006 17:00
 
Bonjour jacques87, angelo et le forum

Il y a quelque chose qui m'échappe si j'ai bien tout compris.
Il va y avoir un fichier dubliqué trois fois ou plus, comme ça vous pouvez être trois à travailler dessus et le modifier, donc à la fin de la journée il va y avoir trois fichiers différent puisque modifié par trois personnes différentes et donc des données différentes, il faudra un regroupement de donnée par la suite!!!

A bientôt
Manu
 
Bonjour Jacques87, Manu13 et le forum
effectivement je prévois de regrouper les informations dans un 4ieme fichier (récapitulatif)
Cela n'est pas compliqué à faire puisqu'il suffit de lier les différents entre eux
 
- 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
3
Affichages
393
W
Retour