Clever-Excel-Forum

Normale Version: Datei-Eigenschaften einer eingebundenen Datei in einer Zelle anzeigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
Ich möchte nicht als doppel Poster bezeichnet werden, aber in einem anderen Forum konnte mir nicht geholfen werden.
Ist es möglich, die Eigenschaften(Größe der Datei in kb) einer eingebetteten externen Datei als Objekt in einer Zelle an zu zeigen?
Ich habe mal ein Beispiel angehängt. Die Eigenschaft der Wav-Dateien im Beispiel, da möchte ich die Größe in einer Zelle daneben anzeigen lassen.
Ich hoffe es verständlich erklärt zu haben.

Gruß Hicki


Ps.: hier der Link zum anderen Forum:  https://www.herber.de/forum/archiv/1808t...809960.htm
Hi,

sei bitte so nett und verlinke die beiden Themen. Dann können sich die Helfer im jeweiligen Forum über den Stand informieren.
Hallöchen,

so einfach geht das nicht. Du müsstest z.B. das Ole-Objekt extrahieren und die Größe feststellen. Ich habe Dir hier mal einen code angepasst.

Code:
Option Explicit

Sub ExtractOle()
'Variablendeklarationen
Dim LResult&, iCnt% 'Long / Integer
Dim TmpFile, strPath$, strfile$ 'Variant / String
Dim FSO As Object, oApp As Object 'Object
'Filesystemobjekt und Shell Objekt setzen
Set FSO = CreateObject("scripting.filesystemobject")
Set oApp = CreateObject("Shell.Application")
'Temp-Pfad ermitteln
strPath = IIf(Environ$("tmp") <> "", Environ$("tmp"), Environ$("temp")) & "\"
'Unterordner TMP erstellen
MkDir strPath & "TMP"
'Temp-Filename bilden
TmpFile = strPath & "oleObj.zip"
'Kopie der Datei als zip speicheren
ActiveWorkbook.SaveCopyAs TmpFile
'Schleife ueber alle items im zip
For iCnt = 1 To oApp.Namespace(TmpFile).items.Count
  'OleObject-File in TMP-Ordner kopieren
  oApp.Namespace(strPath & "TMP").CopyHere oApp.Namespace(TmpFile).items.Item("xl\embeddings\oleObject" & iCnt & ".bin")
  'Pfad und Filename des Ole-Objekts
  strfile = strPath & "\TMP\oleObject" & iCnt & ".bin"
  'wenn Dir nix ergibt, dann Schleife verlassen
  If Len(Dir(strfile)) = 0 Then Exit For
  'Dateigroesse ermitteln
  LResult = FileLen(strfile)
  'Dateigroesse in aktive Zelle eintragen. Bei mehreren Files untereinander
  ActiveCell.Offset(iCnt - 1).Value = LResult
'Ende Schleife ueber alle items im zip
Next
'Ordner TMP loeschen
FSO.deletefolder strPath & "TMP"
End Sub
Vielen Dank,

genau das habe ich gesucht.

Gruß Hicki
Hallo

mit diesem kleinen Programm kannst du einen ganzen Ordner auflisten. Mit Dateilaenge und Datum. Wenn du genaue Dateieigenschaften haben willst gibt es einen Code von Nepumuk, mit dem man bis zu 300 Eigenschaften auflisten kann.
[
Bild bitte so als Datei hochladen: Klick mich!
]

mfg Gast 123

Code:
'simpel Makro für Ordner auflisten
'mit File-Len und Speicher Datum

Sub OrdnerEinlesen()
    Dim sFile As String, sPath As String
    Dim iRow As Integer, sPattern As String
   
   'Hier gibst Du Deinen Pfand zum gewünschten Verzeichnis an
    sPath = "E:\Excel 97-2003"
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
   
    Range("A3:F500").Clear
   
    iRow = 3
    sPattern = "*.*"
    sFile = Dir(sPath & sPattern)
   
    On Error Resume Next
    Do Until sFile = ""
       Cells(iRow, 2).Value = iRow
       Cells(iRow, 3).Value = sFile
       Cells(iRow, 4).Value = FileLen(sPath & sFile)
       Cells(iRow, 5).Value = FileDateTime(sPath & sFile)
       iRow = iRow + 1
       sFile = Dir()
    Loop
End Sub

https://www.herber.de/forum/archiv/1800t...lesen.html
Hallo Andre,

eine Frage habe ich noch. Die Ausgabe der Größe ist doch in Byte. Wenn ich die Eigenschaften der Datei aufrufe, stimmen die Werte nicht überein.
Wie so ist das so?

siehe Bilder unten:







Vielen Dank,

aber das geht aber nicht mit eingebetteten Objektdateien. Oder?

Gruß Hicki
Hallo,

Du musst das mit der extrahierten Datei in %Appdata%\Local\Temp vergleichen
Hallo,

ich habe nichts geändert und es kommen diese Fehlermeldung.
Bilder und Datei siehe Anhang 

Gruß Hicki
Hallo,

ich konnte das Problem selbst lösen.
Der %Appdata%\Local\Tmp Ordner wurde nicht gelöscht. Ich habe ihn manuell gelöscht und alles war schick.

Durch die Komprimierung der Dateien bekommt man nicht die richtigen Dateigrößen-Werte, so wie die originalen Dateien sind.
Kann man dieses noch ändern?

Gruß Hicki
Hallöchen,

dann musst Du die Datei mit einem Makro einfügen und dabei die Größe ermitteln.
Du kannst auch die Exceldatei manuell in zip umbenennen und reinschauen. Da wirst Du auch schon sehen, dass die unkomprimierte Größe etwas unterschiedlich zum Original ist.
Du kannst auch die zip extrahieren und die extrahierte bin in wav umbenennen und schauen, ob da noch was trällert Smile. Eventuell erkennst Du an der Datei, was Excel da gemacht hat.
Seiten: 1 2