Datei-Eigenschaften einer eingebundenen Datei in einer Zelle anzeigen
#1
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


Angehängte Dateien
.xlsx   143508.xlsx (Größe: 88,61 KB / Downloads: 7)
Top
#2
Hi,

sei bitte so nett und verlinke die beiden Themen. Dann können sich die Helfer im jeweiligen Forum über den Stand informieren.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Hicki
Top
#4
Vielen Dank,

genau das habe ich gesucht.

Gruß Hicki
Top
#5
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
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Hicki
Top
#6
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


Angehängte Dateien Thumbnail(s)
       
Top
#7
Hallo,

Du musst das mit der extrahierten Datei in %Appdata%\Local\Temp vergleichen
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Hicki
Top
#8
Hallo,

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

Gruß Hicki


Angehängte Dateien Thumbnail(s)
       

.xlsm   Kopie von 143508.xlsm (Größe: 100 KB / Downloads: 2)
Top
#9
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
Top
#10
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Hicki
Top


Gehe zu:


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