Message qui averti qu'une personne est sur un fichier

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

jpmasclet

XLDnaute Occasionnel
Bonjour a tous,

Alors j'ai crée un fichier tout simple qui permet d'enregister des infos du classeur A au classeur B.

J'ai mis un systeme qui vérifie si le classeur B est deja ouvert ou non et cela fonctionne bien.

Je souhaiterai également savoir et l'inclure dans ma msgbox le nom de l'utilisateur qui est sur le fichier et son heure et date d'arrivé dessus (optionnel ses deux points la)

Cela existe t'il ?
 
Re : Message qui averti qu'une personne est sur un fichier

Voici le code qui me permet de savoir si le fichier est ouvert ou non si cela peut aider a comprendre mon fichier.

Code:
Public Function FichierOuvert(strFichier As String) As Boolean
    Dim intNumFichier As Integer
    Dim intNumErreur As Integer
    
    On Error Resume Next
    intNumFichier = FreeFile()
    
    Open strFichier For Input Lock Read As #intNumFichier
    Close intNumFichier
    intNumErreur = Err
    
    On Error GoTo 0
    Select Case intNumErreur
        Case 0
            FichierOuvert = False
        Case 70
            FichierOuvert = True
        Case Else
            Error intNumErreur
    End Select
End Function

Merci
 
Re : Message qui averti qu'une personne est sur un fichier

Bonjour,

Il existe une autre instruction que bhbh🙂 se fera un plaisir😉 de vous donner lorsqu'il passera par là. (Je ne m'en souviens plus)
Cependant, dans ce cas l'utilisation de application.username ne peut pas fonctionner simplement... En effet, il faut stocker le nom de l'utilisateur actuel dans le fichier d'origine par une sauvegarde à l'ouverture par le 1er utilisateur et récupérer cette information lors de l'ouverture par un second.
Sinon c'est bien entendu celui qui ouvre en dernier le fichier qui a son nom d'affiché...

Cordialement
 
Re : Message qui averti qu'une personne est sur un fichier

Merci pour vos réponses,
Malheursement application.username ne fonctionne pas car le fichier en faite ne s'ouvre pas si quelqu'un est dessus conformement à mon code.

Je ne vois pas comment faire un username car lorsque je le fais cela me dit que je suis moi dessus (l'utilisateur du classeur A, alors que je veux le username de la personne du classuer B)...

Vous voyez ce que je veux dire ?

Merci
 
Re : Message qui averti qu'une personne est sur un fichier

Bonjour,
Je ne vois pas comment faire un username car lorsque je le fais cela me dit que je suis moi dessus (l'utilisateur du classeur A, alors que je veux le username de la personne du classuer B)...

Est-ce qu'à l'ouverture de B tu ne peux pas stocker le username dans un classeur de log B2 (avec date & heure à laquelle B a été ouvert) ?
Et quand tu vois que B Est déjà ouvert, tu lis cela dans B2 🙂

A plus,
 
Re : Message qui averti qu'une personne est sur un fichier

Non je n'ai pas le message d'erreur car je teste d'abord si le fichier est ouvert avant le lancement de la macro, si le classeur est fermé la macro se lance avec les copies d'infos, et si il est fermé ça me renvoit un msgbox.

Neanmois il est vrai que je veux reproduire ce message mais sans que le fichier ne s'ouvre en lecture seule en gros.
 
Re : Message qui averti qu'une personne est sur un fichier

Bonjour à tous,

J'ai fouillé un peu partout et je n'ai pas trouvé de réponses. Le mieux est sans doute de créer un fichier texte à chaque ouverture du fichier et d'y stocker le nom d'utilisateur, la date et l'heure d'ouverture.
Donc si ton fichier est déjà ouvert, tu pourra lire dans le fichier texte qui l'a ouvert et à quelle date et heure... Bon le problème est que si plusieurs personnes l'ouvrent, tu n'aura que le nom du dernier...
 
Re : Message qui averti qu'une personne est sur un fichier

Bon j'ai bien peur que cela ne soit pas possible, j'avais pensé à la solution TXT mais je voudrais dans ce cas aller chercher la derniere ligne du txt afin de l'inclure dans mon msgbox, vous pensez que c'est possible cette alternative ?
 
Re : Message qui averti qu'une personne est sur un fichier

Bon j'ai bien peur que cela ne soit pas possible, j'avais pensé à la solution TXT mais je voudrais dans ce cas aller chercher la derniere ligne du txt afin de l'inclure dans mon msgbox, vous pensez que c'est possible cette alternative ?

Pourquoi pas un classeur avec une ligne par ouverture et tu lis la dernière ?
 
Re : Message qui averti qu'une personne est sur un fichier

Une solution pour lire la dernière entrée du fichier texte :
pas sûr que ce soit optimisé ou la meilleure solution...

Code:
Sub essai()
    Dim fs, f
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile("y:\test.txt")
    On Error GoTo Err1
    Do
    aa = f.readline
    Loop
Err1:
    MsgBox aa
    f.Close
End Sub
 
Re : Message qui averti qu'une personne est sur un fichier

Re,
Bonjour aux nouveaux,

Comme suggéré plus haut tu inscrits à l'ouverture le nom de l'utilisateur dans une feuille cachée du fichier. Lorsque tu veux l'ouvrir ton code t'indique qu'il est déjà ouvert et ne l'ouvre pas, mais rien ne t'empêche de procéder à une récupération de la valeur inscrite précédemment en réalisant une extraction fichier fermée. que tu cases dans ton code à cet endroit :
Code:
Case 70
      FichierOuvert = True
Comme ça tu peux récupérer via msgBox le nom de l'utilisateur et le seul...

Cordialement
 
- 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

A
Réponses
11
Affichages
2 K
A
S
Réponses
1
Affichages
1 K
S
S
Réponses
13
Affichages
2 K
Stedemart
S
Retour