Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1460to1464
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
Inhaltsverzeichnis

Excel komplett mit VBA schließen und speichern

Excel komplett mit VBA schließen und speichern
26.11.2015 12:56:02
Vilen
Guten Tag zusammen,
ich habe ein Makro, welches mehrere Arbeitsmappen öffnet (wobei mit dem Öffnen dieser Arbeitsmappen ebenfalls automatisch Makros ausgeführt werden), und dann wieder schließt. Vor dem Schließen sollen die Änderungen gespeichert werden.
Nun stellt sich mir die Frage, was passieren würde, wenn der unwahrscheinliche Fall eintritt, und eine der Arbeitsmappen in diesem Moment von einem der Mitarbeiter an seinem Arbeits-PC bearbeitet wird.
Kann ich einfach mit
application.displayallerts = false
application.quit
arbeiten? Gibt es etwas, was ich beachten sollte?
Danke für die Tipps!
Vilen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel komplett mit VBA schließen und speichern
29.11.2015 18:40:52
Michael
Hi Vilen,
grundsätzlich ist es viel aufwendiger, Sachen fürs PC-Netz zu programmieren, als wenn man alleine an seinen Datein herumwurschtelt.
Ich hoffe, Du faßt es nicht als allzu gemein auf, wenn ich Dir rate, mit "Kaum Excel/VBA-Kenntnisse" die Finger davon zu lassen.
Ich selbst habe mangels Netzwerk keine Erfahrung (nur, was ich so hin und wieder lese).
Also, was passiert? Du öffnest die Datei, ein Kollege öffnet die Datei. Was heißt das? Die Daten werden von einem Datenträger (in dem Fall eben dem Netzwerk-Server) in den Arbeitsspeicher geladen, evtl. nur angesehen, ggf. aber geändert. Das eigentliche Problem tritt dann erst beim Speichern auf: welche Version von welchem Anwender soll den nun "als letzte" oder "definitive" Version für die Nachwelt erhalten bleiben?
So weit ich das überblicke, hat Excel dafür zwei Betriebsarten:
a) wenn die Datei von *einem* Anwender geöffnet wurde, ist sie für andere Anwender nur "schreibgeschützt" (also im Nur-Lese-Modus) verfügbar.
b) eine Datei kann von mehreren Anwendern gleichzeitig im "Schreibmodus" geöffnet werden.
b) ist vertrackt und sollte Dich zu intensiveren Recherchen veranlassen, nämlich dazu, wie das überhaupt geht und mit dem Ergebnis, daß man im allg. tunlichst die Finger davon lassen sollte.
Du solltest also zuallererst überprüfen, ob Du selbst die Datei mit oder ohne Schreibrechte überhaupt öffnen kannst - wenn Du keine Rechte hast, brauchst Du gar nicht erst Änderungen vorzunehmen.
Recherchiere mal: excel vba network is file used
und sieh Dir die Antworten an, u.a.:
https://support.microsoft.com/en-us/kb/291295
http://windowssecrets.com/forums/showthread.php/60664-Who-has-File-Open-(VBA-Excel-2003-Win-XP)
Der untere Link ist insofern interessant, als Du hier den Namen des Kollegen, der die Datei geöffnet hat, ermitteln kannst - daraufhin folgt der Griff zum Telefon (wenn er nicht in der Mittagspause ist, hast Du gute Chancen, anschließend die Schreibrechte zu erhalten).
Schöne Grüße,
Michael

Anzeige
AW: Excel komplett mit VBA schließen und speichern
03.12.2015 17:08:12
Vilen
Hallo Michael,
ich habe absichtlich "Kaum Excel/VBA-Kenntnisse" angegeben, damit die Antworten wirklich wie für Dummis formuliert werden, da ich manchmal echt schwer vom Begriff bin. Ich habe zwar mit Excel schon mal gearbeitet und mich mit VBA im Rahmen meines Studiums auseinander gesetzt, habe aber kaum Erfahrung mit dem Netzwerk.
Ich habe es jetzt so gelöst, dass im Falle, dass eine der Dateien in Bearbeitung ist, sie nicht vom Macro geöffnet werden soll. Mit dieser Funktion soll dies überprüft werden:
Private Function Arbeitsmappeoffen(Pfad As String) As Integer
If Dir(Pfad) = "" Then
Arbeitsmappeoffen = 2
Else
On Error GoTo ERRORHANDLER
Open Pfad For Random Access Read Lock Read Write As #1
Close #1
End If
ERRORHANDLER:
If Err = 70 Then Arbeitsmappeoffen = 1
End Function
Da die Datei mit dem Macro, welches alle anderen öffnet, speichert und wieder schließt im Autostart eingetragen werden soll, läuft es automatisch ab, sodass der Name des Kollegen, der mit einer der Arbeitsmappen arbeitet, uninteressant ist. Trotzdem, vielen Dank für Deine Antwort!
Liebe Grüße
Vilen
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige