02.02.2021, 14:55 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2021, 15:07 von Hicki.
Bearbeitungsgrund: Link eingefügt
)
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.
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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Hicki
02.02.2021, 20:22 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2021, 20:23 von Gast 123.)
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 & "\"
02.02.2021, 20:35 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2021, 21:51 von schauan.
Bearbeitungsgrund: unnötiges Vollzitat entfernt
)
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?
02.02.2021, 23:48 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2021, 23:49 von 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?
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 . 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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Hicki