Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1700to1704
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

Datei beim öffnen auf neue Version prüfen + kopier

Datei beim öffnen auf neue Version prüfen + kopier
25.07.2019 09:06:33
Sebastian
Hallo Excel-Spezilisten,
Ich habe Mal eine Frage an euch. Folgendes Szenario:
- Ich habe eine Tabelle auf meinem Rechner
Beim öffnen möchte ich gerne prüfen ob eine neue Version auf einem Netzlaufwerk zur Verfügung steht und die Datei auf meinem PC damit ersetzen. Kann man das realisieren?
Also 
1. test.xlsm am PC öffnen
2. Jetzt prüfen ob eine test.xlsm neueren Datums auf dem netzLaufwerk ist
3. Datei vom Netzlaufwerk auf den PC kopieren und ersetzen
4. Die bereits geöffneter test.xlsm schließen und die neue starten.
Wird so nicht gehen oder ? 
Hat jemand eine Idee?
Vielen dank für Hilfe 
Gruß
Sebastian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Versionsprüfung
25.07.2019 09:40:40
Marco
Hallo Sebastian,
ich kann Dir jetzt zwar keine Lösung auf dem Silbertablett liefern, aber paar Lösungsansätze geben.
1. Ganz wichtig: Du kannst keine Datei mit einer anderen überschreiben die Du gerade noch geöffnet hast. Daher würde es meiner Meinung nach eher Sinn machen diese Prüfung auszulagern. Evtl. Als ein Makro in Deiner PERSONAL.XLSB (Bei Google gibt es alle Infos dazu).
2. DateValue(file.DateLastModified) und TimeValue(file.DateLastModified)
Hiermit Fragst Du Datum und Zeit der letzten Änderung ab.
VG
Marco
AW: Versionsprüfung
25.07.2019 10:40:04
Sebastian
OK das habe ich mir s bin fast gedacht, vermutlich ist es besser die Sache extern über ein VB Script zu lösen, das geht aber den Umweg wollte ich nicht gehen.. bedeutet ja eine extra Datei :(
Anzeige
AW: Versionsprüfung
25.07.2019 10:40:06
Sebastian
OK das habe ich mir s bin fast gedacht, vermutlich ist es besser die Sache extern über ein VB Script zu lösen, das geht aber den Umweg wollte ich nicht gehen.. bedeutet ja eine extra Datei :(
AW: Versionsprüfung
25.07.2019 10:40:14
Sebastian
OK das habe ich mir s bin fast gedacht, vermutlich ist es besser die Sache extern über ein VB Script zu lösen, das geht aber den Umweg wollte ich nicht gehen.. bedeutet ja eine extra Datei :(
AW: Datei beim öffnen auf neue Version prüfen + kopier
25.07.2019 14:16:36
UweD
Hallo
evtl mit diesem Trick
  • Nach dem Versionsvergleich wird die neuere Datei in das lokale Verzeichnis kopiert "N_ Datei"
  • es wird eine Dos Batchdatei erzeugt, mit Wartezyklen
  • Die aktuelle Alte Datei wird geschlossen
  • Im Hintergrund wartet die Batch-Datei und führt dann folgendes aus

    • löscht die alte Datei und wartet 2 Sek.
    • benennt die Serverkopie um in den Alten Namen und wartet 2 Sek
    • startet die nun aktuellere Datei neu und wartet 2 Sek
    • schließt die Batchdatei

    Dieses Makro muss aber in der Lokalen Datei und der Serverdatei vorhanden sein:
    Modul1
    Option Explicit 
     
    Sub Versioncheck() 
        Dim Pfad1 As String, Pfad2 As String 
        Dim fso As Object, DieseDatei As Object, ServerDatei As Object 
        Dim Dateiname As String, Batch As String, Tmp, Warten As Integer 
             
         
        Pfad1 = "C:\Temp\" '             Lokales Verzeichnis ( mit \ am Ende) 
        Pfad2 = "X:\Temp\Test\" '        Server Verzeichnis ( mit \ am Ende) 
        Warten = 2 '                     Wartezeit für Batch; ggf verlängern 
         
         
         
        Batch = "MakeNew.bat" 
         
        Dateiname = ActiveWorkbook.Name 
         
        Set fso = CreateObject("Scripting.FileSystemObject") 
        Set DieseDatei = fso.Getfile(Pfad1 & Dateiname) 
        Set ServerDatei = fso.Getfile(Pfad2 & Dateiname) 
          
        If ServerDatei.DateLastModified > DieseDatei.DateLastModified Then 
            'Infobox 
            Tmp = MsgBox("Serverdatei ist neuer" & vbLf & vbLf & _
                "Datei wird beendet, kopiert und neu gestartet", _
                vbExclamation + vbOKOnly, "Warten auf Neustart") 
             
            'Datei kopieren und dabei umbenennen 
            FileCopy Pfad2 & Dateiname, Pfad1 & "N_" & Dateiname 
             
            'Batch erzeugen 
            Open Pfad1 & Batch For Output As #1 
            Print #1, "CD " & Pfad1 '                            ins aktuelle Verzeichnis wechseln 
            Print #1, "timeout " & Warten '                      Wartezeit 
            Print #1, "del " & Dateiname '                       alte Datei löschen 
            Print #1, "timeout " & Warten '                      Wartezeit 
            Print #1, "ren N_" & Dateiname & " " & Dateiname '   kopierte Datei umbenennen 
            Print #1, Dateiname '                                neue Datei öffnen 
            Print #1, "timeout " & Warten '                      Wartezeit 
            Print #1, "Exit" '                                   CMD Fenster schließen 
            Close #1 
             
            'Batch ausführen 
            Tmp = Shell(Pfad1 & Batch, vbNormalFocus) 
             
            'Diese Datei schließen 
            ThisWorkbook.Close False 
             
            'Die Ausführung der Batchdatei wartet nun im Hintergrund, 
             
        Else 
            MsgBox "Datei aktuell" 
        End If 
    End Sub 
    
    LG UweD
  • Anzeige

    52 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige