IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

récupérer le nom d'un utilisateur d'un fichier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut récupérer le nom d'un utilisateur d'un fichier
    bonjour,

    voilà, j'ai mis un fichier en réseau, je voudrais faire un message d'alerte à l'ouverture du fichier pour dire à la personne :

    - que si le fichier est déja ouvert par qqu un d'autre, le fichier sera en lecture seule,
    - je voudrais également récupérer le nom de l'utilisateur actuel pour pouvoir lui passer un coup de fil si j'ai besoin

    merci

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Soir Bon, à adapter au contexte
    http://excel.developpez.com/faq/?pag...ClasseurOuvert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim sUserName As String
        sUserName = Environ("USERNAME")
    qui n'a rien à voir avec Application.UserName de VBA

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut précision
    voilà le code que j'ai installé dans mon perso.xls, mais le problème c'est qu'il ne m'identifie pas les personnes connectées mais les coordonnées de mon ordi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Option Explicit
    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("S:\Dossiers FC\classeur.xls") Then
    With CreateObject("WScript.NetWork")
    MsgBox .UserName & Chr(10).ComputerName & Chr(10) & _
    .UserDomain & "utilise déja ce fichier" & Chr(13) & "Merci d'essayer plus tard"
    End With
    Else
    Workbooks.Open "S:\Dossiers FC\classeur.xls"
    End If
    End Sub

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Jour Bon , je n'ai pas de réseau à dispo pour tester
    Voir http://support.microsoft.com/kb/161394/en-us ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut re
    le lien sert à logger la machine sur laquelle tu es
    et nom l'utilisateur du fichier

  6. #6
    Membre actif Avatar de Many31
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 210
    Points
    210
    Par défaut
    manuellement: tu vas dans le dossier ou se trouve les fichier, tu affiches les dossier cachés... tu ouvre l'image du fichier que tu veux vérifier avec le bloc note... tu as l'identifiant des personnes logguées sur le fichier ^^ inconvéniant ce fichier se met a jour que quand il n'y a plus personne loggé... donc tu as l'historique mais pas en temps réel :/ sinon bahhhhh... fait une macro pour écrire rapidement dans un fichier la personne qui se log en premier et quand elle se délog tu efface son identifiant...


    cest pas tres catholique mais ca peut aider

  7. #7
    Membre régulier Avatar de zebulon2212
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 88
    Points
    88
    Par défaut
    Je suppose que ton fichier est sur un serveur
    tu peux voir en temps reel qui utilise ton fichier en prenant la main sur ce serveur et en allant sur 'Fichier ouvert' du gestionnaire de l'ordinateur'
    Si tu veux le faire par code, tu oublie vba excel, c'est une appli réseau que tu veux faire pas une macro. Vba ne gere pas le multisession, tu ne peux pas récuperer qui a ouvert le meme fichier que toi en temps reel depuis excel

    Bonne chance

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une idée :

    1 - Quand l'utilisateur ouvre ton fichier, tu stockes (à partir de fonctions qui t'on été proposé la valeur dans une feuille (qui sera invisible)
    2 - Tu interroges les valeurs de cellules de cette feuille.


    Starec

  9. #9
    Membre actif Avatar de Many31
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par Starec Voir le message
    Bonjour

    Une idée :

    1 - Quand l'utilisateur ouvre ton fichier, tu stockes (à partir de fonctions qui t'on été proposé la valeur dans une feuille (qui sera invisible)
    2 - Tu interroges les valeurs de cellules de cette feuille.


    Starec
    heu juste comme ca... le fait de renseigner une cellule du classeur ouvert ne suffira pas puisquil doit etre sauvegarde pour que la modification apparaisse a louverture en lecture seule... et si tu sauvegarde a louverture il faut bien sauvegarder a la fermeture les modifications...
    Donc au final tu vas devoir creer un fichier temporaire dans nimporte quel format avec la valeur de lidentifiant de lutilisateur principal et le supprimer a la fermeture du fichier.
    je me trompe?

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Si le fichier n'est pas partagé, l'utilisateur reçoit normalement un message lui indiquant que son fichier sera ouvert en lecture seule et il peut choisir d'être informé du moment où le fichier sera libéré.

    Cela ne suffit pas?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Récupérer le nom de l'utilisateur
    Par olbi dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/10/2006, 02h10
  2. [C++]Récupérer le nom de l'utilisateur.
    Par The Lord of Nesquik dans le forum Windows
    Réponses: 1
    Dernier message: 17/06/2006, 21h31
  3. Réponses: 1
    Dernier message: 19/01/2006, 17h23
  4. Réponses: 3
    Dernier message: 07/05/2004, 11h01
  5. Récupérer le nom de l'utilisateur sous linux
    Par Michaël dans le forum POSIX
    Réponses: 7
    Dernier message: 25/12/2003, 22h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo