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 !

max.lander

XLDnaute Occasionnel
Bonjour à tous,

je souhaite créer un fichier multi utilisateurs avec un module de détection des utilisateurs connectés aprés la saisie d'un numéro par exemple.

pour cela je vais créer une table avec tous les noms et identifiants, j'aimerai juste savoir quel est le meilleur chemin pour scanner la base et retourner le nom de la personne en cours d'utilisation...


je pense que le sujet a du être abordé des centaines mais le nombre de réponse par jour rend la recherche difficile.

Merci par avance
 
Re : Module login - VBA

Salut,

Un grand merci pour ce bout de code qui va me fazciliter la vie!!!!

Juste un petit truc, la methode Environ("UserName") ne me renvoie que le Nom de famille, est il possible d'avoir le prénom par une methode similaire?

Merci par avance
 
Re : Module login - VBA

Re,

Cette variable d'environnement contient "l'USERNAME" de l'utilisateur "windows", pas forcément un nom d'ailleurs... Pas de notion de nom ou prénom dans les variables d'environnement, enfin à ma connaissance....
bon après midi
@+
 
Re : Module login - VBA

Bonjour,

Le numéro de série du disque dur peut être intéressant dans ton cas?


Private Declare Function GetVolumeInformation Lib _
"Kernel32.dll" Alias "GetVolumeInformationA" (ByVal _
lpRootPathName As String, ByVal lpVolumeNameBuffer As _
String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength _
As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

Function HDD&(Ch$)
Dim NS&, Ch1$
Ch1 = String$(255, Chr$(0))
HDD = GetVolumeInformation(Ch, Ch1, Len(Ch1), NS, 0, 0, Ch1, Len(Ch1))
HDD = NS
End Function

MsgBox HDD("C:\")


A+++
 
Re : Module login - VBA

Re,

Cette variable d'environnement contient "l'USERNAME" de l'utilisateur "windows", pas forcément un nom d'ailleurs... Pas de notion de nom ou prénom dans les variables d'environnement, enfin à ma connaissance....
bon après midi
@+

Merci Pierrot93, pour toutes ces informations, je pensé que "username" etait l'intitulé du compte utilisateur que l'on voit dans le menu demarrer.

Bonjour,

Le numéro de série du disque dur peut être intéressant dans ton cas?


Private Declare Function GetVolumeInformation Lib _
"Kernel32.dll" Alias "GetVolumeInformationA" (ByVal _
lpRootPathName As String, ByVal lpVolumeNameBuffer As _
String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength _
As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

Function HDD&(Ch$)
Dim NS&, Ch1$
Ch1 = String$(255, Chr$(0))
HDD = GetVolumeInformation(Ch, Ch1, Len(Ch1), NS, 0, 0, Ch1, Len(Ch1))
HDD = NS
End Function

MsgBox HDD("C:\")


A+++

Merci ZON,pour la fonction qui retourne le numéro de serie du HDD mais j'ai un peu de mal à la comprendre même si elle fonctionne très bien!

Quelqu'un peut la commenter?

Merci par avance
 
Dernière édition:
Re : Module login - VBA

Salut,

J'utilise un API Getvolumenformation, c'est une fonction de la bibliothèque Kernel32.dll, elle permet de connaitre les informations sur un disque dur ou amovible et elle est indépendante de VBA.

Elle contient 8 parametres

(ByVal _
lpRootPathName As String, => c:\

lpVolumeNameBuffer => nom du disque ex: Disque LOcal

nVolumeNameSize As Integer, =>256 catcyères maxi pour stocké le nom de volume

lpVolumeSerialNumber As Long, => Numéro de série du disque

lpMaximumComponentLength _As Long, =>256 catcyères maxi pour stocké le nom de répertoire , fichiers

lpFileSystemFlags As Long, à savoir si disque compressé

lpFileSystemNameBuffer As String, NTFS, FAT32, ....

nFileSystemNameSize As Long) As Long=> 256 caractères max


Ici on récupère le numero de série, mais si on voulait récupèrer le type da la partition

ce serait

HDD = GetVolumeInformation(Ch, Ch1, Len(Ch1), NS, 0, 0, Ch1, Len(Ch1))
HDD = Ch1

A+++


PS suis-je explicit ou pas ?
 
Re : Module login - VBA

Bonjour

Nom de l'utilisateur de la session en cours
VB:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
 
 
Sub GetLoginName()
'Chris Amess, mpep
'Gets the currently logged on user from the system
Dim strName As String
Dim lngReturn As Long
Dim strLoginName As String
 
'Gets users Name using API call
strName = Space$(25)
lngReturn = GetUserName(strName, 25)
 
If lngReturn = 1 Then
  DoEvents
  MsgBox strName
Else
  MsgBox "Imposssible d'obtenir le nom utilisateur du réseau"
End If
End Sub

Devrait te donner ce que tu souhaites

A+
 
Dernière modification par un modérateur:
Re : Module login - VBA

Bonjour,

Le numéro de série du disque dur peut être intéressant dans ton cas?


Private Declare Function GetVolumeInformation Lib _
"Kernel32.dll" Alias "GetVolumeInformationA" (ByVal _
lpRootPathName As String, ByVal lpVolumeNameBuffer As _
String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength _
As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

Function HDD&(Ch$)
Dim NS&, Ch1$
Ch1 = String$(255, Chr$(0))
HDD = GetVolumeInformation(Ch, Ch1, Len(Ch1), NS, 0, 0, Ch1, Len(Ch1))
HDD = NS
End Function

MsgBox HDD("C:\")


A+++
Bonjour,
Le numéro de série du disque dur est en fait un numéro calculé ( ? ) pour une partition. Ce que j'aimerais avoir c'est une référence matérielle unique du disque dur
Actuellement j'obtiens le numéro de série par ce code qui doit être équivalent au tien
Code:
Sub AfficheInfoLecteurC()
    Dim fs, d, s, t
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set d = fs.GetDrive(fs.GetDriveName("C:\"))
    Select Case d.DriveType
        Case 0: t = "Inconnu"
        Case 1: t = "Amovible"
        Case 2: t = "Fixe"
        Case 3: t = "Réseau"
        Case 4: t = "CD-ROM"
        Case 5: t = "Disque RAM"
    End Select
    s = "Lecteur " & d.driveletter & ": - " & t
    s = s & vbCrLf & "SN: " & d.SerialNumber
    MsgBox s
End Sub
salutations
 
- 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

V
Réponses
3
Affichages
938
Viomlr
V
R
  • Question Question
Réponses
1
Affichages
1 K
Rousseau Benoit
R
Réponses
5
Affichages
1 K
M
Réponses
6
Affichages
1 K
Max60150
M
S
Réponses
12
Affichages
9 K
S
Réponses
9
Affichages
2 K
G
V
Réponses
3
Affichages
1 K
Valentin
V
M
Réponses
4
Affichages
4 K
mamatt62
M
M
  • Question Question
Réponses
2
Affichages
1 K
M
Retour