Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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

Problem bei selbstständiger Updatefunk.

Problem bei selbstständiger Updatefunk.
08.04.2020 14:17:49
KrisM
Hallo Forengemeinde,
ich habe eine Datei erstellt, welche eine automatische Updatefunktion erhalten soll. Die Versionsprüfung und das kopieren etc. funktionieren super. Doch ich möchte auch, dass der Nutzer natürlich sofort die neue Datei nutzt. Das Problem ist, dass beim Starten der Datei sofort ein Userform aufgerufen wird und somit die alte Datei nicht geschlossen wird, jedenfalls ist das meine Vermutung. Hat jemand einen Lösungsvorschlag?
Hier die Codes:

Function Loeschen()
Application.DisplayAlerts = False
Unload UF_Versionscheck
With ThisWorkbook
.Saved = True
.ChangeFileAccess xlReadOnly
Kill .FullName
FileCopy Pfad & "\GesprächsnotizXX.xlsm", .path & "\GesprächsnotizXX.xlsm"
path1 = .path & "\GesprächsnotizXX.xlsm"
path2 = .path & "\Gesprächsnotiz V" & tVersion & ".xlsm"
Name path1 As path2
Workbooks.Open (path2)
.Close False
End With
End Function

Die Variablen Pfad und tVersion sind als Public angegeben, da diese in mehreren Modulen usw. verwendet wird.
Danke für eure Hilfe

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei selbstständiger Updatefunk.
09.04.2020 11:45:51
fcs
Hallo Kris,
mit dem Öffnen der 2. Datei wird scheinbar die Ausführung des Makros in der 1. Datei abgebrochen bzw. die Verbindung zur Datei geht verloren.
Ich hatte erst vermutet, dass die Kill-Anweisung Probleme macht, weil die alte Datei noch geöffnet ist, aber das wird scheinbar verhindert, indem der Status auf Saved=True gestzt wird und der exklusive Zugriff gesetzt wird.
Die Gesamtfunktionalität hängt jetzt davon ab, wie und wann du prüfst, ob eine neue Version existiert.
Grundsätzlich kann man beim Öffnen der Datei prüfen, ob noch eine andere Version der Datei geöffnet ist und ggf. die andere Datei schliessen.
In dem hochgeladenen ZIP-File hab ich das mal umgesetzt. Die neue Version wird jedoch nicht mit "XX" im Dateinamen angelegt, sondern mit der neuen Versionsnummer.
https://www.herber.de/bbs/user/136565.zip
Im Wordbook_Open-Ereignismakro wird überprüft, ob eine neue Version vorhanden ist und der Name der neuen datei wird in einer Public-Variablen gespeichert. Wenn neue datei vorhanden, dann wird das "UF-Versionscheck" angezeigt - die Schaltfläche startet dann das Loeschen-Makro.
Mit dem Starten der neuen Datei wird dann die alte datei geschlossen.
Am besten startest du die Version 2 im Unterordner "neu" zunächst ohne die Makros zu aktivieren, und schaust die datei mal an.
ggf. kannst du ja Teile oder das gesamte Konzept in deine Datei einbauen.
Wenn du bei der neuen Version mit der Versionsnummer arbeiten willst, dann musst du diese einmal an alle Anwender Verteilen. Danach sollte dann die Automatik funktionieren.
LG
Franz
Anzeige
AW: Problem bei selbstständiger Updatefunk.
09.04.2020 12:06:33
KrisM
Hallo Franz,
deine Variante funktioniert. Ich denke es liegt an der Funktion, oder dem anderen Aufbau. Leider kam ich noch nicht dazu, die Originaldatei so zu verändern, dass Firmendaten raus sind. Mein Aufbau ist folgender:
- Datei wird geöffnet
- Liest eine Textdatei aus dem Netzwerk ein, in der das Changelog und die neue Version steht
- Vergleicht die Versionsnummer aus der Datei mit der eigenen
- Wenn neuere Datei vorhanden, dann soll die Updatefunktion aufgerufen werden
- Wenn nicht, wird eine andere Userform aufgerufen, in der Daten für eine Gesprächsnotiz angegeben werden und diese per Email versendet werden können.
- Bei Update wird die neue Datei aus dem Netzwerk geladen
- Die neue Datei wird geöffnet
- Die aktuelle geöffnete alte Datei wird gelöscht und geschlossen (hier hängt es)
Bei mir hängt es wohl daran, dass immer eine Userform geöffnet wird, egal ob Update vorhanden oder nicht. Ich bin davon ausgegangen, dass die Userform das schließen der ersten Datei verhindert, da der Fokus ja automatisch auf der neuen Datei liegt.
Ich versuch heute deine Variante einzuarbeiten und probier das mal aus. Wenn ich es schaffe die Originaldatei bis heute abend umzubauen, lade ich sie hoch. Aber nicht wundern, dass der Code noch nicht bereinigt ist.
Anzeige
AW: Problem bei selbstständiger Updatefunk.
09.04.2020 17:17:40
fcs
Hallo Kris,
strukturiere das Workbook_Open-Makro mal etwa wie folgt.
Dann sollte auch mit deinem vorhandenen Loeschen-Makro funktionieren.
LG
Franz
Private Sub Workbook_Open()
Dim wkb As Workbook
Dim sVergleich As String
'Anfang des Dateinamens ohne Versionsnummer
sVergleich = "Gesprächsnotiz V"
'geöffnete Vorgängerversion ggf. schliessen
For Each wkb In Application.Workbooks
If wkb.Name = Me.Name Then
'do nothing
Else
If LCase(Left(wkb.Name, Len(sVergleich))) = LCase(sVergleich) Then
wkb.Close False
End If
End If
Next
'Prüfen, ob neue Version vorhanden
If neuVorhanden = True Then
Call Updatefunktion
End If
'Start-Userform anzeigen
UF_Open.Show
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige