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

Gestion multi utilisateurs

2 réponses
Avatar
Yo
Bonjour,

Voici mon probleme:

Chaque utilisateur possede un fichier test.xls et chacun de ces
fichiers doit acceder a un seul et unique fichier nomm=E9 essai.xls.
Un seul utilisateur doit pouvoir l'ouvrir et les autres doivent etre en
attente si le fichier est ouvert.

Voici mon code:

Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next
filenum =3D FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum =3D Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen =3D False
Case 70
IsFileOpen =3D True
Case Else
Error errnum
End Select
End Function

Sub Ouvrir()
While IsFileOpen("E:\essai.xls")
ActiveSheet.Label2.Visible =3D True
Wend
ActiveSheet.Label2.Visible =3D False
Workbooks.Open "E:\essai.xls"
End Sub

mon code fonctionne bien s'il n'y a que 2 utilisateurs, mais s'il y en
a 3, un utilisateur arrive a ouvrir le fichier et un autre l'ouvre
aussi mais en lecture seule, je souhaiterais que cet utilisateur soit
en attente, qu'il n'ouvre pas le fichier en lecture seule.

Quelqu'un aurait il une suggestion ?

Merci.

Cordialement.

2 réponses

Avatar
Yo
Personne ne peut m'aider ? :(





Bonjour,

Voici mon probleme:

Chaque utilisateur possede un fichier test.xls et chacun de ces
fichiers doit acceder a un seul et unique fichier nommé essai.xls.
Un seul utilisateur doit pouvoir l'ouvrir et les autres doivent etre en
attente si le fichier est ouvert.

Voici mon code:

Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function

Sub Ouvrir()
While IsFileOpen("E:essai.xls")
ActiveSheet.Label2.Visible = True
Wend
ActiveSheet.Label2.Visible = False
Workbooks.Open "E:essai.xls"
End Sub

mon code fonctionne bien s'il n'y a que 2 utilisateurs, mais s'il y en
a 3, un utilisateur arrive a ouvrir le fichier et un autre l'ouvre
aussi mais en lecture seule, je souhaiterais que cet utilisateur soit
en attente, qu'il n'ouvre pas le fichier en lecture seule.

Quelqu'un aurait il une suggestion ?

Merci.

Cordialement.


Avatar
JFrancois QC
Bonjour Yo,
Dans les applications multi usagers que j'ai développé j'utilise des
fichiers « flag»
qui m'indiquent si les fichiers son occupé et par qui:
Lorsque qu'on veut ouvrir un fichier
1- vérifie la présence du fichier flag ex: le flag de tot.o.xls est toto.occ
résidant dans le même dossier.

si toto.occ - un fichier texte - est présent je prend connaisance de son
contenu et j'avise l'usager refoulé avec un msgbox.

sinon je crée le flag toto.occ et ouvre le document toto.xls

2-à la fermeture de toto.xls on n'oublie pas de supprimer le flag

Espérant que ça puisse t'aider
p.s. une des applications fonctionnant ainsi le fait depuis une dizaine
d'année


Bonjour,

Voici mon probleme:

Chaque utilisateur possede un fichier test.xls et chacun de ces
fichiers doit acceder a un seul et unique fichier nommé essai.xls.
Un seul utilisateur doit pouvoir l'ouvrir et les autres doivent etre en
attente si le fichier est ouvert.

Voici mon code:

Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function

Sub Ouvrir()
While IsFileOpen("E:essai.xls")
ActiveSheet.Label2.Visible = True
Wend
ActiveSheet.Label2.Visible = False
Workbooks.Open "E:essai.xls"
End Sub

mon code fonctionne bien s'il n'y a que 2 utilisateurs, mais s'il y en
a 3, un utilisateur arrive a ouvrir le fichier et un autre l'ouvre
aussi mais en lecture seule, je souhaiterais que cet utilisateur soit
en attente, qu'il n'ouvre pas le fichier en lecture seule.

Quelqu'un aurait il une suggestion ?

Merci.

Cordialement.