Re: anwendung 2mal öffnen verhindern?
23.01.2003 23:23:51
Heino B
Hallo GeraldIch habe das bei mir folgendermaßen gelöst:
Ich habe mir eine neue Arbeitsmappe erstellt, mit der ich dann die gewünschte Arbeitsmappe öffne.
Ist die gewünschte Mappe frei dann Automatisch die gewünschte Arbeitsmappe Mappe.Die Startarbeitsmappe schliesse ich per Makro aus der gewünschten Mappe.
Ist die gewünschte Mappe besetzt, dann erscheint eine Meldung und die gewünschte Mappe wird nicht geöffnet.
Hier der Code den ich im Orginal von Urs aus dem Forum habe:
Sub History()
'
' History Makro
'
Workbooks.Open Filename:="L:\Team\SCB-Schichtbuch.01\Schichtbuch2002.xls", notify:= _
True, ReadOnly:=False
If ActiveWorkbook.ReadOnly Then
Status = 1
ActiveWorkbook.Close Savechanges:=False
End If
Do While Status = 1
Workbooks.Open Filename:="L:\Team\SCB-Schichtbuch.01\Schichtbuch2002.xls", notify:= _
True, ReadOnly:=False
If ActiveWorkbook.ReadOnly Then
Status = 1
ActiveWorkbook.Close Savechanges:=False
Else
Status = 0
Exit Do
End If
'MsgBox "Die Datei wird gerade benutzt, bitte warten!"
Dim Mldg, Stil, Titel, Hilfe, Ktxt, Antwort, Text1
Mldg = "Das Schichtbuch wird gerade benutzt. Wollen Sie warten?" ' Meldung definieren.
Stil = vbYesNo + vbCritical + vbDefaultButton2 ' Schaltflächen
' definieren.
Titel = " Sicherheitsabfrage" ' Titel definieren.
Hilfe = "DEMO.HLP" ' Hilfedatei
' definieren.
Ktxt = 1000 ' Kontext für Thema
' definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt) ' Meldung anzeigen.
If Antwort = vbYes Then ' Benutzer hat "Ja"
' gewählt.
GoTo 100 ' Operation ausführen.
Else ' Benutzer hat "Nein"
' gewählt.
' Operation ausführen.
End If
Application.DisplayAlerts = False
Application.Quit
ActiveWorkbook.Close Savechanges:=False
100 Application.Wait Now + TimeSerial(0, 0, 10)
Loop
ThisWorkbook.Close Savechanges:=False
End Sub
Gruß Heino