nom utilisateur

P

phil

Guest
Bonjour

Je travaille en réseau. Certains fichiers ne peuvent être partagés. J'aimerais connaitre le nom de l'utilisateur qui occupe le fichier sachant que j'arrive sur le fichier par un bouton et que le message "Fichier en cours d'utilisation, le fichier.xls est vérrouillé pour modif par xx" qui s'affiche lorsque l'on ouvre un fichier par Fichier Ouvrir ne fonctionne pas dans ce cas là. J'ai essayé avec Application.UserName mais il affiche mon nom et non pas celui de la personne xx qui l'occupe. Comment puis je faire SVP pour avoir la personne xx ?

Je vous remercie

Phil
 
P

phil

Guest
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
 
@

@+Thierry

Guest
Re Salut Phil

Ah oui c'est normal que ce code retourne l'ID du user du post sur lequel tu le lances...

Tu as brulé (ou grillé !! lol) une étape

J'ai essayé de t'expliquer "on peut faire écrire le nom du user sur un classeur du réseau qui servirait de registre d'utilisation de fichier......on peut faire écrire le nom du user sur un classeur du réseau qui servirait de registre d'utilisation de fichier" sans cette étape tu ne pourras pas récupérer le nom du User distant qui utilise le fichier.

Exemple :
Le ClasseurX = Ce fameux fichier que l'on doit utiliser à plusieurs
Le UserTracker = Ce fichier de Registre dans le réseau

Dans le ThisWorkBook ClasseurX WorkBook_Open
Tu vas ouvrir le UserTracker et tu écris le nom du User en cours (en utilisant donc "Get_User_Name"... dans la même macro tu sauves et tu fermes UserTracker.

Sub CallDemands()
Dim Msg, Style, Title
If IsFileOpen("k:AdressesF 2002.xls") Then
==> Tu ouvres UserTracker et tu récupère le username dans une variable "Toto"
MsgBox "Fichier ouvert par " & Toto & Chr(13) & "Merci d'essayer plus tard"
==> Tu fermes UserTracker
Else
Workbooks.Open "k:AdressesF 2002.xls"
End If
End Sub

Voilà sorry pour les codes mais je dois quitter le bureau et je n'ai pas le temps de te les écrire. Mais ce ne sont pas des macros difficiles maintenant que tu devrait compre le concept.

Bonne Soirée
@+Thierry
 
P

phil

Guest
Salut Thierry

Je te remercie infiniment car enfin çà marche. C'est vrai que je n'avais pas pensé à créer un fichier UserTracker à l'ouverture du classeur X.
Je me demande comment vous faites tous pour connaitre tous ces trucs car l'aide Vba est vraiment pauvre par rapport à toutes les solutions proposées sur ce forum. Y a t'il un bouquin que tu recommanderais qui ne soit pas trop compliqué pour quelqu'un qui n'est pas informaticien. Tu es informaticien ?

Bonne journée

Phil
 
@

@+Thierry

Guest
Ingénieur Informaticien !!! (Michel)

Bonjour Phil et bonjour à tous et toutes

Pas vraiment informaticien... Tiens écoute ceci =>> Ce site n'existe plus (lol)

Si vous aimez, c'est ici le site de Ce site n'existe plus

Non je ne suis pas ingénieur informaticien... Juste chargé d'étude informatique. En clair je touche à tout, développement, déploiement, migration, analyse, Pilot phase test de nouveaux softs, assistance, formation... Enfin la liste est longue.

Pour les bouquins, celui de John Walkenbach (en Pub au dessus) doit être bien... Je n'ai pas celui là mais j'en ai lu un pour la Programmation d'Excel 2000 de lui qui est très bien.

Pour les astuces et trucs... Je pense pas que ce soit dans l'aide... C'est plutôt le résultat de plus de 20 ans à galérer avec des micros qui donnent ce "savoir faire" pour trouver toujours des systèmes D (D comme débrouille). Voilà pour la petite histoire (qui te fera probablement mieux comprendre ma réaction implacable un peu plus haut).

Bon ben moi je vais manger car cet aprèm je vais avoir besoin d'énergie (reval/consolidation/trial balance)

Bon App à tout le Monde
@+Thierry
 
G

GORDON

Guest
Re: utilisateur "Grillé" lol

Bonjour à tous, bonjour à toutes,

je reviens sur cet ancien post car le usertracker ne peut peut être alimenté que si le fichier en partage a été ouvert avec des macros!!!

@+Thierry (ou quelqu'un d'autre) si tu as une astuce dans le cas où l'utilisateur qu'on veut griller, désactive les macros ,tu es le bienvenu!


++
@ bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 951
dernier inscrit
Misterb