Autor
|
Thema: Excel Datei eigenschaften (2007 mal gelesen)
|
Alex-01 Mitglied
Beiträge: 10 Registriert: 22.03.2002 ADT 3.3 - 2005 VIZ fuer 2005 Office 2003 PS CS Illustrator CS
|
erstellt am: 10. Mrz. 2006 21:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, mal wieder eine kleine Frage. in einem Excel Workbook habe ich einer Zelle den Namen PROP_TEST gegeben. Das fuehrt dazu, dass ich im Explorer in der Benutzereigenschaften [TAB Anpassen] den Wert der Zelle sehen kann. Nun habe ich ein SUB gefunden das mir alle Datein eines Ordners listet und die Dateigroesse und das Datum der letzten Aenderung in eine neue Tabelle schreibt. Versuche ich nun das gleiche, moechte aber den PROP_TEST Wert lesen klappt das nicht. Die VBA Zeile lautet im Original Cells(InI),2 = FileLen(.FoundFiles(InI)) Ich hoffe das Ihr mir helfen koennt! Habe bisher eigentlich nur den Part FileLen tauschen wollen, aber ohne Erfolg. Schon mal Danke an alle Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 11. Mrz. 2006 19:46 <-- editieren / zitieren --> Unities abgeben: Nur für Alex-01
|
Alex-01 Mitglied
Beiträge: 10 Registriert: 22.03.2002 ADT 3.3 - 2005 VIZ fuer 2005 Office 2003 PS CS Illustrator CS
|
erstellt am: 13. Mrz. 2006 16:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Nepumuk, Danke fuer die Antwort, leider hatte ich mich da nur vertippt. Im Anhang habe ich einen ScreenShot aus dem Explorer der die Eigenschaften anzeigt die ich "auslesen" moechte. Das klaert so hoffe ich den Sachverhalt. Danke bis dann Alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Mrz. 2006 16:48 <-- editieren / zitieren --> Unities abgeben: Nur für Alex-01
|
Alex-01 Mitglied
Beiträge: 10 Registriert: 22.03.2002 ADT 3.3 - 2005 VIZ fuer 2005 Office 2003 PS CS Illustrator CS
|
erstellt am: 13. Mrz. 2006 17:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, OK haette ich auch gleich machen koennen, Sorry, im Anhang der Code den ich auf unsere Beduerfnisse aendern moechte: Anstatt der Dateigroesse moechte ich die benutzerdefinierten Eigenschaften auslesen. Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Mrz. 2006 19:39 <-- editieren / zitieren --> Unities abgeben: Nur für Alex-01
hmmm, nix schönes, aber sollte funktionieren Code: Cells(InI, 3) = FileDateTime(.FoundFiles(InI)) ' Dateidatum ' Dokumenteigenschaften auslesen Workbooks.Open Filename:=(.FoundFiles(InI)) 'open WB dummy = ActiveWorkbook.CustomDocumentProperties("ich bin ein Wert").Value 'hier den Namen eingeben der ausgelesen werden soll ggg = MsgBox("die eigenschaft von ich bin ein Wert lautet:" & dummy) 'only mess ActiveWorkbook.Close SaveChanges:=False 'close Wb Cells(InI, 4) = dummy 'einfügen des ausgelesenen wertes ' weiter mit altem code Next InI
"ich bin ein Wert" durch deine Namen ersetzen - ich habe es leider nicht geschafft, das Xls passiv auszulesen, daher wird es kurz geladen... - ich schiel' mal jetzt auch ;-) ------------------ Am Anfang war kein Licht - und Vater blickte Kalt Miss Brauch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alex-01 Mitglied
Beiträge: 10 Registriert: 22.03.2002 ADT 3.3 - 2005 VIZ fuer 2005 Office 2003 PS CS Illustrator CS
|
erstellt am: 13. Mrz. 2006 20:20 <-- editieren / zitieren --> Unities abgeben:
Hm, vielen Dank fuer die Hilfe, es klappt und wiederum auch nicht, Das SUB liest einen Ordern aus, somit bezieht sich alles auf ca. 100-200 Datein. Das oeffnen macht das ganze sehr langsam. Trotzdem vielen Dank Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Mrz. 2006 20:23 <-- editieren / zitieren --> Unities abgeben: Nur für Alex-01
|
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 13. Mrz. 2006 20:35 <-- editieren / zitieren --> Unities abgeben: Nur für Alex-01
|
Alex-01 Mitglied
Beiträge: 10 Registriert: 22.03.2002 ADT 3.3 - 2005 VIZ fuer 2005 Office 2003 PS CS Illustrator CS
|
erstellt am: 13. Mrz. 2006 21:10 <-- editieren / zitieren --> Unities abgeben:
|
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 13. Mrz. 2006 21:45 <-- editieren / zitieren --> Unities abgeben: Nur für Alex-01
Hi Alex, ich häng dir die DLL mal an. Die muss in's Systemverzeichnis und registriert werden. Dann musst du in Excel einen Verweis auf die DLL setzten. Hier mal ein Beispiel, wie du damit die CustomDocumentProperties auslesen kannst. Code:
Option ExplicitPublic Sub prcReadCustomProperty() Dim objFilePropReader As DSOleFile.PropertyReader Dim objDocProp As DSOleFile.DocumentProperties Dim objCustProp As DSOleFile.CustomProperty Dim objFSO As Object, objFile As Object Set objFilePropReader = New DSOleFile.PropertyReader Set objFSO = CreateObject("Scripting.FileSystemObject") For Each objFile In objFSO.GetFolder("D:\Eigene Dateien\Eigene Excelformeln\").Files Set objDocProp = objFilePropReader.GetDocumentProperties(objFile.Path) For Each objCustProp In objDocProp.CustomProperties Debug.Print objCustProp.Name & ": " & CStr(objCustProp.Value) & _ vbTab & "[" & fncTypeName(objCustProp.Type) & "]" Next Next Set objFilePropReader = Nothing Set objDocProp = Nothing Set objFSO = Nothing End Sub Private Function fncTypeName(lngType As Long) As String Select Case lngType Case 1: fncTypeName = "String" Case 2: fncTypeName = "Long" Case 3: fncTypeName = "Double" Case 4: fncTypeName = "Boolean" Case 5: fncTypeName = "Date" Case Else: fncTypeName = "Unknown" End Select End Function
------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 13. Mrz. 2006 22:09 <-- editieren / zitieren --> Unities abgeben: Nur für Alex-01
Und für die Verfechter von "Late Binding": Code:
Option ExplicitPublic Sub prcReadCustomProperty() Dim objFilePropReader As Object, objDocProp As Object, objCustProp As Object Dim objFSO As Object, objFile As Object Set objFilePropReader = CreateObject("DSOleFile.PropertyReader.1") Set objFSO = CreateObject("Scripting.FileSystemObject") For Each objFile In objFSO.GetFolder("D:\Eigene Dateien\Eigene Excelformeln\").Files Set objDocProp = objFilePropReader.GetDocumentProperties(objFile.Path) For Each objCustProp In objDocProp.CustomProperties Debug.Print objCustProp.Name & ": " & CStr(objCustProp.Value) & _ vbTab & "[" & fncTypeName(objCustProp.Type) & "]" Next Next Set objFilePropReader = Nothing Set objDocProp = Nothing Set objFSO = Nothing End Sub Private Function fncTypeName(lngType As Long) As String Select Case lngType Case 1: fncTypeName = "String" Case 2: fncTypeName = "Long" Case 3: fncTypeName = "Double" Case 4: fncTypeName = "Boolean" Case 5: fncTypeName = "Date" Case Else: fncTypeName = "Unknown" End Select End Function
------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alex-01 Mitglied
Beiträge: 10 Registriert: 22.03.2002 ADT 3.3 - 2005 VIZ fuer 2005 Office 2003 PS CS Illustrator CS
|
erstellt am: 17. Mrz. 2006 20:25 <-- editieren / zitieren --> Unities abgeben:
|