Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Per function Änderungsatum einer varablen Datei auslesen
#1
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?
Antworten Top
#2
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
Antworten Top
#3
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 -
Antworten Top
#4
Hallo,

VBA bietet doch direkt (ohne shell) eine passende Funktion an:

Code:
FileDateTime(sPath & sFile)

mfg
Antworten Top
#5
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.
Antworten Top
#6
(18.12.2019, 21:39)barthi schrieb: @Kuwer
Jetzt kommt immer "Wurst wurde gegessen"

Meine Änderung ist dafür nicht verantwortlich!

Gruß Uwe
Antworten Top
#7
(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.
Antworten Top
#8
Hallo,

dann nimm Deinen geposteten Code zum Vergleich.

Gruß Uwe
Antworten Top
#9
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)
Antworten Top
#10
@kuwer
Du hast recht, hat funktioniert. Danke!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste