Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userabfrage manchmal fehlerhaft

Userabfrage manchmal fehlerhaft
18.01.2004 11:43:31
Jens
Hallo Zusammen
Eine Frage.
Und zwar starte ich beim öffnen eine Datei eine Benutzer- bzw. User Abfrage mit folgendem Befehl:
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
'/// Befehle für das Auslesen des Users

Private Sub Workbook_Open()
'Auslesen des Benutzernamens
Dim strBenutzer As String
Dim strInitial As String
strBenutzer = UCase(Environ("username"))
Select Case strBenutzer
'/// VKD Süd
Case "MÜLLER"
strInitialen = "mü"
strVollerName = "Müller, Dieter"
Case Else
strInitialen = "fü"
strVollerName = " nicht registr. Nutzer"
End Select
End Sub

Zu Hause auf meinem Rechner läuft das. Spiel ich die Datei auf eine anderen Rechner bekomm ich grundsätzlich erst mal die Fehlermeldung:
Fehler Visal Basic
Fehler im Kompilitieren
Projekt oder Bibliothek nicht gefunden.
Als fehlerhaft wird die der Namen „Environ“ angezeigt.
Starte ich die Datei auf dem neuen Rechner ein paar mal neu (Manchmal bis zu 20 x) oder schiebe die VBA Codes ein bisschen hin und er, aktzeptiert er plötzlich irgendwann den Namen Environ und alles läuft bestens.
Kann mir jemand eventuell sagen woran das liegt.
Zu Hause winXP u. OfficeXP
Läuft nicht sobald ich den Rechner wechsel oder Betriebssystem. ZB. Win2000 und Office 97.
Danke für die Hilfe
Gruß Jens

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userabfrage manchmal fehlerhaft
18.01.2004 11:56:21
Ramses
Hallo
warum deklarierst du oben die "advapi32.dll" und greifst dann auf die Umgebungsvariablen "Environ" des Betriebssystems zu
Obwohl es prinzipiell funktionieren muss und sollte, kannst du auch das probieren
Das in ein Modul
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function ActiveUser() As String
Dim s As String * 255
GetUserNameA s, Len(s)
ActiveUser = Left$(s, InStr(s, vbNullChar) - 1)
End Function


Private Sub Workbook_Open()
'Auslesen des Benutzernamens
Dim strBenutzer As String
Dim strInitial As String
Select Case ActiveUser
Case "MÜLLER"
strInitialen = "mü"
strVollerName = "Müller, Dieter"
Case Else
strInitialen = "fü"
strVollerName = " nicht registr. Nutzer"
End Select
End Sub

Gruss Rainer
Anzeige
AW: Userabfrage manchmal fehlerhaft
18.01.2004 13:36:17
Jürgen Schaetzke
Hallo Jens,
probier es mal mit VBa.Ucase(VBa.environ ...)
Ciao Jürgen
AW: Userabfrage manchmal fehlerhaft
18.01.2004 23:40:26
Jens
Danke Euch Dreien
Ich probiers mal am Dienstag in der Firma aus.
Ich hatte da auch noch was.
Dim strTemp As String
Dim strUserName As String
strTemp = String(100,Chr$(0))
strUserName = String(100,Chr$(0))
GetUserName strUserName, 100
strUserName = Left$(strUserName,InStr(strUserName,Chr$(0))-1)
Das habe ich vorher benutzt. Nachteil: Ich muß beim Suchen des angemeldeten User genau auf die groß und klein Schreibung achten. Also statt MÜLLER eben Müller.
Es ist auch lustig. Setzt ich den genannten Code erst mal in die Datei ein, starte diese, speicher sie einmal auf dem Firmenrechner ab und steig dann beim nächsten Start der Datei wieder auf den Code mit Environ um, dann funktioniert er wieder. Ich kann die Dateien in der ganzen Firma verteilen. Auf jeden Rechner läuft dann dieses Environ. Nur der Umstieg von WinXP/OfficeXP auf Win2000/Office97. Da habe ich komischer Weise immer diese Schwierigkeiten. Komisch?????
Gruß Jens
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige