Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mitgabe von Eigenschaften an versch. Dateiarten

Mitgabe von Eigenschaften an versch. Dateiarten
16.07.2014 16:04:40
Eigenschaften
hallo,
ich habe folgendes Problem.
Und zwar will ich verschiedenen dateien und verschiedenen dateiarten benutzerdefinierte eigenschaften mitgeben.
Dazu habe ich folgenden Code gefunden der auch funktioniert, wenn man ihn nur auf das aktuelle Workbook beziehen will:
ActiveWorkbook.CustomDocumentProperties.Add _
Name:="Jahr", LinkToContent:=False, _
Type:=msoPropertyTypeString, Value:=2014
Da ich mit meinem Programm aber andere dateien (Excel, pdf, PowerPoint) ansprechen will und nicht das ActiveWorkbook, wird es problematisch.
Folgende idee kam mir bis jetzt: die gewünschte datei öffnen, somit wird diese zum activeworkbook, anschließend die eigenschaften hinzufügen, und zum schluss die gewünschte dateo mit hinzugefügten eigenschaften wieder schließen.
Dieses Vorgehen hat aber viele nachteile, wie z.B. die Laufzeit wird enorm verlängert und das ganze wird auf Excel-dateien beschränkt.
Wie kann ich den Code also anpassen, damit ich verschiedene dateiarten (Excel, pdf, pp) damit ansprechen kann?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mitgabe von Eigenschaften an versch. Dateiarten
16.07.2014 16:33:31
Eigenschaften
Hallo Ela,
Die Eigenschaft CustomDocumentProperties kennen MS-Office Dokument-Dateien. PDF oder andere kannst du vergessen, weil dort dieses Objekt und die Eigenschaften dazu fehlen. MS Office Dateien kannst du per VBA öffnen, musst aber wissen/feststellen um was für einen Typ es sich handelt, denn schliesslich kannst du in XL nicht eine PP (direkt) öffnen, aber per VBA eine PP-Applikation erstellen und dieser die PPT Datei öffnen. Analog mit WORD.
Gruess Hansueli

AW: Mitgabe von Eigenschaften an versch. Dateiarten
16.07.2014 16:33:32
Eigenschaften
Hallo Ela,
Die Eigenschaft CustomDocumentProperties kennen MS-Office Dokument-Dateien. PDF oder andere kannst du vergessen, weil dort dieses Objekt und die Eigenschaften dazu fehlen. MS Office Dateien kannst du per VBA öffnen, musst aber wissen/feststellen um was für einen Typ es sich handelt, denn schliesslich kannst du in XL nicht eine PP (direkt) öffnen, aber per VBA eine PP-Applikation erstellen und dieser die PPT Datei öffnen. Analog mit WORD.
Gruess Hansueli

Anzeige
AW: Mitgabe von Eigenschaften an versch. Dateiarten
17.07.2014 08:33:21
Eigenschaften
Ok. Und wie sieht das als Code konkret aus, wenn ich eine Applikation erstellen soll?
ich bin leider noch ein ziemlicher Anfänger was VBA betrifft.
Meintest du so was in der Art?
dim word as object
set word = ...
Wäre dankbar wenn du mir noch einen Codevorschlag machen könntest. Ich kann damit sonst leider nicht viel mit anfangen..
Noch etwas anderes. Kann ich das nicht anders lösen, außer jede datei vorher öffnen zu müssen? Das wäre wirklich hilfreich. Denn es sind einige Dateien und das verlängert die Laufzeit wirkloch enorm.
Kann mir jemand helfen?
Vielen Dank :)

Anzeige
AW: Mitgabe von Eigenschaften an versch. Dateiarten
17.07.2014 12:04:26
Eigenschaften
Hallo Ela,
Zitat: Kann ich das nicht anders lösen, außer jede datei vorher öffnen zu müssen?
Wie kannst du etwas in einen Tresor legen, ohne ihn vorher zu öffnen? Beamen?
Nein, das geht nicht ohne, denn diese Eigenschaften sind Bestandteil der Datei und IMHO nicht über API der Datei-Eigenschaften zugänglich. Aber selbst mit letzterem Ansatz würde die Datei für den Schreibvorgange geöffnet / geschlossen werden müssen.
Und die Codeschnipsel ist soweit richtig. Ausführlichere Beispiele findest du in der Recherche.
Bei Design deines Code darauf achten, dass die Applikations-Objekte (EXCEL, WORD, POWERPOINT) nur einmal erstellt werden (denn das braucht seine Zeit), dann alles je nach Filetyp in diesen öffnen/schreiben/sichern/schliessen und erst am Schluss die Applikationen wieder schliessen.
Gruess Hansueli
Gruess Hansueli

