Clever-Excel-Forum

Normale Version: freigegebene Arbeitsmappe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

EXCEL 2007

habe Excel-Arbeitsmappe freigegeben für Mehrfachzugriff (im Netzbetrieb).

leider werden die Benutzer nach Schließen der Mapppe nicht mehr aus der Benutzerliste gelöscht.(siehe MenÜ: EXTRAS > Areitsmappe

freigeben)
Das heisst, die Liste läuft voll und die Benutzer sind dann zigfach vorhanden.

Woram liegt dieses seltsame Verhalten, kann man etwas dagegen tun ??
Hallo,

ich habe hier kein XL2007 und ich bin kein Freund von freigegebenen Arbeitsmappen da XL entsprechende Datenbankfunktionalitäten fehlen, aber m.W. kann man bei freigegebenen Arbeitsmappen die Änderungen protokollieren.

Nur um sicher zu gehen: Mit
Zitat:die Liste läuft voll und die Benutzer sind dann zigfach vorhanden.
meinst du nicht zufällig dieses Protokollierung die, wenn ich mich recht entsinne, über irgendein Kontrollkästchen eingeschaltet wird?
Hallo,
Ich habe alles was protokollieren könnte ausgeschalten.
Es ist ja nicht so dass jeder Benutzer in der liste hängen bleibt.
Ich möchte um die Dateigröße zu reduzieren ab und an die Freigabe mittels VBA aus und dann wieder einschalten.
Um keinen Benutzer von der Datei zu trennen und dieser dann nicht mehr speichern kann frage ich ab wer gerade mit der Datei verbunden ist.
Leider geht das nicht wenn in der Liste nicht aktuell ist.

Gruß Peter
Hallo stonemaus,

es gibt Workbook.UserStatus. Das liefert ein Array mit Benutzer und Öffnungszeit Wink
Eventuell liefert Dir das nur die aktuell aktiven Benutzer. Kann ich allerdings nix weiter dazu sagen, meine letzte freigegebene Mappe ist bestimmt schon über 5 Jahre her Sad
Vielen Dank
Mit der Eigenschaft Workbook.UserStatus habe ich ermittelt ob nur ein Benutzer die Datei geöffnet hat.
Leider erkennt diese Funktion alt Einträge auch als aktive Benutzer.
Die zweite Dimension gibt das Datum und die Uhrzeit des Benutzers an, vielleicht könnte man dieses Datum mit dem aktuellen Datum vergleichen und so herausfinden ob jetzt nur ein Benutzer geöffnet hat.
Leider komme ich nicht drauf wie ich das machen soll!!!

Gruß Peter
Hallo Peter,

im Prinzip könnte man das in Excel so auswerten. Wenn Du statt Now - 1 alternativ Date nimmst, werden wahrscheinlich die genommen, die älter als das Datum 0:00 Uhr sind - also alle gestrigen Smile und älter

Code:
Sub TestUser()
'Variablendeklaration
'Variant-Array
Dim arrUser
'Array mit Userstatus fuellen
arrUser = ThisWorkbook.UserStatus
'Schleife ueber alle user
For i = 1 To UBound(arrUser)
  'Wenn das Userdatum kleiner jetzt - 1 Tag ist, dann
  If CDate(arrUser(i, 2)) < Now - 1 Then
    'Meldung ausgeben
    MsgBox "Hiermit kann ich was anfangen"
  'Ende Wenn das Userdatum kleiner jetzt - 1 Tag ist, dann
  End If
'Ende Schleife ueber alle user
Next
End Sub
Hallo André
Herzlichen Dank für Deine Hilfe
Dies sieht gut aus, ich werde meine Datei damit aufrüsten und sehen was geschieht.
Es dauert immer ein zwei Tage bis Benutzer in der Liste hängen bleiben.

Gruß und ein schönes Wochenende

Peter