Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
208to212
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
208to212
208to212
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Warnhinweis bei zweiter Öffnung...

Warnhinweis bei zweiter Öffnung...
27.01.2003 17:14:36
Jakob Kehlringer
Hallo.
Ich habe dieses Thema bereits am 24.01.2003/07:28:37 gepostet und von "Steffen D" eine vielversprechende Antwort erhalten.

Ich möchte hiermit nochmal, vor allem an "Steffen D", eine Nachfrage stellen, da ich anscheinend für die richtige Umsetzung des Lösungsvorschlages von "Steffen D" nicht genug VBA-Kenntnisse besitze.

Mein Anliegen:
Ich möchte eine zweite Öffnung einer Excel-Datei in einem Netzwerk beim Öffnen mit einem Hinweis versehen. Dieser Hinweis sollte nach Möglichkeit von selbst erscheinen, d.h. ein VBA-Makro soll gleichzeitig mit dem Öffnen-Befehl gestarte werden.

Der Lösungsvorschlag von "Steffen D":
...mit dem Makro DateiIstFrei kannst du überprüfen ob die Datei bereits wo anders geöffnet ist:

Sub test()
If Not DateiIstFrei("C:\Mappe1.xls") Then
MsgBox "Datei wird gerade benutzt!"
'weitere Anweisungen
End If
End Sub

Function DateiIstFrei(ByVal sDateiname As String) As Boolean
Dim hFile As Integer
On Error Resume Next
hFile = FreeFile()
Open sDateiname For Random Access Read Lock Read Write As #hFile
If Err Then
DateiIstFrei = False
Else
DateiIstFrei = True
End If
Close #hFile
End Function

das andere makro ("test") zeigt nur wie man das andere makro aufrufen muss...
d.h. wenn das Makro DateiIstFrei True zurückgibt, dann ist die Datei nirgendwo offen, bei False wird die Datei bereits von jemandem benutzt...

Meine Nachfrage:
Wie genau sollte das Makro lauten, dass sich automatisch beim Öffnen mit ausführt, wo ist das Makro "Function DateiIstFrei...."
zu platzieren und anzuwenden.

Für nochmalige Hilfe bin ich sehr dankbar.

(P.S. War ab Freitag bis heute unterwegs, deshalb konnte ich erst heute den Vorschlag studieren. Da das Posting nun schon so weit zurückliegt, hielt ich es für besser gleich neu zu posten.)


15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Warnhinweis bei zweiter Öffnung...
27.01.2003 17:25:40
Hans W. Hofmann

Also so wie ich das sehe bist DU auf dem Holzweg.
Das Makro kann von einer ANDEREN Datei bestimmen, ob sie in Benutzung ist. Von der Datei in der das Makro steht ist das Programm unsinnig - weil wenn es zur Aktion kommt ist die Datei in Benutzung, dann musst Du nicht mehr fragen...


Gruß HW

Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 09:37:45
Jakob Kehlringer

Hallo Hans,
lass mich bitte nochmal erklären.
Es handelt sich um ein NT-Netzwerk mit mehr als 50 Rechnern.
Ich stelle eine Exceldatei ins Netz mit vollen Rechten für alle.
In diese Excel-Datei tragen etliche Anwender immer wieder Daten nach (für eine Nachkalkulation). Und nun der Praxisfall:
Ein User öffnet die Datei ganz normal, er braucht auch keinen speziellen Hinweis zu bekommen, um neue Daten darin einzutragen.
Noch während die Datei offen ist, möchte ein weiterer User die Datei öffnen, was er ja auch kann, aber die Datei ist nun natürlich "Schreibgeschützt". Leider übersehen viele immer wieder diesen kleinen Hinweis in der Kopfleiste und können abschließend ihre neuen Einträge nicht zurückspeichern.
Deshalb wollte ich, dass das zweite und jedes weitere Öffnen der selben Datei in einem Netzwerk automatisch mit einem Warnhinweis groß und auffällig z.B. MsgBox "ACHTUNG Diese Datei ist bereits in Benutzung. Speichern nicht möglich" versehen wird.
D.h. Beim Öffnen der Datei soll ein automatisch ausführtes Makro abfragen, ob es die erste Öffnung ist, wenn ja, dann kein Hinweis, wenn nein, also eine zweite Öffnung, dann soll der vorab genannte Hinweis erscheinen.

