Frage: Prüfen, ob externe Datei geändert wurde

Bild

Betrifft: Frage: Prüfen, ob externe Datei geändert wurde
von: Christian Schmitz
Geschrieben am: 08.09.2015 08:27:03

Guten Morgen zusammen.
Im Netzwerk können verschiedene Leute (immer nur einer auf einmal) eine Master-Exceldatei bearbeiten.
Es haben aber alle Nutzer eine lokale Sekundär-Exceldatei geöffnet.
Nun bin ich auf der Suche nach einem Makro, welches prüft, ob die Master-Exceldatei von jemandem geändert wurde (NICHT nur geöffnet, sondern auch geändert und gespeichert!).
Sollte dass der Fall sein, müsste in der Sekundär-Exceldatei in einer Zelle ein Text wie "Masterdatei geändert, bitte prüfen" angezeigt werden.
Hat jemand eine Idee?
Gruß
Christian

Bild

Betrifft: AW: Frage: Prüfen, ob externe Datei geändert wurde
von: Martin
Geschrieben am: 08.09.2015 09:14:04
Hallo Christian,
es gibt hier ein Archiv, in dem fast alle Fragen schon beantwortet stehen:
https://www.herber.de/forum/archiv/288to292/291112_Letzte_Aenderung_anzeigen.html
Viele Grüße
Martin

Bild

Betrifft: AW: Frage: Prüfen, ob externe Datei geändert wurde
von: fcs
Geschrieben am: 08.09.2015 09:43:02
Hallo Christian,
das könntest du z.B. mit per OnTime gestartetem Makro in den Sekundär-Dateien umseten. Dieses Makro ruft sich in regelmäßigen Abständen immer wieder neu auf. Und fragt das Speicherdatum/Zeit ab.
Altes und neues Speicherdatum (in meinem Beispiel in A2 und B2 vergleichst du dann per Formel/bedingter Formatierung, um einen Hinweis zu anzuzeigen.
Gruß
Franz

'Makros in einem allgemeinen Modul der Sekundär-Dateien
Option Explicit
Public datNextStart As Date
Sub prcOnTimeStart()
  Call prcOnTimeMakro
End Sub
Sub prcOnTimeStop()
  On Error Resume Next
  Application.OnTime EarliestTime:=datNextStart, Procedure:="prcOnTimeMakro", schedule:=False
End Sub
Sub prcOnTimeMakro()
  'der nachfolgende Teil muss individuell angepasst werden
  Dim oldValue As Date
  Dim NewDate As Date
  With ThisWorkbook.Worksheets(1) 'Nr./Tabellenname anpassen
        oldValue = .Range("A2").Value
        NewDate = VBA.FileDateTime(Pathname:="Y:\Test\Masterdatei.xlsx")
        If NewDate > oldValue Then
           .Range("B2").Value = NewDate
        End If
  End With
  
  datNextStart = Now + TimeSerial(Hour:=0, Minute:=0, Second:=30) 'minwert = 1 Sekunde
  Application.OnTime EarliestTime:=datNextStart, Procedure:="prcOnTimeMakro"
End Sub
Sub prcResetOlddate()
  'Dieses Makro ausführen im das Vergleichsdatum neu zu setzen
  With ThisWorkbook.Worksheets(1) 'Nr./Tabellenname anpassen
        .Range("A2").Value = Now
  End With
End Sub
'Die folgenden beiden Makros einfügen unter "DieseArbeitsmapee" / "ThisWorkbook der Dekundä _
rdateien
'Beendet vor dem Schließen der Datei die Ausführung des OnTime-Makros
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Call prcOnTimeStop
End Sub
'Startet beim Öffnen der Datei automatisch die Ausführung des OnTime-Makros
Private Sub Workbook_Open()
  Call prcOnTimeStart
End Sub


Bild

Betrifft: AW: Frage: Prüfen, ob externe Datei geändert wurde
von: Christian Schmitz
Geschrieben am: 08.09.2015 13:17:33
Hallo Franz, hallo Martin,
ich schau mir dass nun an. Vielen Dank eich beiden!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Frage: Prüfen, ob externe Datei geändert wurde"