Excel 2000 - Datie fremdgeöffnet: von wem und wo?

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
18.377
Hallo!

Eine Mappe könnte derzeit von einem anderen User auf einer anderen Maschine geöffnet sein. Eine Function ermittelt ob die Mappe offen ist. Wenn ja war mir ausreichend welcher User das war - der Name des Users war der Name des Rechners. Dummerweise vermehrt sich der User wie ein Karnickel und ist auf diversen Maschinen aktiv…

Hier eine Fucntion die aus einer übergebenen Mappe den «Letzten Benutzer» (was in Wahrheit der aktuelle ist) ermittelt.
Code:
Public Function LetzterBenutzer(ByVal Pfad As String) As String
Dim Xl As String
Dim Flagge1 As String, Flagge2 As String
Dim I As Integer, J As Integer
Dim Kanalnummer As Long
Dim NameLänge As Byte
 Flagge1 = Chr(0) & Chr(0)
 Flagge2 = Chr(32) & Chr(32)
 Kanalnummer = FreeFile
 Open Pfad For Binary As #Kanalnummer
  Xl = Space(LOF(Kanalnummer))
  Get 1, , Xl
 Close #Kanalnummer
 J = InStr(1, Xl, Flagge2)
 #If Not VBA6 Then
 '// Xl97
  For I = J - 1 To 1 Step -1
   If Mid(Xl, I, 1) = Chr(0) Then Exit For
  Next
  I = I + 1
 #Else
 '// Xl2000+
  I = InStrRev(Xl, Flagge1, J) + Len(Flagge1)
 #End If
 '// IFM
 NameLänge = Asc(Mid(Xl, I - 3, 1))
 LetzterBenutzer = Mid(Xl, I, NameLänge)
End Function
Das sieht mir glatt danach aus, dass ich aus den Meta-Daten der Mappe den User herausfiltere. Kapiere ich es richtig steckt er zwischen 2 0-Chars und 2 Leerzeichen (und wird von hinten gesucht).

Steckt da auch irgendwo der Rechner auf dem das passiert, und wie fische ich dann den raus, welche Schnittmarken ab wo braucht es?

CN8
 
Hi,

Die Variablenbezeichnung NameLänge ist ungültig! Richtig muss er NameLaenge lauten! Eigentlich sollte dieser Fehler vom VBA-Compiler entdeckt worden sein, oder wurde der Code noch nie compiliert?

Viel Erfolg
 
Weder entdeckt noch explizit kompiliert.
Ich versuche zwar Umlaute zu vermeiden, aber so lange es nicht rummst bleiben die Tüttelchen schön auf dem ä :D

CN8
 
Zurück
Oben