Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
340to344
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
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA User ermitteln der das Dokument geöffnet hat

VBA User ermitteln der das Dokument geöffnet hat
19.11.2003 12:17:53
Bongartz
Hallo

ich öffne ein Dokument mit Benachrichtigen oder Schreibgeschützt, das von einem anderen Benutzer geöffnet ist.

Kann man per VBA den User ermitteln der das Dokument geöffnet hat um diesen eine Message zu senden?

Kann dabei der Application.Username oder auch der Windows Username ermittelt werden?

Gruß
Bongartz

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA User ermitteln der das Dokument geöffnet hat
19.11.2003 18:31:29
markus
Hallo,

da ist ein Problem: M.W. wird bei diesem Dialog: "X wird bearbeitet von Y, wollen Sie benachrichtigt werden oder schreibgeschützt öffnen etc." der Name angegeben, der als WOrkgroupname bei der Installtion von Office verwandt wurde (bei uns ist das immer der Firmennamen, sieht man auch in der Lizenz-Info im Splash-.Screen beim Start von Office-Teilen) und damit kommt man wirklich nicht weiter, weil dieser Name mit User im Netzwerk nichts zu tun hat.

markus
AW: VBA User ermitteln der das Dokument geöffnet hat
19.11.2003 19:12:22
Bongartz
Hallo Markus

ich lade jetzt in Word ein Addin, das den Usernamen ermittelt und dann den
richtigen "Vornamen Namen" in die WordOptionen einstellt.
Das Addin lädt die Infos aus einer INI Datei vom Server.

Code Teilweise


Declare Function WNetGetUser Lib "mpr.dll" _
  Alias "WNetGetUserA" (ByVal lpName As String, _
     ByVal lpUserName As String, lpnLength As LongAs Long
Private Const NoError = 0

'Ermittelt die NTKennung des angemeldeten Users.
Public Function NTKennung()
  Const lpnLength As Integer = 255
  Dim status As Integer
  Dim lpName, lpUserName As String
  lpUserName = Space$(lpnLength + 1)
  status = WNetGetUser(lpName, lpUserName, lpnLength)
  If status = NoError Then
    lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
  End If
  NTKennung = lpUserName
End Function

     Code eingefügt mit Syntaxhighlighter 2.1



Public Function BenutzerInfo()
  On Error GoTo ErrorHandler    ' Fehlerbehandlung aktivieren.
  CustomizationContext = NormalTemplate
  Pfad = CheckStandort
  Chk = Dir(Pfad)
  If Chk = "" Then
    INIDateiFehlt
    Exit Function
  End If
  Sektion = NTKennung
  Application.UserName = System.PrivateProfileString(FileName:=Pfad, _
    Section:=Sektion, Key:="UserName")
  Application.UserInitials = System.PrivateProfileString(FileName:=Pfad, _
    Section:=Sektion, Key:="UserInitials")
  Application.UserAddress = System.PrivateProfileString(FileName:=Pfad, _
    Section:=Sektion, Key:="UserAdress")
  NormalTemplate.Save
  Exit Function
  
ErrorHandler:    ' Fehlerbehandlungsroutine.
    Select Case Err.Number    ' Fehlernummer auswerten.
        Case 5986    ' Adressbuch kann nicht geschrieben werden
            Exit Function
        Case 4248
            Exit Function ' Kein Dokument geöffnet...
        Case Else
            Errortext = "mod_BenutzerInfo"
            Call MsgError(Err.Number, Err.Description, Errortext)
            Exit Function ' Andere Fälle hier bearbeiten...
    End Select
    Resume    ' Ausführung in der Zeile fortsetzen, die den Fehler ausgelöst hat.

End Function

     Code eingefügt mit Syntaxhighlighter 2.1

Dadurch wird auch der Username von Excel eindeutig festgelegt.
Die User bekommen dadurch den richtigen Usernamen angezeigt.
Leider kann dieser Username über die Optione vom User auch geändert werden.
Wird aber bei jedem Word start wieder überschrieben.

Mit diesen Macros kann man in Excel feststellen ob das geöffnete Dokument von einem anderen User gesperrt ist?

http://support.microsoft.com/support/kb/articles/Q138/6/21.asp
XL: Macro Code to Check Whether a File Is Already Open

http://support.microsoft.com/support/kb/articles/Q291/2/95.ASP
XL2002: Macro Code to Check Whether a File Is Already Open

http://support.microsoft.com/support/kb/articles/Q213/3/83.ASP
XL2000: Macro Code to Check Whether a File Is Already Open

http://support.microsoft.com/support/kb/articles/Q184/9/82.ASP
WD97: VBA Function to Check If File or Document Is Open

The first 3 are all basically the same macro and the last uses pretty much
the same approach.

Gruß
bongartz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige