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.

Excel vba: Dateiliste auswerten
#1
Smile 
Hallo zusammen,
das Wochenende naht und wieder gibt es einige Excel-Problemchen zu lösen  Exclamation

Ich habe eine Tabelle in der ich Arbeitsmappen die ich für den tägliche Nutzung aufgelistet habe.
Bei Doppelklick auf die Zelle öffnet sich die jeweilige Arbeitsmappe - so weit so gut.
Hier gibt es ein super Beispiel - Datei-Schnellstarter - von Link wegen Werbung entfernt

Was ich jetzt benötige ist die Möglichkeit dass per vba beim öffnen der Mappe von allen Einträgen das Erstelldatum, das letzte Speicherdatum und die Dateigröße in die benachbarten Zellen eingetragen werden.
Ist so etwas per vba machbar und reicht dazu nur der Dateiname in einer Zelle oder benötigt man den kompletten Pfad mit Dateiname.

Vielleicht könnt Ihr mir da mal wieder weiterhelfen?
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#2
Hallo Erich, :19:

hier mal das Prinzip (eine Möglichkeit): :21:

Alle Dateien eines Ordners - Optional mit Unterordner...

Du musst das natürlich auf Deine Gegebenheiten anpassen. Exclamation
________
Servus
Case
[-] Folgende(r) 2 Nutzer sagen Danke an Case für diesen Beitrag:
  • sharky51, Rabe
Antworten Top
#3
Hallo Ralf,

in einem beliebigen Ordner funktioniert es, im Ordner C:\Temp\ macht es bei mir nix, obwohl da Dateien drin liegen.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • sharky51
Antworten Top
#4
Hallo Ralf, :19:

schon mit F8 im Einzelschritt durch den Code gegangen? :21:

Da müsstest Du eigentlich sehen, wo das Problem ist. Angel
________
Servus
Case
Antworten Top
#5
Hallo ihr Beiden,

erstmal vielen Dank für Eure Rückmeldung. Und sorry für das einfügen von diesem Link!
Vielleicht habe ich mein Problem nicht genau genug beschrieben.

Ich möchte nicht die Daten von einem Ordner/Unterordner komplett auslesen, sondern nur die Daten von bereits aufgelisteten Dateien in einem Arbeitsblatt.
Die aufgelisteten Dateien können auch in unterschiedlichen Ordnern gespeichert sein.
Gibt es da eine Möglichkeit?
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#6
Hi Ralf,

ok, gefunden. Peinlich!

Gruß Ralf
Antworten Top
#7
Hallo Erich, :19:

doch, Du hast das ausführlich genug beschrieben. Du sollst das ja auch auf deine Bedürfnisse anpassen. Du musst in der "FollowHyperlink Methode" die entsprechenden Befehle einbauen. Bekommst Du das nicht hin?
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • sharky51
Antworten Top
#8
Hallo Case (Ralf),

leider sind meine Kenntnisse in vba-Programmierung nicht sonderlich berauschend.
D.H. ich weiß nicht wo ich da anfangen soll.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#9
Hallo Erich, :19:

habe das mal so konzipiert, dass es per "Rechtsklick" funktioniert. Kann man aber auch in deinen Code für den Doppelklick legen. :21:

Code gehört in den Codebereich des Tabellenblattes welches die Dateinamen enthält:


Code:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Call Main(Target.Text, Target.Address): Cancel = True
End Sub

Und folgender Code in ein Modul:


Code:
Option Explicit
Sub Main(strLink As String, strAddress As String)
    Dim objFile As Object
    Dim objFSO As Object
    Dim lngCalc As Long
    On Error GoTo Fin
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        lngCalc = .Calculation
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.getfile(strLink)
    Range(strAddress).Offset(, 1).Value = objFile.DateLastModified
    Range(strAddress).Offset(, 2).Value = objFile.DateCreated
    Range(strAddress).Offset(, 3).Value = objFile.DateLastAccessed
    Range(strAddress).Offset(, 4).Value = objFile.Size
Fin:
    Set objFile = Nothing
    Set objFSO = Nothing
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = lngCalc
        .DisplayAlerts = True
    End With
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & " " & Err.Description
End Sub

Das funktioniert nur, wenn in der Zelle Pfad- und Dateiname steht - sonst musst Du halt anpassen.
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • sharky51
Antworten Top
#10
Hallo Ralf,

das ist ja cool und funktioniert super. Vielen Dank!

Ist es noch möglich dass außer mit dem Rechtsklick zusätzlich gleich nach öffnen der Datei die Pfadangaben in der Spalte "A" bis zur letzten Zeile durchlaufen und alle Angaben aktualisiert werden?
Also automatisch alle gewünschten Daten aktualisiert werden.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top


Gehe zu:


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