Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei schon offen

Datei schon offen
15.07.2006 13:45:20
Erich
Hallo Exelaner....
Ich habe nur eine grundsätzliche Frage.
Wenn eine Exceldatei, die auf einen lokalen rechner liegt, geöffnet ist
und dann eine Exceldatei, die auf einem Server liegt, zusätzlich
öffnet, daß dann eine Warnmeldung kommt " Nur eine Datei öffnen !"
ist so etwas überhaupt machbar.
Für eine Information schon mal Danke.
Gruss Erich

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei schon offen
15.07.2006 13:54:13
Matthias
Hallo Erich,
wenn die Dateien den gleichen Namen haben, lässt Excel sowieso nicht zu, dass beide Dateien in einer Instanz geöffnet werden.
Ansonsten müsste die Mappe auf dem Server eine Workbook_Open()-Routine haben, in der geprüft wird, ob die (welche? Krieterien hast du nicht angegeben) lokale Datei bereits geöffnet ist.
Gruß Matthias
AW: Datei schon offen
15.07.2006 14:21:55
Erich
Hallo Matthias
Das wird nicht zu machen sein.
Es geht im Prinzip nur um 3 Dateien die geöffnet werden können.
Da die Dateien unter dem Tagesdatum und Kürzel gespeichert werden
müßte man die Abfrage für jeden Tag ändern. Das ist zu Aufwendig.
Müssen halt die Kollegen etwas besser aufpassen.
Nochmals vielen Dank Matthias fü die Auskunft.
Gruss Erich
Anzeige
AW: Datei schon offen
15.07.2006 14:26:56
Matthias
Hallo Erich,
man könnte noch alle geöffneten Mappen auf typische Merkmale der "verbotenen" Dateien prüfen, z.B. Zellinhalte, Blattnamen,...
Gruß Matthias
AW: Datei schon offen
15.07.2006 14:37:07
Erich
Hallo Matthias
Du hast mich jetzt doch neugierig gemacht.
Kannst Du mir evtl. einen Code, den ich angleichen könnte,
schreiben?
Gruss Erich
AW: Datei schon offen
15.07.2006 14:52:01
Matthias
Hallo Erich,
in "DieseArbeitsmappe":

Private Sub Workbook_Open()
Dim wb As Workbook
'Schleife: alle geöffneten Mappen
For Each wb In Application.Workbooks
'Diese Mappe aus der Prüfung ausnehmen
If wb.Name <> ThisWorkbook.Name Then
'Prüfung jeder Mappe auf "Verboten" in Blatt1, A1
If wb.Sheets(1).Range("A1") = "Verboten" Then
'Strg+Pause deaktivieren
Application.EnableCancelKey = xlDisabled
MsgBox "Es ist bereits eine Mappe mit ... geöffnet!" & vbLf & _
"Die Mappe wird geschlossen!", vbExclamation, "FEHLER"
Application.EnableCancelKey = xlInterrupt
ThisWorkbook.Close False
End If
End If
Next wb
End Sub

Ist ein erster Entwurf, müsste evtl. noch eine Fehlerbehandlung rein.
Gruß Matthias
Anzeige
AW: Datei schon offen
15.07.2006 14:47:17
Josef
Hallo Erich!
Wie setzt sich den der Dateiname zusammen? (Beispiel)
Wenn sich der Name nach dem Datum ändert, kann man ja den Namen zusammensetzten.
Gruß Sepp

AW: Datei schon offen
Erich
Hallo Matthias und Sepp
Erstmal vielen Dank für den Code.
Werde es auf meinem Rechner ausprobieren.
Mit dem Server kann ich leider erst am Dienstag in der Firma testen.
Rückmeldung käme am Mitwoch oder Donnerstag.
Deine Frage Sepp
Gespeichert z.B. " 01.07.2006 Reserve.xls ", "01.07.2006", "01.07_14.07_Fremde.xls"
hilft Dir das weiter?
Euch beiden erstmal vielen Dank für die Antworten.
Grus Erich
Anzeige
AW: Datei schon offen
15.07.2006 15:43:38
Josef
Hallo Erich!
Gespeichert z.B. " 01.07.2006 Reserve.xls ", "01.07.2006", "01.07_14.07_Fremde.xls"
hilft Dir das weiter?

Nicht wirklich.
Wie heist die Datei am 1.7.06, wie am 2.7.06 (reserve.xls)
Nach welchem Muster änder sich der Name von "Fremde.xls"
Gruß Sepp

AW: Datei schon offen
15.07.2006 15:50:30
Erich
Hallo Sepp
Die ersten beiden Dateien werden immer mit dem Datum des aktuellen Tages gespeichert.
Die andere ändert sich Mitte des Monats zu " 16.07_31.07_Fremde.xls
Ich hoffe das hilft Dir.
Hinweis: Der Code von Matthias läüft auf meinen Rechner gut.
Aber vieleicht hast Du ja noch eine andere Ideee.
Gruss Erich
Anzeige
AW: Datei schon offen
15.07.2006 15:57:47
Matthias
Hallo Erich,
du kannst die Prüfung (in meinem Code) auch so machen:

If wb.name Like "?.?_?.?_Fremde.xls" Then

Das "?" steht für ein beliebiges Zeichen.
Gruß Matthias
AW: Datei schon offen
15.07.2006 16:19:34
Josef
Hallo Erich!
Der Code von Mathias prüft aber nur ob die Datei in der selben Excelinstanz geöffnet ist!
Eine andere Möglichkeit wäre so.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Enum XL_FILESTATUS
  XL_UNDEFINED = -1
  XL_CLOSED
  XL_OPEN
  XL_DONTEXIST
End Enum

Public Function FileStatus(xlFile As String) As XL_FILESTATUS

On Error Resume Next

Dim File%: File = FreeFile

Err.Clear

Open xlFile For Binary Access Read Lock Read As #File
Close #File

Select Case Err.Number
  Case 0: FileStatus = XL_CLOSED
  Case 70: FileStatus = XL_OPEN
  Case 76: FileStatus = XL_DONTEXIST
  Case Else: FileStatus = XL_UNDEFINED
End Select

End Function


'Die ersten beiden Dateien werden immer mit dem Datum des aktuellen Tages gespeichert.
'Die andere ändert sich Mitte des Monats zu " 16.07_31.07_Fremde.xls

Sub test()
Dim result As Long
Dim strFile As String, strPath As String

strPath = "F:\Temp" 'Pfad auf dem die Dateien liegen ' anpassen

If Right(strPath, 1) <> "\" Then strPath = strPath & "\"

'TT.MM.JJJJ.xls
strFile = Format(Date, "dd.mm.yyyy") & ".xls"

result = FileStatus(strPath & strFile)

If result = 1 Then MsgBox strFile & " ist geöffnet!"

'TT.MM.JJJJ Reserve.xls
strFile = Format(Date, "dd.mm.yyyy") & " Reserve.xls"

result = FileStatus(strPath & strFile)

If result = 1 Then MsgBox strFile & " ist geöffnet!"

'TT.MM_TT.MM_Fremde.xls
If Day(Date) <= 15 Then
  strFile = "01." & Format(Date, "mm") & "_15." & Format(Date, "mm") & "_Fremde.xls"
Else
  strFile = "16." & Format(Date, "mm_") & Day(DateSerial(Year(Date), Month(Date) + 1, 0)) & _
    Format(Date, "\.mm") & "_Fremde.xls"
End If

result = FileStatus(strPath & strFile)

If result = 1 Then MsgBox strFile & " ist geöffnet!"

End Sub


Gruß Sepp

Anzeige
Perfekt wie immer
15.07.2006 17:24:29
Erich
Hallo Sepp und Matthias
Tausend Dank für Eure Hilfe.
Ich habe beides auf meinen Rechner ausprobiert und es klappt perfekt.
Das anpassen in der Fa. wird schon klappen.
Nochmals vielen, vielen Dank
Gruss Erich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige