Registriert seit: 15.10.2016
Version(en): 2010
Ich habe eine Exceldatei. In einer Spalte sollen die jeweiligen Änderungsdaten (Tag und Uhrzeit) einer Datei angezeigt werden.
Diese Datei steht im Verzeichnis "Wurstbrote" und setzt sich aus dem Dateinamen der Spalte "F" zusammen.
Ich habe daher folgende Function:
Code:
Public Function Date_Last_Modified(Pfad As Range) As Variant
If Pfad <> "" Then
If Dir$(ThisWorkbook.Path & "\Wurstbrote\" & Pfad & ".docx") <> "" Then
Date_Last_Modified = CreateObject("Scripting.FileSystemObject"). _
GetFile(Pfad).DateLastModified
Else
Date_Last_Modified = "Wurst wurde gegessen
End If
Else
Date_Last_Modified = ""
End If
End Function
In meiner Ausgabezelle habe ich dann "=
Date_Last_Modified(F3)"
Leider kommt dann immer #WERT!
Wenn keine Datei da ist kommt, wie gewünscht, "Wurst gegessen".
Kann mir da jemand helfen?
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
vielleicht so:
Public Function Date_Last_Modified(Pfad As Range) As Variant
If Pfad <> "" Then
If Dir$(ThisWorkbook.Path & "\Wurstbrote\" & Pfad & ".docx") <> "" Then
Date_Last_Modified = CreateObject("Scripting.FileSystemObject"). _
GetFile(ThisWorkbook.Path & "\Wurstbrote\" & Pfad & ".docx").DateLastModified
Else
Date_Last_Modified = "Wurst wurde gegessen"
End If
Else
Date_Last_Modified = ""
End If
End Function
Gruß Uwe
Registriert seit: 05.11.2019
Version(en): 2010, 2019
18.12.2019, 21:05
(Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2019, 21:05 von JereMaia.)
Ich vermute der Typ für den Pfad in der Funktionssignatur ist falsch. Probier mal folgenden Code (Ich habe diesen nicht getestet):
Code:
Public Function Date_Last_Modified(Pfad As String) As string
If Pfad <> "" Then
If Dir$(ThisWorkbook.Path & "\Wurstbrote\" & Pfad & ".docx") <> "" Then
Date_Last_Modified = cstr(CreateObject("Scripting.FileSystemObject"). GetFile(Pfad).DateLastModified)
Else
Date_Last_Modified = "Wurst wurde gegessen"
End If
Else
Date_Last_Modified = ""
End If
End Function
--- Seid nett und helft einander :100: ---
--- denn die Liebe ist die größte Kraft im Universum ---
- Lest die Werke von Jakob Lorber und Gottfried Mayerhofer -
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
VBA bietet doch direkt (ohne shell) eine passende Funktion an:
Code:
FileDateTime(sPath & sFile)
mfg
Registriert seit: 15.10.2016
Version(en): 2010
18.12.2019, 21:39
(Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2019, 21:43 von barthi.)
Danke für die Müphe. Es funktioniert aber leider nicht.
@
Kuwer
Jetzt kommt immer "Wurst wurde gegessen"
@
JereMaia
Alles unverändert.
@Fennek
Ja das geht schon direkt aber da ich ja immer veränderte Dateinamen habe (Spalte F), benötige ich eine individuelle Funktion.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
(18.12.2019, 21:39)barthi schrieb: @Kuwer
Jetzt kommt immer "Wurst wurde gegessen"
Meine Änderung ist dafür nicht verantwortlich!
Gruß Uwe
Registriert seit: 15.10.2016
Version(en): 2010
(18.12.2019, 21:44)Kuwer schrieb: Meine Änderung ist dafür nicht verantwortlich!
Gruß Uwe
Die Wege des Excel sind unergründlich...:D
ISt aber leider so, wenn ich deinen Code einfüge und die Ausgabezelle aktualisiere, kommt immer "Wurst wurde gegessen". Egal ob die Datei vorhanden ist oder nicht.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
dann nimm Deinen geposteten Code zum Vergleich.
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Code:
Ich vermute der Typ für den Pfad in der Funktionssignatur ist falsch.
zuweilen geht probieren über studieren :17: Wenn man eine programmierte Funktion auf einem Arbeitsblatt verwendet übergibt man gelegentlich auch "Zellen" :100:
Barthi, nimm einfach mal ThisWorkbook.Path & "\Wurstbrote\" & Pfad & ".docx" in die Überwachung, lege einen Haltepunkt in den Code und vergleiche es mit Pfad und Name der Datei im Explorer.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 15.10.2016
Version(en): 2010
@kuwer
Du hast recht, hat funktioniert. Danke!