Hallo,
Jens Kaiser (FEINAUER GmbH) schrieb:
> wir haben bei uns ein Problem mit (in OOo) geöffneten
> Excel-Dateien und
> der daraus resultierenden Dateisperre.
>
> Wenn ein Mitarbeiter A (OOo-Benutzer) eine Excel-Datei
> geöffnet hat und
> dann Mitarbeiter B zu diesem Zeitpunkt die gleiche Datei im Netz
> versucht zu öffnen, dann gibt weder Excel noch OOo den richtigen
> Benutzer aus, der die Datei sperrt. Also in diesem Beispiel müsste
> angezeigt werden "Datei wird durch Mitarbeiter A gesperrt.".
>
> Es erscheint aber in Excel der falsche Benutzer und unter calc steht
> "... gesperrt durch: Unbekannter Anwender ...".
>
> Kennt jemand das Problem und vielleicht sogar die Ursache bzw. eine
> Lösung dafür?
Sofern sich Calc in der Kombination 'xls-Datei ist geöffnet von NUtzer A
in Calc und wird zusätzlich geöffnet von Nutzer B in Calc' so verhielte
wie geschildert wäre das wohl augenscheinlich ein Programmfehler in
Calc, bei OOo 3.1.0 (Windows) kann ich dieses Fehlerverhalten jedoch
_nicht_ nachvollziehen - 3.1.1 habe ich hier noch nicht installiert,
wobei ich zusätzlich auch nicht über eure ganz exakte Umgebung (Win2003)
verfüge.
Das hingegen die Kombinationen:
(a)
Datei ist in Calc geöffnet und wird zusätzlich in MS Excel geöffnet
(b)
Datei ist in MS Excel geöffnet und wird zusätzlich in Calc geöffnet
liegt an der unterschiedlichen Implementierung des
'locking'-Mechanismus.
Lösung für Fall (b) ist möglich indem ihr z.B. in der jeweiligen
persönlichen Makroarbeitsmappe von Excel (in einem Klassenmodul)
ereignisgesteuerte Makros i.S.:
Private Sub App_WorkbookActivate(ByVal Wb As Workbook)
Private Sub App_WorkbookDeactivate(ByVal Wb As Workbook)
implementiert, die automatisch bei der Dokumentöffnung die jeweilige
'lock'-Datei (".~lock<Dateiname>.xls#") erzeugt die Calc erwartet bzw.
diese (bei Dokumentschliessen) wieder löscht. Den nötigen Inhalt der
'lock'-Dateien könnt ihr euch an einigen Beispielen die ihr zunächst mit
Calc erzeugt ansehen und dann in Excel-VBA nachstellen.
Durch die so in MS Excel erzeugte 'lock'-Dateien wird Calc den
'lock'-Zustand richtig im Meldungsfenster ausgeben.
Zur Lösung für Fall (a) kann ich derzeitig leider keine Hinweise geben,
die direkt das Meldungsfenster in MS Excel richtig reagieren lassen. (Da
ich sehr stark vermute das der angezeigte Benutzername, unter den
genannten Umständen, der unter Extras-Optionen eingetragene ist, könnte
man vielleicht beim öffnen einer 'gelockten' Datei diese zunächst
automatisch per VBA wieder schließen, den nAmenseintrag temporär ändern
und danach die Datei per VBA nochmals öffnen und den ursprünglichen
Namenseintrag wiederherstellen, ich habe sowas aber bisher noch nicht
programmiert.)
Da jedoch MS Excel den 'lock'-Zustand als solchen korrekt erkennen
sollte, und nur die Wiedergabe des Nutzernamens fehlerhaft ist, wäre es
eine Möglichkeit in MS Excel eine Schaltfläche ins Menü aufzunehmen,
welche ein Makro startet das den korrekten Nutzernamen aus der von Calc
aktuell erzeugten 'lock'-Datei (der in Calc geöffneten Eceldatei) direkt
ausliest und anzeigt.
Gruß
Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]