Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte aus Excel-Tabelle an Word DocProperty übergeben

Forumthread: Werte aus Excel-Tabelle an Word DocProperty übergeben

Werte aus Excel-Tabelle an Word DocProperty übergeben
18.12.2019 15:05:54
fischer
Hallo liebe Spezialisten!
Ich habe ein Word-Dokument 01.docx in dem ich CustomProperties angelegt habe (Datei - Eigenschaften - Erweiterte Eigenschaften und dann Namen und Werte selbst angelegt habe).
Eigenschaft1 = Wert1
Eigenschaft2 = Wert2
Dann habe ich eine Exceltabelle 01.xlsx, in der linken Spalte steht
Eigenschaft1
Eigenschaft2
in der rechten Spalte daneben steht Wert1, Wert2.
Jetzt möchte ich Wert1 ändern in Karotte und das in mein Word-Dokument zu Eigenschaft1 zurückspeichern. Kann mir ja irgendjemand helfen?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Excel-Tabelle an Word DocProperty übergeben
18.12.2019 21:11:09
snb
Es wäre besser ein Docvariable zu nützen.
Anzeige
AW: Werte aus Excel-Tabelle an Word DocProperty übergeben
19.12.2019 08:55:18
fischer
Hallo snb, ich kenne mich nicht aus :> Warum wäre das besser? Wegen der Verarbeitungsgeschwindigkeit, Stabilität?
jetzt habe ich das makro mit meinen Begriffen und werten gefüllt (die auch in der word-datei angelegt sind). aber nichts passiert....
Option Explicit
Sub cmdInTextfeldschreiben()
Dim wdApp As Object
Dim wdDoc As Object
Dim wdRng As Object
Dim wdCustProp As Object
Dim wdDatei As String
Dim wb As Excel.Workbook
'Dim ws As Excel.Worksheet
'Arbeitsmappe mit diesem Makro
Set wb = ThisWorkbook
'Set ws = wb.Worksheets("Sheet1")
'Word als Object starten
Set wdApp = CreateObject("Word.Application") 'Word als Object starten
'Worddatei festlegen - befindet sich im gleichen Verzeichnis wie diese Excel-AM
wdDatei = wb.Path & "\Worddatei.docx"
Set wdDoc = wdApp.documents.Open(wdDatei)
wdApp.Visible = True
With wdDoc
On Error Resume Next
Set wdCustProp = .CustomDocumentProperties("a")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("a").Value = [a].Value
Else
MsgBox "Die Word-Property 'a' existiert nicht!", 64, "zur Information"
End If
Set wdCustProp = .CustomDocumentProperties("b")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("b").Value = [b].Value
Else
MsgBox "Die benutzerdefinierte Word-Property 'b' existiert nicht!", 64, "zur  _
Information"
End If
Set wdCustProp = .CustomDocumentProperties("c")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("c").Value = [c].Value
Else
MsgBox "Die benutzerdefinierte Word-Property 'c' existiert nicht!", 64, "zur  _
Information"
End If
Set wdCustProp = .CustomDocumentProperties("d")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("d").Value = [d].Value
Else
MsgBox "Die benutzerdefinierte Word-Property 'd' existiert nicht!", 64, "zur  _
Information"
End If
'On Error GoTo 0
.CustomDocumentProperties.Update
.Save
'alle Felder aktualisieren
For Each wdRng In .StoryRanges
wdRng.Fields.Update
While Not (wdRng.NextStoryRange Is Nothing)
Set wdRng = wdRng.NextStoryRange
wdRng.Fields.Update
Wend
Next wdRng
MsgBox .CustomDocumentProperties("a").Value
MsgBox .CustomDocumentProperties("c").Value
MsgBox .CustomDocumentProperties("b").Value
MsgBox .CustomDocumentProperties("d").Value
End With
Set wdRng = Nothing
Set wdDoc = Nothing
Set wdCustProp = Nothing
Set wdApp = Nothing
'Set ws = Nothing
Set wb = Nothing
MsgBox "F e r t i g", 48
End Sub

Anzeige
Werte aus Excelan Word DocProperty
19.12.2019 09:44:55
Nepumuk
Hallo,
kommentiere mal diese Zeile aus:
On Error Resume Next
und schreib was für ein Fehler angezeigt wird.
Gruß
Nepumuk
AW: Werte aus Excelan Word DocProperty
19.12.2019 09:52:54
fischer
Laufzeitfehler '424'
Objekt erforderlich
Dann markiert er mir diese Zeile
.CustomDocumentProperties("a").Value = [a].Value
so sieht meine Excel-Tabelle aus (sry kann grad keine dateien hochladen):
spalte b
a
b
c
d
spalte c
aaa
bbb
ccc
ddd
Anzeige
AW: Werte aus Excelan Word DocProperty
19.12.2019 10:28:12
Nepumuk
Hallo,
bei mir läuft das:
Option Explicit
Sub cmdInTextfeldschreiben()
Dim wdApp As Object
Dim wdDoc As Object
Dim wdRng As Object
Dim wdCustProp As Object
Dim wdDatei As String
Dim wb As Excel.Workbook
'Arbeitsmappe mit diesem Makro
Set wb = ThisWorkbook
'Word als Object starten
Set wdApp = CreateObject("Word.Application") 'Word als Object starten
'Worddatei festlegen - befindet sich im gleichen Verzeichnis wie diese Excel-AM
wdDatei = wb.Path & "\Worddatei.docx"
Set wdDoc = wdApp.documents.Open(wdDatei)
wdApp.Visible = True
With wdDoc
Set wdCustProp = .CustomDocumentProperties("a")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("a").Value = [C1].Value
Else
MsgBox "Die Word-Property 'a' existiert nicht!", 64, "zur Information"
End If
Set wdCustProp = .CustomDocumentProperties("b")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("b").Value = [C2].Value
Else
MsgBox "Die Word-Property 'b' existiert nicht!", 64, "zur Information"
End If
Set wdCustProp = .CustomDocumentProperties("c")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("c").Value = [C3].Value
Else
MsgBox "Die Word-Property 'c' existiert nicht!", 64, "zur Information"
End If
Set wdCustProp = .CustomDocumentProperties("d")
If Not (wdCustProp Is Nothing) Then
.CustomDocumentProperties("d").Value = [C4].Value
Else
MsgBox "Die Word-Property 'd' existiert nicht!", 64, "zur Information"
End If
.Save
MsgBox .CustomDocumentProperties("a").Value
MsgBox .CustomDocumentProperties("c").Value
MsgBox .CustomDocumentProperties("b").Value
MsgBox .CustomDocumentProperties("d").Value
End With
Set wdRng = Nothing
Set wdDoc = Nothing
Set wdCustProp = Nothing
Set wdApp = Nothing
'Set ws = Nothing
Set wb = Nothing
MsgBox "F e r t i g", 48
End Sub

Gruß
Nepumuk
Anzeige
AW: Werte aus Excelan Word DocProperty
19.12.2019 11:17:42
fischer
ach du bist mein held =) ja blöd, der muss ja auch einen bezug haben, woher er den wert nimmt....... ich danke dir!!
;
Anzeige
Anzeige

Infobox / Tutorial

Werte aus Excel-Tabelle an Word DocProperty übergeben


Schritt-für-Schritt-Anleitung

Um Werte aus einer Excel-Tabelle an die benutzerdefinierten Eigenschaften (DocProperties) eines Word-Dokuments zu übergeben, kannst du die folgenden Schritte befolgen:

  1. Erstelle deine Excel-Tabelle: In der linken Spalte (z.B. Spalte B) listest du die Namen der Eigenschaften (z.B. Eigenschaft1, Eigenschaft2) und in der rechten Spalte (z.B. Spalte C) die entsprechenden Werte (z.B. Wert1, Wert2).

  2. Öffne das Word-Dokument: Stelle sicher, dass das Word-Dokument, in das du die Werte schreiben möchtest, die benutzerdefinierten Eigenschaften bereits enthält.

  3. Verwende das folgende VBA-Makro: Füge das Makro in ein Modul deiner Excel-Arbeitsmappe ein.

    Option Explicit
    Sub cmdInTextfeldschreiben()
       Dim wdApp As Object
       Dim wdDoc As Object
       Dim wdCustProp As Object
       Dim wdDatei As String
       Dim wb As Excel.Workbook
       Set wb = ThisWorkbook
       Set wdApp = CreateObject("Word.Application")
       wdDatei = wb.Path & "\Worddatei.docx"
       Set wdDoc = wdApp.documents.Open(wdDatei)
       wdApp.Visible = True
    
       With wdDoc
           Set wdCustProp = .CustomDocumentProperties("a")
           If Not (wdCustProp Is Nothing) Then
               .CustomDocumentProperties("a").Value = [C1].Value
           End If
           ' Füge hier weitere Eigenschaften hinzu
           .Save
       End With
    
       wdApp.Quit
    End Sub
  4. Führe das Makro aus: Gehe zurück zu Excel und führe das Makro aus, um die Werte in das Word-Dokument zu übertragen.


Häufige Fehler und Lösungen

  • Laufzeitfehler '424': Objekt erforderlich: Dieser Fehler tritt auf, wenn das Makro versucht, auf eine nicht existierende DocProperty zuzugreifen. Stelle sicher, dass die benutzerdefinierten Eigenschaften im Word-Dokument korrekt benannt sind.

  • Die Word-Property 'x' existiert nicht!: Überprüfe die Schreibweise der Eigenschaftsnamen in deinem Makro und in Word. Sie müssen übereinstimmen.

  • Word-Dokument wird nicht gefunden: Vergewissere dich, dass der Pfad zur Word-Datei korrekt ist und dass die Datei im gleichen Verzeichnis wie die Excel-Arbeitsmappe gespeichert ist.


Alternative Methoden

Eine alternative Methode besteht darin, statt der CustomDocumentProperties, DocVariables zu verwenden. Diese Methode kann in bestimmten Fällen stabiler und schneller sein, besonders bei großen Dokumenten.

wdDoc.Variables("VariableName").Value = [C1].Value

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du mit den verschiedenen Eigenschaften in Word arbeiten kannst:

  1. Ändern einer DocProperty:

    .CustomDocumentProperties("Eigenschaft1").Value = "Karotte"
  2. Zugriff auf eine DocVariable:

    wdDoc.Variables("VariableName").Value = [C1].Value
  3. Aktualisieren aller Felder im Dokument:

    For Each wdRng In .StoryRanges
       wdRng.Fields.Update
    Next wdRng

Tipps für Profis

  • Verwende On Error Resume Next mit Bedacht: Diese Zeile kann nützlich sein, um Fehler zu ignorieren, aber sie kann auch dazu führen, dass wichtige Fehlermeldungen unterdrückt werden. Kommentiere sie aus, um Fehler besser zu debuggen.

  • Dokumenten-Pflege: Achte darauf, dass du das Word-Dokument nach der Bearbeitung immer speicherst und schließt, um Datenverlust zu vermeiden.

  • Teste dein Makro: Führe das Makro zuerst in einer Testumgebung aus, bevor du es in produktiven Dokumenten anwendest.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Eigenschaften gleichzeitig ändern? Du kannst mehrere Eigenschaften im gleichen Makro ändern, indem du einfach weitere Zeilen für jede Eigenschaft hinzufügst.

2. Was ist der Unterschied zwischen DocProperties und DocVariables? DocProperties sind benutzerdefinierte Eigenschaften eines Dokuments, während DocVariables Variablen sind, die innerhalb des Dokuments verwendet werden. Beide können nützlich sein, je nach Anwendungsfall.

3. Wie kann ich die Werte der Eigenschaften in Excel anzeigen? Du kannst die Werte der DocProperties mit VBA in Excel auslesen, indem du eine Verbindung zum Word-Dokument herstellst und die Eigenschaften abfragst.

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