vba > environ("username")

yaka

XLDnaute Occasionnel
bonjour,

dans un module vba j'utilise le code 'environ("username")' pour utiliser le nom de l'utilisateur de la cession windows ouverte.

sur certains postes mon programme ne fonctionne pas, j'ai alors le code 'environ' en surbrillance et la boîte de dialogue vba qui m'annonce 'erreur de compilation, Projet ou bibliothèque introuvable'

Comment faire pour résoudre mon pb? que dois-je cocher alors dans les options d'excel de ces postes, ou ailleurs, pour que cela fonctionne?

Par avance merci pour votre aide.

Y+
 

biloute91

XLDnaute Occasionnel
Re : vba > environ("username")

Bonjour,

Voici ce que j'utilise pour un de mes fichiers mais c'est à partir d'un USF.

Code:
Private Sub CommandButton3_Click()
  Dim X As String
  Dim c As Range
Dim y As Long
  X = Environ("username")
  y = X
  With Worksheets("Utilisateurs").Range("G1:L500")
       Set c = .Find(y, LookIn:=xlValues)
       
       If Not c Is Nothing Then
     Sheets("Base de Reponse").Select
     Else: MsgBox "Vous n'êtes pas autorisés à accéder à cette base"
End If
End With
End Sub
 

yaka

XLDnaute Occasionnel
Re : vba > environ("username")

merci biloute mais mon pb c'est justement que sur certains postes le code environ() n'est pas reconnu ... 'projet ou bibliothèque introuvable'!.

donc en fait.... où faut-il agir pour activer la bonne bibliothèque?
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : vba > environ("username")

Bonjour,

Code:
Declare Function wu_GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function GetUserName() As Variant
   Dim strUserName As String, lngLength As Long, lngResult As Long
   strUserName = String$(255, 0)
   lngLength = 255
   lngResult = wu_GetUserName(strUserName, lngLength)
   GetUserName = Left(strUserName, InStr(1, strUserName, Chr(0)) - 1)
End Function

JB
 

Pièces jointes

  • ApiUserName.xls
    21 KB · Affichages: 525

yaka

XLDnaute Occasionnel
Re : vba > environ("username")

Boisgontier... bingo! ça marche! merci.

mais ça décale mon pb de 'bibliothèque introuvable' pour le code suivant : Date


je pense qu'il faut que j'active une bibliothèque mais laquelle? et où ça?
 

yaka

XLDnaute Occasionnel
Re : vba > environ("username")

bon ok.

en fait sur certains postes le code Environ("UserName") fonctionne très bien et sur d'autre il faut que je l'écrive Application.Environ("UserName") pour qu'il soit reconnu.

Donc ce n'est en définitive pas un pb de code mais un pb de Bibliothèque ou un truc comme ça.

Comme j'ai le pb pour d'autres instructions (Date, Left,...) = comment faire pour activer la bonne Bibliothèque qui m'évitera de reprendre tout mon code pour y ajouter Application. devant chaque instruction?
 

yaka

XLDnaute Occasionnel
Re : vba > environ("username")

j'ai résolu mon pb de comptabilité et de Bibliothèque manquante en ajoutant 'VBA.' devant les instructions suivantes :

'Environ' 'Left' 'Right' 'Ucase' 'Len' 'Format' 'Date'

mon programme ça fonctionne sur tous les postes à présent

y+
 

Discussions similaires

Réponses
0
Affichages
162
Réponses
3
Affichages
408

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 761
dernier inscrit
rouazali