Merci à tous pour vos réponses.
En fait j'ai mis en place un script de vérification si le fichier est accessible ou pas :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Sub VerifierFichierOuvert()
Dim cheminFichier As String
Dim wb As Workbook
Dim fichierOuvert As Boolean
Dim tentative As Integer
Dim maxTentatives As Integer
' Chemin du fichier partagé sur le réseau
cheminFichier = "\\Serveur\Partage\MonFichier.xlsx"
' Nombre maximum de tentatives
maxTentatives = 5
' Initialisation de la variable de tentative
tentative = 1
' Boucle pour vérifier si le fichier est ouvert
Do While tentative <= maxTentatives
On Error Resume Next
' Essayer d'ouvrir le fichier en mode exclusif
Set wb = Workbooks.Open(Filename:=cheminFichier, ReadOnly:=True, Password:="", WriteResPassword:="", IgnoreReadOnlyRecommended:=True, Notify:=False)
On Error GoTo 0
' Vérifier si le fichier a été ouvert avec succès
If Not wb Is Nothing Then
' Le fichier n'est pas ouvert par une autre personne
fichierOuvert = False
wb.Close SaveChanges:=False
MsgBox "Le fichier n'est pas ouvert par une autre personne.", vbInformation
Exit Do
Else
' Le fichier est probablement ouvert par une autre personne
fichierOuvert = True
MsgBox "Le fichier est ouvert par une autre personne. Tentative " & tentative & " sur " & maxTentatives, vbExclamation
End If
' Attendre un peu avant de réessayer
Application.Wait (Now + TimeValue("0:00:02"))
' Incrémenter le compteur de tentatives
tentative = tentative + 1
Loop
' Si le fichier est toujours ouvert après toutes les tentatives
If fichierOuvert Then
MsgBox "Le fichier est toujours ouvert par une autre personne après " & maxTentatives & " tentatives.", vbCritical
End If
End Sub |
Par contre en gardant cette ligne avec ReadOnly:=True, lorsque en VBA je fais un Wb.Save, cela m'affiche un message de proposition d'enregistrement Windows.
Set wb = Workbooks.Open(Filename:=cheminFichier, ReadOnly:=True, Password:="", WriteResPassword:="", IgnoreReadOnlyRecommended:=True, Notify:=False)
Je n'arrive pas à trouver comment faire pour que l'enregistrement des informations modifiés via mon USERFORM et par mon script VBA enregistre sans intervention utilisateur.
Pour info, j'ai 5 PC qui tape sur mon fichiers. Même 2 PC pose un souci....
Avec avec ReadOnly:=True en False, là pas de souci. Toutefois, j'ai à nouveau mon panneau d'affichage que le fichier n'est pas disponible... et donc pas de vérification si le fichier est dispo...
En fait je cherche une solution temporaire car suis en train de bucher Access...
Partager