Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Aktueller Benutzer einer Arbeitsmappe über VBA

Aktueller Benutzer einer Arbeitsmappe über VBA
06.06.2005 17:42:10
Mathias
Hallo zusammen,
jeder der mit Anderen Dateien auf einem Netzlaufwerk teilt, kennt ja die Meldung "Dokument wird verwendet"...
Da ich über VBA auf eine Datei im Netz zugreife, prüfe ich nach dem Öffnen über ReadOnly, ob ich die Datei normal bearbeiten kann.
Wenn ReadOnly = True ist möchte ich gerne auslesen, wer die Datei gerade bearbeitet. Beim manuellen Öffnen wird der User in o.g. Fenster schön genannt und genau diesen Namen würde ich gerne über VBA ermitteln.
Wäre echt klasse, wenn jemand eine Lösung hätte.
Vielen Dank schon mal für eure Hilfe !!!
Mathias
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktueller Benutzer einer Arbeitsmappe über VBA
06.06.2005 17:53:56
JensM
Hallo Mathias,
geht
Application.UserName ?
Grüße,
Jens
AW: Aktueller Benutzer einer Arbeitsmappe über VBA
07.06.2005 17:26:54
Mathias
Hallo Jens,
danke für den Tipp, allerdings gibt mir der Befehl nur meinen eigenen Namen zurück, da ich Der Benutzer von Excel bin.
Danke trotzdem !!!
ActiveWorkbook.UserStatus
06.06.2005 17:54:20
ransi
Hallo matthias
xp hat "ActiveWorkbook.UserStatus".
Das macht genau das was du willst.
Ob es das schon bei 9.0 gibt weiss ich nicht.
ransi
Anzeige
AW: ActiveWorkbook.UserStatus
07.06.2005 17:30:45
Mathias
über die Funktion war ich auch schon gestolpert, führt aber zu einer Fehlermeldung, wenn die Datei nur schreibgeschützt geöffnet ist.
Danke trotzdem !!!
Mathias
AW: ActiveWorkbook.UserStatus
08.06.2005 06:10:14
Hajo_Zi
Hallo Mathias,
Wer hat Datei offen

;
Anzeige
Anzeige

Infobox / Tutorial

Aktueller Benutzer einer Arbeitsmappe über VBA auslesen


Schritt-für-Schritt-Anleitung

Um den aktuellen Benutzer einer Arbeitsmappe in Excel über VBA auszulesen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Füge den folgenden Code ein:

    Sub BenutzerAuslesen()
       Dim aktuellerBenutzer As String
       aktuellerBenutzer = Application.UserName
       MsgBox "Der aktuelle Benutzer ist: " & aktuellerBenutzer
    End Sub
  4. Führe das Skript aus:

    • Klicke auf Ausführen oder drücke F5, um das Skript zu starten und den aktuellen Benutzernamen anzuzeigen.
  5. Überprüfe die Benutzerstatus:

    • Wenn du den Status aller Benutzer, die die Datei geöffnet haben, benötigst, kannst du ActiveWorkbook.UserStatus verwenden (verfügbar in Excel XP und höher).

Häufige Fehler und Lösungen

  • Fehler: "ActiveWorkbook.UserStatus" gibt eine Fehlermeldung aus:

    • Dieser Fehler tritt auf, wenn die Datei schreibgeschützt geöffnet wurde. Stelle sicher, dass du die Datei im Bearbeitungsmodus öffnest, um die Benutzerstatus abfragen zu können.
  • Problem: Anwendung gibt nur den eigenen Benutzer zurück:

    • Der Befehl Application.UserName gibt immer den Namen des aktuellen Benutzers zurück, nicht den Namen eines anderen Benutzers. Verwende ActiveWorkbook.UserStatus, um den Status anderer Benutzer zu ermitteln.

Alternative Methoden

  • VBA-Funktion zur Benutzerabfrage: Du kannst auch eine Funktion erstellen, die den Benutzernamen ausliest, wenn die Datei schreibgeschützt ist:

    Function BenutzerStatus() As String
      If ActiveWorkbook.ReadOnly Then
          BenutzerStatus = "Die Datei ist schreibgeschützt und kann nicht bearbeitet werden."
      Else
          BenutzerStatus = Application.UserName
      End If
    End Function
  • Benutzer über Windows auslesen: In einigen Fällen kann es nützlich sein, den Windows-Benutzernamen auszulesen:

    Function WindowsBenutzername() As String
      WindowsBenutzername = Environ("USERNAME")
    End Function

Praktische Beispiele

  1. Einfaches Auslesen des aktuellen Benutzers:

    Sub AktuellerBenutzer()
       MsgBox "Der aktuelle Benutzer ist: " & Application.UserName
    End Sub
  2. Auslesen aller Benutzer, die eine Datei verwenden:

    Sub BenutzerStatusAbfragen()
       Dim benutzer As Variant
       For Each benutzer In ActiveWorkbook.UserStatus
           Debug.Print benutzer
       Next benutzer
    End Sub

Tipps für Profis

  • Verwende On Error Resume Next: Nutze diese Zeile, um Fehler zu ignorieren, wenn du einen Befehl ausführst, der schiefgehen könnte, z. B. beim Zugriff auf UserStatus.

  • Benutzerverwaltung optimieren: Wenn du regelmäßig mit mehreren Benutzern arbeitest, überlege dir, eine zentrale Benutzerverwaltung in deiner Excel-Anwendung zu integrieren, um den Überblick zu behalten.


FAQ: Häufige Fragen

1. Wie kann ich den Benutzernamen eines anderen Benutzers ermitteln? Du kannst den Benutzernamen eines anderen Benutzers nicht direkt über VBA auslesen. Nutze ActiveWorkbook.UserStatus, um Informationen über alle Benutzer zu erhalten, die die Datei geöffnet haben.

2. Welche Excel-Versionen unterstützen ActiveWorkbook.UserStatus? ActiveWorkbook.UserStatus ist ab Excel XP verfügbar. Stelle sicher, dass du eine kompatible Version verwendest.

3. Gibt es eine Möglichkeit, den Windows-Benutzernamen auszulesen? Ja, mit der Funktion Environ("USERNAME") kannst du den aktuellen Windows-Benutzernamen auslesen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige