Ich hab mich gefragt, was meine Eltern früher ohne Internet gemacht haben. Auch meine 14 Geschwister konnten mir keine Antwort geben.
Hallo Herr Martin,
Hier mal ein Problem an Sie als Excel-Guru.
Wir haben in unserem Dokumentenlenkungssystem eine Vorlage für Excel mit spezifischen Eigenschaften (siehe Bild mit den teilweise kundenspezifischen Eigenschaften).
Damit in Excel beim ausdrucken die wesentlichen Informationen in Kopf und Fußzeile erscheinen, müssen wir das alles sehr aufwändig händisch in allen Tabellenblättern pflegen. Was natürlich sehr fehlerträchtig ist…
Ich habe mit meinen sehr bescheidenen Kenntnissen mal versucht, irgendwie mit VBA da an die Info ranzukommen, so:
Sub Test()
rw = 1
Worksheets(1).Activate
For Each p In ActiveWorkbook.CustomDocumentProperties
Cells(rw, 1).Value = p.Name
Cells(rw, 2).Value = p.Value
rw = rw + 1
Next
End Sub
Im Ergebnis allerdings ohne Erfolg, da kaum Werte so rauslesbar sind, vor allem nicht die spezifischen. Das wäre auch nur die halbe Miete gewesen, da ja das Einbringen der Info in die Kopf- und Fußzeile nochmal ein separates Problem darstellt, für die ich aktuell keine Idee zur Lösung habe… Kennen Sie vielleicht ein paar VBA-Kniffe, wie ich hier vielleicht weiterkomme?
Hallo Herr F.,
und so geht es:
mit
Dim i As Integer
On Error Resume Next
For i = 1 To ThisWorkbook.ContentTypeProperties.Count
MsgBox ThisWorkbook.ContentTypeProperties(i).Name & „//“ & ThisWorkbook.ContentTypeProperties(i).Value
Next
ermittle ich die von SharePoint gesetzten Werte und Namen.
Mit
MsgBox ThisWorkbook.BuiltinDocumentProperties(„Title“).Value, , „Titel“
MsgBox ThisWorkbook.ContentTypeProperties(„Location“).Value, , „Location“
MsgBox ThisWorkbook.ContentTypeProperties(„Target group“).Value, , „Target group“
MsgBox ThisWorkbook.ContentTypeProperties(„Document type“).Value, , „Document type“
greife ich auf die Inhalte zu.
Und: Dies kann in
Private Sub Workbook_BeforePrint(Cancel As Boolean)
eingebunden werden:
ActiveSheet.PageSetup.LeftHeader = …
Hallo Herr Martin,
das funktioniert prima – erst mal vielen Dank dafür. Mit einer Ausnahme: Sind in den Namen Umlaute enthalten (So bei uns in der Sharepoint Bibliothek, z.B. „Kerngeschäft“ oder „“Regelmäßig“), kommt es immer zu einem Laufzeitfehler 438 – Objekt unterstützt die Eigenschaft oder Methode nicht.
Er erkennt die Anzahl (in diesem Fall 14), also kann er sie lesen. Aber er stolpert sofort, wenn ein Umlaut enthalten ist. Obwohl Sharepoint das ja erlaubt und die Properties auch innerhalb der Excel korrekt angezeigt werden.
Hier der Code:
————-
Sub ListItems()
Dim i As Integer
MsgBox (ThisWorkbook.ContentTypeProperties.Count) <<<< Zeigt 14 an
For i = 1 To ThisWorkbook.ContentTypeProperties.Count
MsgBox ThisWorkbook.ContentTypeProperties(i).Name & "//" & _
ThisWorkbook.ContentTypeProperties(i).Value
Next i
Bei Einzel-Aufruf funktionieren alle ohne Umlaut, die mit Umlaut erzeigen den Fehler.
Ich komme einfach nicht dahinter, warum das im Dokument sauber gespeichert ist, im Dokumentbereich in Excel auch angezeigt werden kann aber nicht über VBA.
Gibt es da einen Trick?
Danke im Voraus!
hm, sorry … DA wüsste ich jetzt keinen Trick …
Rene Martin