Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CustomDocumentProperties & Co.

Forumthread: CustomDocumentProperties & Co.

CustomDocumentProperties & Co.
12.10.2005 23:46:36
Jens
Hallo!
Hab einige Zeit nach einer Möglichkeit gesucht, einer Excel-Datei vor dem Start Variablenwerte mitzugeben - analog zu Funktions-Argumenten.
Ich bin auf die CustomDocumentProperties gestoßen, aber die verlieren - soweit ich jetzt gesehen habe - nach Schließen einer Arbeitsmappe ihre Werte.
Gibt es hier Möglichkeiten, bestimmte Variablen-Werte auch nach dem Schließen einer Arbeitsmappe zu bewahren? (Wozu dienen eigentlich sonst die CustomDocumentProperties?)
Vielen Dank für eure Hilfe sagt
der Jens
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CustomDocumentProperties & Co.
12.10.2005 23:57:13
Fred
Hi,
du musst die datei natürlich speichern, damit die Informationen erhalten bleiben,
das ist zugleich der Nachteil, Alternative: SaveSetting
mfg Fred
AW: CustomDocumentProperties & Co.
13.10.2005 00:38:53
Jens
Hallo Fred & alle anderen!
Vielleicht schildere ich mein derzeitiges Excel-Problem am besten mit einem Code-Ausschnitt.
Ich habe eine CustomDocumentProperty folgendermaßen definiert:
ActiveWorkbook.CustomDocumentProperties.Add Name:="CDP", _
Type:=msoPropertyTypeNumber, LinkToContent:=True, LinkSource:="testfeld"
"testfeld" ist ein benannter Bereich auf dem ersten Arbeitsblatt, Inhalt: die Zahl 5.
Die Zeile
MsgBox ActiveWorkbook.CustomDocumentProperties("CDP").Value
gibt den Wert 0 aus, die Zeile
ActiveWorkbook.CustomDocumentProperties("CDP").Value = 0
gibt die Fehlermeldung:
"Laufzeitfehler '-2147467259 (80004005)':
Automatisierungsfehler
Unbekannter Fehler"
Eigentlich sehen die meisten CustomDocumentProperty-Beispiele aus dem Netz, die LinkToContent verwenden, ähnlich aus wie meins oben...
Hat jemand eine Ahnung, was hier falsch ist?
Vielen Dank sagt gleich mal
der Jens
Anzeige
AW: CustomDocumentProperties & Co.
13.10.2005 01:02:32
Fred
Hi,

Sub til()
ActiveWorkbook.CustomDocumentProperties.Add Name:="CDP", _
Type:=msoPropertyTypeNumber, LinkToContent:=True, LinkSource:="testfeld"
End Sub


Sub tiler()
MsgBox ActiveWorkbook.CustomDocumentProperties("CDP").Value
End Sub

Geht doch, wo ist das Problem?
mfg Fred
Anzeige
AW: CustomDocumentProperties & Co.
13.10.2005 01:12:22
Jens
Hallo Fred,
bei mir funktioniert der Code nicht! Fehlermeldung wie im letzten Posting beschrieben...
Allerdings arbeite ich derzeit unter Excel 9, nicht Excel 10 wie angegeben. Vielleicht gab's da noch Probleme mit den CustomDocumentProperties?
Hast du den "testfeld" benannten Bereich auf irgend einem der Blätter? Und der Wert, den du dort eingibst, wird automatisch der CDP zugeordnet und erscheint dann als Ausgabe der msgbox?
Der Code aus deinem Posting ist ja haargenau der gleiche, den ich in meinem Minimalbeispiel auch eingegeben hatte...
Ein etwas stutziger
Jens
Anzeige
AW: CustomDocumentProperties & Co.
13.10.2005 08:40:57
Jens
Hallo Fred!
Ich wäre dir um Zusenden einer Beispieldatei, die bei dir funktioniert, dankbar!
Vielen Dank,
Jens
AW: CustomDocumentProperties & Co.
16.10.2005 23:59:45
Jens
Hallo!
Dein Beispiel funktioniert jetzt bei mir auch! Hatte wohl eine irgendwie korrupte Datei, es gab auch ein weiteres eigenartiges Phänomen. Der Fehler hatte also nicht an den CDP's gelegen.
Jedenfalls vielen Dank dir - war eine große Hilfe!
LG sagt
der Jens
Anzeige
;
Anzeige

Infobox / Tutorial

Verwendung von CustomDocumentProperties in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (dein_dateiname)" > Einfügen > Modul.
  4. Gib den folgenden Code ein, um eine CustomDocumentProperty hinzuzufügen:

    Sub AddCustomDocumentProperty()
       ActiveWorkbook.CustomDocumentProperties.Add Name:="CDP", _
           Type:=msoPropertyTypeNumber, LinkToContent:=True, LinkSource:="testfeld"
    End Sub
  5. Führe das Makro aus. Dies erstellt die CustomDocumentProperty mit dem Namen "CDP".

  6. Um den Wert abzurufen, verwende den folgenden Code:

    Sub GetCustomDocumentPropertyValue()
       MsgBox ActiveWorkbook.CustomDocumentProperties("CDP").Value
    End Sub
  7. Speichere die Arbeitsmappe, um die CustomDocumentProperties zu sichern.


Häufige Fehler und Lösungen

  • Laufzeitfehler '-2147467259 (80004005)': Dieser Fehler kann auftreten, wenn der benannte Bereich "testfeld" nicht existiert oder nicht korrekt definiert ist. Stelle sicher, dass der Bereich existiert und korrekt verknüpft ist.

  • Korrupte Datei: Wenn deine Excel-Datei nicht ordnungsgemäß funktioniert, kann es sein, dass sie beschädigt ist. Versuche, die Datei zu reparieren oder eine neue Datei zu erstellen und die CustomDocumentProperties dort erneut zu testen.


Alternative Methoden

  • Verwendung von SaveSetting: Anstatt CustomDocumentProperties zu verwenden, kannst du auch SaveSetting nutzen, um bestimmte Werte zu speichern. Diese Methode ist besonders nützlich, wenn du Werte zwischen verschiedenen Sitzungen bewahren möchtest, ohne die Datei zu speichern.

  • VBA Document Properties: Du kannst auch standardisierte Dokumenteneigenschaften in VBA verwenden, um Metadaten zu speichern, die nicht verloren gehen, wenn die Datei geschlossen wird.


Praktische Beispiele

  1. CustomDocumentProperties für Benutzerinformationen: Du kannst CustomDocumentProperties nutzen, um Informationen wie den Autor oder das Erstellungsdatum zu speichern.

    Sub SaveAuthorInfo()
       ActiveWorkbook.CustomDocumentProperties.Add Name:="Author", _
           Type:=msoPropertyTypeString, LinkToContent:=False, Value:="Dein Name"
    End Sub
  2. Abrufen von Werten aus CustomDocumentProperties:

    Sub DisplayAuthorInfo()
       MsgBox "Author: " & ActiveWorkbook.CustomDocumentProperties("Author").Value
    End Sub

Tipps für Profis

  • Verwende LinkToContent nur, wenn nötig: Die Verwendung von LinkToContent kann zu unerwarteten Fehlern führen, wenn der verlinkte Bereich nicht vorhanden ist oder gelöscht wird.

  • Regelmäßiges Speichern: Achte darauf, deine Datei regelmäßig zu speichern, um Datenverluste zu vermeiden, besonders wenn du mit CustomDocumentProperties arbeitest.

  • Überprüfe auf Korrupte Dateien: Wenn du Probleme mit der Speicherung oder dem Abrufen von Werten hast, überprüfe, ob deine Datei eventuell beschädigt ist. Manchmal kann ein einfacher Neustart von Excel helfen.


FAQ: Häufige Fragen

1. Warum funktionieren meine CustomDocumentProperties nicht?
Prüfe, ob du die Datei gespeichert hast. Ohne das Speichern gehen die Werte verloren. Zudem solltest du sicherstellen, dass die benannten Bereiche korrekt definiert sind.

2. Was sind CustomDocumentProperties?
CustomDocumentProperties sind benutzerdefinierte Eigenschaften, die du in einer Excel-Datei speichern kannst. Sie eignen sich hervorragend für Metadaten oder zur Speicherung von Werten, die über das Standard-Dokumentenformat hinausgehen.

3. Gibt es eine maximale Anzahl an CustomDocumentProperties?
Die maximale Anzahl an CustomDocumentProperties ist in Excel nicht genau definiert, jedoch solltest du im praktischen Einsatz darauf achten, dass zu viele benutzerdefinierte Eigenschaften die Dateigröße erhöhen können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige