Microsoft 365 Deja ouvert , sur sharepoint

pbblois

XLDnaute Nouveau
Bonjour a tous ,
je cherche le moyen d'indiquer a l'utilisateur que le fichier excel qu'il vient d'ouvrir est deja ouvert par une autre personne .
Ce fichier excel est sur un sharepoint , et parfois mappé sur le pc des utilisateurs et donc visible dans le file explorer .
Par avance merci
 

kiki29

XLDnaute Barbatruc
Salut, à adapter à ton contexte
VB:
Option Explicit

Sub Tst()
Dim sChemin As String
    sChemin = ThisWorkbook.Path
    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = sChemin & "\"
        .Title = "Sélectionner le Fichier"
        .AllowMultiSelect = False
        .InitialView = msoFileDialogViewDetails
        .ButtonName = "Sélection Fichier"
        .Show
        If .SelectedItems.Count > 0 Then
            DoEvents
            TestIsFileOpen .SelectedItems(1)
        End If
    End With
End Sub

Private Sub TestIsFileOpen(sFichier As String) 
    If IsFileOpen(sFichier) Then
        MsgBox "File already in use!"
    Else
        MsgBox "File not in use!"
        'Workbooks.Open sFichier
    End If
End Sub

Private Function IsFileOpen(filename As String) As Boolean
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

' Brutal .....
Private Function IsFileOpenLight(filename As String) As Boolean
Dim fichier As Integer
    On Error Resume Next

    fichier = FreeFile()
    Open filename For Input Access Read Lock Read Write As fichier

    If Err.Number = 0 Then
        IsFileOpenLight = False
        Close fichier
    Else
        IsFileOpenLight = True
    End If
End Function
 
Dernière édition:

pbblois

XLDnaute Nouveau
Salut, à adapter à ton contexte
VB:
Option Explicit

Sub Tst()
Dim sChemin As String
    sChemin = ThisWorkbook.Path
    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = sChemin & "\"
        .Title = "Sélectionner le Fichier"
        .AllowMultiSelect = False
        .InitialView = msoFileDialogViewDetails
        .ButtonName = "Sélection Fichier"
        .Show
        If .SelectedItems.Count > 0 Then
            DoEvents
            TestIsFileOpen .SelectedItems(1)
        End If
    End With
End Sub

Private Sub TestIsFileOpen(sFichier As String)
    If IsFileOpen(sFichier) Then
        MsgBox "File already in use!"
    Else
        MsgBox "File not in use!"
        Workbooks.Open sFichier
    End If
End Sub

Private 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

Private Function IsFileOpenLight(filename As String) As Boolean
Dim fichier As Integer
    On Error Resume Next

    fichier = FreeFile()
    Open filename For Input Access Read Lock Read Write As fichier

    If Err.Number = 0 Then
        IsFileOpenLight = False
        Close fichier
    Else
        IsFileOpenLight = True
    End If
End Function


Presque Super :)
Comment je peux faire pour ne pas a avoir a selectioner un fichier ? que cela controle toujours le meme fichier ? en l'occurence , celui avec ce bout de code.
 

pbblois

XLDnaute Nouveau
Bonjour
Ok merci
j'ai mis cela :
1594287367397.png


Mais cela me demande toujours de choisir le fichier !!!

1594287591023.png

et comme le code est dans ce meme fichier , cela me dit toujours que le fichier est ouvert !!!!
 

Discussions similaires

Réponses
5
Affichages
516

Statistiques des forums

Discussions
314 713
Messages
2 112 133
Membres
111 434
dernier inscrit
dellidjk