Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.

Prüfen ob Mappe von anderem User geöffnet

Skoðað 1.230 sinnum
Fara í fyrstu ólesnu skilaboð

Bjoern Seebeck

ólesið,
15. ágú. 2000, 03:00:0015.8.2000
til
Hallo Xler!

Ich arbeite im netzwerk und möchte eine Arbeitsmappe erstellen, die
mehrere Personen benutzen sollen.Wenn beispielsweise B die Mappe
geöffnet hat und A jetzt über den normalen Datei-Öffnen Befehl ebenfalls
die Mappe öffnen möchte, erscheint eine Meldung, dass B die Mappe
bereits geöffnet hat und A kann zwischen NUR LESE ZUGRIFF,
BENACHRICHTIGEN und ABBRECHEN wählen. Wenn A nun aber per VBA mit

Workbook.open("MAPPE.XLS")

die Datei öffnet, erscheint kein Hinweis darüber, daß B die Mappe
bereits geöffnet hat, sondern Excel öffnet gleich im NUR LESE ZUGRIFF.
Dies möchte ich umgehen. Excel soll A nur den Hinweis geben, das B in
der Mappe arbeitet (per MSGBOX) und nach klicken auf OK die Mappe NICHT
laden.

Kann mir jemand helfen?

Danke, Björn


Bernd Held

ólesið,
16. ágú. 2000, 03:00:0016.8.2000
til Bjoern Seebeck
Hallo Bjoern,

dazu gabs mal einen Thread in der Amerikanischen Newsgroup.

Zitat:

Sub TestFileOpened()

' Test to see if the file is open.
If IsFileOpen("c:\Book2.xls") Then
' Display a message stating the file in use.
MsgBox "File already in use!"
'
' Add code here to handle case where file is open by another
' user.
'
Else
' Display a message stating the file is not in use.
MsgBox "File not in use!"
' Open the file in Microsoft Excel.
Workbooks.Open "c:\Book2.xls"
'
' Add code here to handle case where file is NOT open by
' another user.
'
End If
End Sub

' This function checks to see if a file is open or not. If the file is

' already open, it returns True. If the file is not open, it returns
' False. Otherwise, a run-time error will occur because there is
' some other problem accessing the file.

Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer

On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.

' Check to see which error occurred.
Select Case errnum

' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False

' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True

' Another error occurred.
Case Else
Error errnum
End Select
End Function

Zitat-Ende

Viele Grüße
Bernd
//////////////////////////////////////
// Die MacHero EXCEL/WORKS Homepage
// Microsoft Excel MVP
// http://members.aol.com/Machero
//
// Mein neues Excel-VBA-Programmierung-Kompendium (Excel 97 + 2000)
// http://www.mut.de/shop/sh-info.asp?ID=3827258154

Bjoern Seebeck schrieb:

Gerhard Siegl

ólesið,
16. ágú. 2000, 03:00:0016.8.2000
til
Hallo Bjorn,
siehe hierzu in Excel das Menü ==> Extras => Arbeitsmappe freigeben
ansonsten die online Hilfe von Excel ==>Index= Arbeitsmappe =>>freigeben.
Gruss
Gerhard
Bjoern Seebeck <Bjoern....@t-online.de> schrieb in im Newsbeitrag:
3999AE4A...@t-online.de...

Ullrich Schwarz

ólesið,
16. ágú. 2000, 03:00:0016.8.2000
til
Hallo Bernd,
guter Tip, sollte unbedingt in die FAQ aufgenommen werden.
MfG Ullrich

Bernd Held <bh...@debis.com> schrieb in im Newsbeitrag:
399A4597...@debis.com...

Rolf Califice

ólesið,
16. ágú. 2000, 03:00:0016.8.2000
til
Björn, um rekursives öffnen von vielleicht durch anderes Macro
ausgeführtem <Workbook_Open> zu vermeiden, kannst Du nachfolgendes
in der Prozedur verwenden.

Dies hat aber nichts! mit dem gleichzeitigen öffnen von verschiedenen
Clients aus zu tun!

Hier hast Du in Excel das Menü <Extras> <Schutz> <Mappe schützen und
frei geben>

Dieses beinhaltet mehrere Optionen zur Auswahl, was im einzelnen beim
gleichzeitigen benutzen der Datei geschehen soll.

IMO sollte man wenn für MultiUser in VBA programmiert weitgehendst mit
versteckten Vorlagen und Kopien arbeiten.
Ich lasse generell ein Abbild des Blattes erzeugen und gleiche dann
mit dem Original ab.

Danke, ich bin die letzten Tage im Multibetrieb genug auf die Schnauze
gefallen ;(( Einige Dateien lassen sich nicht mehr öffnen, nur weil
die Optionen in <Mappe schützen und frei geben> nicht richtig
konfiguriert waren. Außerdem verhält sich XL2000 "etwas" anders als XL
97 ;(

HTH
*-------------------------------------------------------------------

Sub MappeOeffnen()
Dim Fil$, orgfil$, orgpath$, archivepath$, ok as Boolean
orgpath = ThisWorkbook.Path
archivepath = "EinEventuellAnderesVerzeichnis
Fil = "NeueMappeOeffnen.xls"
orgfil = "SchonOffeneMappe.xls"
ok = False
For Each wb In Workbooks
If UCase(wb.Name) = UCase(Fil) Then ok = True: Exit For
Next
If ok = False Then
Workbooks.Open (orgpath + "\" + Fil)
' oder eben (archivepath +")
End If
Windows(Fil).Activate


well, scribbler Bjoern Seebeck <Bjoern....@t-online.de>,
think on Tue, 15 Aug 2000 22:55:38 +0200 e.g.:

> Hallo Xler!
>
> Ich arbeite im netzwerk und möchte eine Arbeitsmappe erstellen, die
> mehrere Personen benutzen sollen.Wenn beispielsweise B die Mappe
> geöffnet hat und A jetzt über den normalen Datei-Öffnen Befehl ebenfalls
> die Mappe öffnen möchte, erscheint eine Meldung, dass B die Mappe
> bereits geöffnet hat und A kann zwischen NUR LESE ZUGRIFF,
> BENACHRICHTIGEN und ABBRECHEN wählen. Wenn A nun aber per VBA mit
>
> Workbook.open("MAPPE.XLS")
>
> die Datei öffnet, erscheint kein Hinweis darüber, daß B die Mappe
> bereits geöffnet hat, sondern Excel öffnet gleich im NUR LESE ZUGRIFF.
> Dies möchte ich umgehen. Excel soll A nur den Hinweis geben, das B in
> der Mappe arbeitet (per MSGBOX) und nach klicken auf OK die Mappe NICHT
> laden.
>
> Kann mir jemand helfen?
>
> Danke, Björn


Gruß,

Rolf Ca.
--
3-4 <=> X
http://www.auvista.com/sc100.htm ' das besondere Schmankerl
http://www.excel-center.de/excel/links.htm
http://www.vba-magazin.de/tippsexcel.htm
http://www.excel-center.de/excel/vbakwdeen.htm
http://www.microsoft.com/germany/office/anwenderforum/tipps/excel/archiv.htm
http://www.ti5.tu-harburg.de/manual/vba5/httoc.htm

0 ný skilaboð