Ist das möglich??



Anzeige
Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 10:15:11
Hans W. Hofmann

Du mußt mir das nicht erklären.
Du mußt das aufnehmen und durchdenken, was ich sage, was Fakt ist. Nochmal:
Wenn ein User Deine Datei _öffnet_ und dann Dein (Auto_open) Makro started, der nachschaut, ob die Datei offen ist, was bekommt der wohl für eine Antwort?

Zum weitern, wenn User2 eine (vom User1) geöffnete Datei öffnet, dann bekommt er ganz automatisch einen Hinweis, daß die Datei in Bearbeitung ist - da muß nix dazu programmiert werden? Wenn ein DAU dann die Datei trotzdem (schreibgeschützt) öffnet und Du das verhindern willst, mußt Du ein Addin für Deine DAUs schreiben, das das Datei-Öffnen überwacht und für den User die Entscheidung trifft, so etwa...


Gruß HW

Anzeige
Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 11:01:30
Jakob Kehlringer

Danke!!!!!
Ich habe genau das was ich suchte gefunden unter:
"Prüfung, ob eine Datei im Netz bereits geöffnet ist"

Hier der ganze Auszug:
******************************************************
Betrifft:
Prüfung, ob eine Datei im Netz bereits geöffnet ist

Problem:
Es soll festgestellt werden, ob auf eine Netzwerkdatei von einem anderen Anwender zugegriffen wird.

Lösung:
Den nachstehenden Code in ein Standardmodul eingeben, einer Schaltfläche zuweisen und starten.

StandardModule: Modul1

Sub TestFileOpen()
Dim iOpen As Integer
Dim sFile As String
sFile = InputBox("Path and Filename:", , "c:\test\test.xls")
If sFile = "" Then Exit Sub
iOpen = TestOpen(sFile)
Select Case iOpen
Case 0: MsgBox "Datei " & sFile & " ist frei"
Case 1: MsgBox "Datei " & sFile & " ist geöffnet"
Case 2: MsgBox "Datei " & sFile & " wurde nicht gefunden"
End Select
End Sub

Private Function TestOpen(sPath As String) As Integer
If Dir(sPath) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sPath For Random Access Read Lock Read Write As #1
Close #1
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function
*****************************************

Noch eine Nachfrage von mir:
Bei Lösung steht:
...einer Schaltfläche zuweisen und starten.

Könnte man das auch so gestalten, dass das Makro automatisch mit dem Öffnen startet?
(Wenn jemand den Hinweis "Schreibschutz" übersieht, vergißt er sicherlich auch vorher die Schaltfläche zu klicken. Deshalb möchte ich es so sicher wie möglich gestalten.)

Danke für weitere Infos...

Gruß Jakob




Anzeige
Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 11:13:21
Hajo_Zi

Hallo Jakob

ich bin nun nicht in einem Netz. Kopiere den gesamten Code unter VBA in DieseArbeitsmappe und den Code von Sub TestFileOpen() unter Private Sub Workbook_Open()

Mit dem sofortigen schließen mußt Du mal Testen an welcher Stelle dieser oder ähnlicher Code eingabaut werden muß
ThisWorkbook.Close False

Gruß hajo

Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 11:29:14
Jakob Kehlringer

