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

Letztmaliges Öffnen einer Datei feststellen

Letztmaliges Öffnen einer Datei feststellen
31.03.2017 22:22:48
Florian
Hallo,
Ich habe ein kleines Problem mit VBA. Ich lasse per VBA Ordnerstrukturen einlesen, die mir dann in einer Tabelle angezeigt werden (also bspw. "C:\Users\fdamm"). Danach kommt eine Abfrage, ob die Ordner leer sind, die Möglichkeit die Ordner zu löschen und ein Hyperlink zu den Ordnern.
In jedem Ordner (sofern nicht leer) befinden sich unterschiedlich viele Dateien verschiedener Dateitypen. Ich wollte mir nun in zwei Spalten anzeigen lassen, wann letztmals in diesem Ordner eine Datei geöffnet und geändert wurde. Ich habe versucht, es anhand der Ordnerinformationen herauszulesen, allerdings wird mir da nur das Erstellungsdatum des Ordners angezeigt. Mein Code war folgender (langes rumprobieren...ohne Erfolg):
Sub last_access_modified()
Dim lngindex As Long
Dim pfad2 As String
Dim folder As Object
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
For lngindex = 10 To ActiveWorkbook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
pfad2 = Cells(lngindex, 1)
Set folder = fs.Getfolder(pfad2)
Cells(lngindex, 5) = folder.DateLastmodified
Cells(lngindex, 6) = folder.DateLastaccessed
Next lngindex
End Sub

Weiter bin ich leider echt nicht gekommen. Ich war nicht in der Lage es auf die Dateien in den Ordnern umzuändern. Was ich bräuchte wäre in etwa so (in Spalte A ist ja der komplette Ordnerpfad gegeben):
1) Gebe in Spalte E das Datum zurück, an dem das letzte Mal in diesem Ordner eine x-beliebige Datei geändert wurde.
2) Gebe in Spalte F das Datum zurück, an dem das letzte Mal in diesem Ordner eine x-beliebige Datei geöffnet wurde.
Im Anhang ist eine Beispieldatei: https://www.herber.de/bbs/user/112549.xlsx
Vielen Dank schon mal vorab!
Mit freundlichen Grüßen,
Florian

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

Betreff
Datum
Anwender
Anzeige
AW: Letztmaliges Öffnen einer Datei feststellen
01.04.2017 10:24:02
fcs
Hallo Florian,
du muss eine Prüfung auf Anzahl von Dateien durchführen plus Prüfung auf Anzahl Unter-Ordner (Sicherstellen, dass Ordner tatsächlich leer ist.) und dann in einer Schleife die Dateien auf Datum von Änderung/Zugriff prüfen.
Hier
On Error Resume Next
zu benutzen liefert ggf. falsche Ergebnisse. Hier muss man gezielt die Fehler-Nummer prüfen
LG
Franz
Sub last_access_modified()
Dim lngindex As Long
Dim pfad2 As String
Dim folder As Object
Dim oFile As Variant
Dim fs As Object
Dim datModified As Date
Dim datAccessed As Date
Dim datModifiedLast As Date
Dim datAccessedLast As Date
Dim sFileAccessed As String
Dim sFileModified As String
Set fs = CreateObject("Scripting.FileSystemObject")
On Error GoTo Fehler
For lngindex = 10 To ActiveWorkbook.ActiveSheet.Cells(Rows.Count, _
1).End(xlUp).Row
Cells(lngindex, 2).ClearContents
Cells(lngindex, 5).ClearContents
Cells(lngindex, 6).ClearContents
pfad2 = Cells(lngindex, 1)
datModifiedLast = 0
datAccessedLast = 0
sFileModified = ""
sFileAccessed = ""
Set folder = Nothing
Set folder = fs.Getfolder(pfad2)
If folder.Files.Count = 0 Then
If folder.subfolders.Count = 0 Then
Cells(lngindex, 2) = "YES"
Cells(lngindex, 5).ClearContents
Cells(lngindex, 6).ClearContents
Else
Cells(lngindex, 2) = "NO-subfolder"
Cells(lngindex, 5).ClearContents
Cells(lngindex, 6).ClearContents
End If
Else
For Each oFile In folder.Files
With Application.WorksheetFunction
datModified = oFile.DateLastmodified
If datModified > datModifiedLast Then
datModifiedLast = datModified
sFileModified = oFile.Name
End If
datAccessed = oFile.DateLastaccessed
If datAccessed > datAccessedLast Then
datAccessedLast = datAccessed
sFileAccessed = oFile.Name
End If
End With
Next oFile
Cells(lngindex, 2) = "NO"
Cells(lngindex, 5) = datModifiedLast
Cells(lngindex, 6) = datAccessedLast
'        Cells(lngindex, 7) = sFileModified
'        Cells(lngindex, 8) = sFileAccessed
End If
Next_Pfad:
Next lngindex
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case 76 'Pfad nicht gefunden
Cells(lngindex, 2) = .Description
Resume Next_Pfad
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Letztmaliges Öffnen einer Datei feststellen
05.04.2017 01:12:52
Florian
Hallo Hajo, hallo Franz
Vielen Dank für eure Hilfe und tausendmal Entschuldigung für meine späte Rückmeldung. Mich hatte eine Grippe übel erwischt.
Eure beiden Lösungen funktionieren. Hajo’s Datei zeigt mir eine sehr gute Möglichkeit, wie man das Problem lösen kann. Der Code, den Franz geschrieben hat, bezieht sich direkt auf mein spezifisches Problem und ich kann ihn quasi 1:1 in meine Excel-Datei kopieren. Danke dafür!
Falls ich beim Arbeiten mit dem Code auf Probleme stoße, melde ich mich nochmal. Ansonsten kann das Problem als gelöst betrachtet werden.
Vielen Dank für eure Hilfe!
VG Florian
Anzeige

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige