XL 2010 vba fichier ouvert et users ?

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

kif

XLDnaute Occasionnel
Bonjour la team

je bute sur ce code,

je cherche à vérifier si le fichier est ouvert et par qui, je souhaite donc :

1 - créer un fichier texte temporaire à la racine de ce fichier (status.txt) à l'ouverture
2 - inscrire le user ou lire dedans
3 - inscrire dans un MSG box les infos via les valeurs inscrites dans les cases X2 Y3 de l'onglet "Acc"
4 - supprimer à la fermeture du fichier le fichier temporaire status.txt

j'ai mis en gras ou ça coince





les deux sub :


Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not ThisWorkbook.ReadOnly Then Kill "ThisWorkbook.Path\status.txt" ' supp du fichier
End Sub




Private Sub Workbook_Open()

Dim numfich As Integer
Dim us As String

'creation du fichier vide = status.txt dans ThisWorkbook.Path ?

If Dir("ThisWorkbook.Path\status.txt") = "" Then
numfich = FreeFile
Open "ThisWorkbook.Path\status.txt" For Output As #numfich
Print #numfich, Application.UserName & " le " & Now() ' pose du fichier
Close #numfich
Else
numfich = FreeFile
Open "ThisWorkbook.Path\status.txt" For Input As #numfich
Input #numfich, us
Close #numfich
MsgBox "Fichier en lecture seule !" & vbLf & "Utilisé par " & Application.IfError(Application.VLookup(us, Sheets("Acc").Range("X2:Y3"), 2, False), us) ' info
End If
End Sub


Merci d'avance de votre support
 
Dernière édition:
Bonjour Kif,
ThisWorkbook.Path est un chemin pas une chaine donc doit être en dehors des guillemets. Par contre Status.txt doit y être.
il est plus simple de passer par une variable : Fichier = ThisWorkbook.Path & "\ Status.txt"
Testez :
VB:
Private Sub Workbook_Open()
Dim numfich As Integer
Dim us As String, Fichier$
'creation du fichier vide = status.txt dans ThisWorkbook.Path ?
Fichier = ThisWorkbook.Path & "\ Status.txt"
If Dir(Fichier) = "" Then
    numfich = FreeFile
    Open Fichier For Output As #numfich
    Print #numfich, Application.UserName & " le " & Now() ' pose du fichier
    Close #numfich
Else
    numfich = FreeFile
    Open Fichier For Input As #numfich
    Input #numfich, us
    Close #numfich
    MsgBox "Fichier en lecture seule !" & vbLf & "Utilisé par " & Application.IfError(Application.VLookup(us, Sheets("Acc").Range("X2:Y3"), 2, False), us) ' info
End If
End Sub
 
- 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

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
78
Réponses
2
Affichages
300
Réponses
15
Affichages
705
Retour