Anzeige
AW: Mitgabe von Eigenschaften an versch. Dateiarten
18.07.2014 08:05:48
Eigenschaften
hallo Hansueli,
Vielen Dank für die schnelle Antwort.
Könntest du mir evtl. ein Beispielcode für eine der Applikationsobjekte erstellen?
Also wie erzeuge ich dieses Applikationsobjekt und wie greife ich damit dann auf die Objekte zu und wie schließe ich dieses anschließend wieder?
Wäre für ein paar kurze Code Beispiel dankbar.
Grüße
Ela

AW: Mitgabe von Eigenschaften an versch. Dateiarten
18.07.2014 10:18:38
Eigenschaften
Hallo Ela,
Mal als Ansatz (in einem Standardmodul von XL):
Option Explicit
Sub DocuPropertiesInMSDocs()
Dim objPPApp As Object  ' PowerPoint Application
Dim objPPFile As Object ' PowerPoint Document
Dim objWWApp As Object  ' WinWord Application
Dim objWWFile As Object ' WinWord Document
Dim wbXL As Workbook    ' Excel Workbooks
Dim sDirName As String  ' Verzeichnis
Dim sFileName As String ' Dateiname
' Powerpoint Dateien
Set objPPApp = CreateObject("PowerPoint.Application")
sDirName = "D:\DeinDokumentenVerzeichnis\"
sFileName = Dir(sDirName & "*.ppt*")
Do While sFileName  ""
Application.StatusBar = "Verarbeite " & sFileName & " bitte warten..."
Set objPPFile = objPPApp.Presentations.Open(sDirName & sFileName)
With objPPFile
On Error Resume Next
.CustomDocumentProperties.Add Name:="myNewCDP", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:="mein Test"
If Err.Number  0 Then MsgBox "Fehler in " & sFileName & vbCrLf & _
"Property konnte nicht gesetzt werden!", vbOKOnly +  _
vbExclamation
On Error GoTo 0
.Save
.Close
End With
sFileName = Dir()
Loop
Set objPPApp = Nothing
' WinWord Dateien
Set objWWApp = CreateObject("Word.Application")
sDirName = "D:\DeinDokumentenVerzeichnis\"
sFileName = Dir(sDirName & "*.doc")
Do While sFileName  ""
Application.StatusBar = "Verarbeite " & sFileName & " bitte warten..."
Set objWWFile = objWWApp.Documents.Open(sDirName & sFileName)
With objWWFile
On Error Resume Next
.CustomDocumentProperties.Add Name:="myNewCDP", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:="mein Test"
If Err.Number  0 Then MsgBox "Fehler in " & sFileName & vbCrLf & _
"Property konnte nicht gesetzt werden!", vbOKOnly +  _
vbExclamation
On Error GoTo 0
.Save
.Close
End With
sFileName = Dir()
Loop
Set objWWApp = Nothing
' Excel Dateien
sDirName = "D:\DeinDokumentenVerzeichnis\"
sFileName = Dir(sDirName & "*.xls")
Do While sFileName  ""
Application.StatusBar = "Verarbeite " & sFileName & " bitte warten..."
Set wbXL = Workbooks.Open(sDirName & sFileName)
With wbXL
On Error Resume Next
.CustomDocumentProperties.Add Name:="myNewCDP", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:="mein Test"
If Err.Number  0 Then MsgBox "Fehler in " & sFileName & vbCrLf & _
"Property konnte nicht gesetzt werden!", vbOKOnly +  _
vbExclamation
On Error GoTo 0
.Save
.Close
End With
sFileName = Dir()
Loop
End Sub
Gruess Hansueli

Anzeige
AW: Mitgabe von Eigenschaften an versch. Dateiarten
18.07.2014 14:00:24
Eigenschaften
Hey, vielen lieben Dank.
Werd es gleich mal versuchen anzuwenden.
Und für pdf kann man nichts machen?
Auch nicht mit einem andern befehl oder über SQL in VBA?
Liebe Grüße
Ela

AW: Mitgabe von Eigenschaften an versch. Dateiarten
22.07.2014 10:14:55
Eigenschaften
Hallo Hansueli,
für Excel dateien funktioniert der Code wunderbar.
Bei Word hängt sich das Programm aber immer auf.
Zudem öffnet es die wORD DATEIEN UNSICHTBAR.
manchmal wird der code auch durchlaufen ohne einen fehler auszugeben. aber die propertys werden trotzdem nicht gesetzt wenn ich in dem word dokument nachschaue...
was mache ich falsch?
viele grüße
ela
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige