Excel komplett mit VBA schließen und speichern

Bild

Betrifft: Excel komplett mit VBA schließen und speichern
von: Vilen
Geschrieben am: 26.11.2015 12:56:02

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

Bild

Betrifft: AW: Excel komplett mit VBA schließen und speichern
von: Michael
Geschrieben am: 29.11.2015 18:40:52
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

Bild

Betrifft: AW: Excel komplett mit VBA schließen und speichern
von: Vilen
Geschrieben am: 03.12.2015 17:08:12
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Excel komplett mit VBA schließen und speichern"