Hallo,
ich glaube wir reden einander vorbei....
Wenn ein User meine Datei öffnet, sollte ein Makro von selbst nachprüfen, ob die Datei irgendwo im Netz bereits auf ist und ihm dann melden, dass die Datei bereits auf ist und er nicht zurückspeichern kann.
Zum Weiteren: Ein solcher Hinweis sollte von Windows NT eigentlich erfolgen, kommt aber meist nicht!
Und noch eine Info: Die Personen, die in diese Excel-Dateien Daten eintragen sollen, sind Mitarbeiter in produzierenden Abteilungen, aber keine geübten Excel-Speziallisten, deshalb diese zusätzliche Sicherheitsvorkehrung.

mfg


Anzeige
Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 11:35:35
Jakob Kehlringer

Danke...
ich werde es testen, kann aber ein bischen dauern, da ich momentan eine andere Arbeit erledigen muß.
Ich hoffe spätestens morgen nachmittag Erfolge melden zu können.

Gruß Jakob

Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 11:46:21
Martin Beck

Hallo Jakob,

ohne es getestet zu haben, auch hier gelten m.E. die logischen Einwände von HWH. Hinzu kommt noch, daß der DAU den Pfad der Datei eingeben muß, auf die sich die Prüfung beziehen soll (also die gerade geöffnete). Das erscheint mir doch etwas unpraktikabel.

Anderer Ansatz: Wenn die Datei schon geöffnet ist, kann der DAU sie nur schreibgeschützt öffnen. Diese Eigenschaft kann man in einem Workbook_Open-Makro beim Öffnen der Datei abfragen und in Abhängigkeit vom Ergebnis verschieden reagieren. Beispiel:

Probleme (gilt auch für die anderen Vorschläge):

1. Der DAU muß "Makros aktivieren" bestätigen.

2. Wenn die Messagebox erscheint, darf der DAU den weiteren Makroablauf nicht mit STRG-PAUSE abbrechen. Letzteres könnte man unterbinden, indem man auf die Messagebox verzichtet und die Datei automatisch schließt.

Gruß
Martin Beck

Anzeige
Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 13:18:47
Jakob Kehlringer

Hallo Martin,
ich habe das Private Sub - Makro bei einer Testdatei als VBA-Modul1 angelegt.
Beim Öffnen auf z.B. Rechner-1 kommt kein Hinweis; o.k.
Beim Öffnen auf einem weiteren, z.B. Rechner-2 kommt leider auch kein Hinweis. Warum?


P.S. Was bitte bedeutet das Kürzel: DAU ?


Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 14:19:05
Martin Beck

Hallo Jakob,

Du mußt den Code unter "DieseArbeitsmappe" abspeichern, nicht in einem "Normalen" Modul.

DAU = dümmster anzunehmender User

GRuß
Martin Beck

Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 14:36:49
Hans W. Hofmann

Hallo Martin,

ein guter Ansatz! DIE Kuh ist von Eis :-)
Jetzt das ganze in ein Addin mit einem Eventhook auf OpenWorkbook und auch die neue Kuh "Makro deaktivieren" wäre versenkt, oder?
Da haben wir dann mal eine ganz andere Kuh:
Wie bekommt man das Addin auf die Rechner aller Beteiligten :-?


Gruß HW

Anzeige
Re: Warnhinweis bei zweiter Öffnung...
28.01.2003 15:40:44
Hans W. Hofmann

Hallo Martin,

ein guter Ansatz! DIE Kuh ist von Eis :-)
Jetzt das ganze in ein Addin mit einem Eventhook auf OpenWorkbook und auch die neue Kuh "Makro deaktivieren" wäre versenkt, oder?
Da haben wir dann mal eine ganz andere Kuh:
Wie bekommt man das Addin auf die Rechner aller Beteiligten :-?


Gruß HW

Re: Warnhinweis bei zweiter Öffnung...
29.01.2003 11:08:55
Jakob Kehlringer

Hallo an Alle!
Abschluß-Info: Meine gewünschte auffällige Anzeige funktioniert.

Vielen Dank für Eure rege Mithilfe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige