Je m'excuse mais je reviens à la charge. J'ai répondu que la solution me satisfaisait mais je suis allé trop vite. En effet, le userName retourné est toujours celui de mon micro et non celui de l'utilisateur qui occupe le fichier. J'ai essayé les différentes solutions de disciplus mais j'obtiens toujours le même résultat. Voici ce que j'ai mis :
Option Explicit
Public utilisateur_en_cours
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Sub Get_User_Name()
Dim lpBuff As String * 25
Dim ret As Long, UserName As String
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Sub
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 CallDemands()
Dim Msg, Style, Title
If IsFileOpen("k:AdressesF 2002.xls") Then
MsgBox "Fichier ouvert par " & username & Chr(13) & "Merci d'essayer plus tard"
Else
Workbooks.Open "k:AdressesF 2002.xls"
End If
End Sub
Je vous remercie
Phil