02.02.2021, 15:55 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2021, 16: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, 21:22 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2021, 21: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, 21:35 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2021, 22: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?
03.02.2021, 00:48 (Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2021, 00: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