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

Daten von Excel nach Word mit VBA

Forumthread: Daten von Excel nach Word mit VBA

Daten von Excel nach Word mit VBA
30.12.2005 07:27:41
Excel
Moin moin
ich beziehe mich auf folgenden Beitrag:
https://www.herber.de/forum/archiv/608to612/t608968.htm
Dort wird beschrieben wie die Zelle A1 nach direkt nach Word kopiert und an eine bestimmte Textmarke geschrieben wird.
Leider bekomme ich das nicht hin, dass der Bereich A1:A15 nach Word kopiert wird. Es kommt in Excel die Fehlermeldung:
Laufzeitfehler 13
Typen unverträglich
der Debugger zeigt einen Fehler in folgender Zeile an:
docTest.Bookmarks("vonExcel").Range.Text = Range("D15:D17")
Da ich völliger VBA-Anfänger bin kann ich mit dieser Fehlermeldung nüscht anfangen, auch mit der Hilfe komme ich nicht weiter.
Vielleicht kann ja Werner Waluga, der das VBA-Script erstellt hat mir weiterhelfen?
Grüße aus Berlin und einen guten Rutsch wünscht Euch
Frank
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten von Excel nach Word mit VBA
30.12.2005 10:12:43
Excel
Hallo Frank,
versuch's mal so:

docTest.Bookmarks("vonExcel").Range.Text = Range("D15") & chr(10) & Range("D16") & chr(10) & Range("D17")
Gruß Ingolf
AW: Daten von Excel nach Word mit VBA
30.12.2005 10:19:53
Excel
Danke
Execl bringt jetzt zwar keine Fehlermeldung mehr, aber dafür steht auch nichts in meinem Word-Dokument.
Das wars es also nicht :-(
Gruß
Frank
Anzeige
STOOOOOPP...korrektur
30.12.2005 10:31:42
Frank
Word setzt alles ein....
ABER...
Das war ja nun ein Beispiel für drei bestimmte Zellen
Wenn ich nun eine variable Anzahl von Zellbereichen habe (also mal D15:E17 oder D15:K17 oder...) wie wird das dann übergeben...?
Es soll so laufen:
in einem Sheet ist eine lange Liste. Der Anwender markiert betimmte Zellen mit "x"
Die so gekennzeichneten Zeilen können per Filter zusammengefasst werden, sodass nur noch die markierten Zeilen zu sehen sind und diese sollen dann nach Word kopiert werden. Die zu kopierende Tabelle hat immer 2 Spalten und eine unterscheidliche Anzahl von Zeilen.
Was ist also zu tun?
Gruß
Frank
Anzeige
AW: STOOOOOPP...korrektur(Ergänzung)
30.12.2005 13:38:10
Frank
noch eine Ergänzung:
in Spalte B werden die Zellen mit "x" gekennzeichnet und können entsprechend gefiltert werden
Spalte C ist leer
Spalte D enthält eine Beschreibung
Spalte E den Betrag
Wenn nun nach den einzelnen Zeilen gefiltert wurde soll D15:Exx nach Word an die Textmarke "vonExcel" kopiert werden.
Ich hoffe das reicht als Beschreibung
Anzeige
AW: Daten von Excel nach Word mit VBA
30.12.2005 15:35:54
Excel
Hallo Frank,
mit folgendem Codeschnipsel werden die betreffenden Zellen in den Spalten D und E in der Variablen str aneinandergereiht, wobei die Spalten D und E mit Tabulator und die Zeilen mit einer Zeilenschaltung getrennt werden. Anschließend wird der Inhalt der Variablen str nach Word geschrieben.

Dim str As String
Dim rng As Range
For Each rng In Range("B:B")
If LCase(rng) = "x" And rng.Hidden = False Then
str = str & Chr(10) & rng.Offset(0, 1) & Chr(9) & rng.Offset(0, 2)
End If
Next 'rng
docTest.Bookmarks("vonExcel").Range.Text = str
Gruß Ingolf
Anzeige
AW: Daten von Excel nach Word mit VBA
30.12.2005 21:04:06
Excel
Danke Ingolf
werde ich nächstes Jahr ausprobieren, wenn ich wieder auf der Arbeit bin....habe zuhause kein entsprechendes Office-Paket ;-)
Bis dann und Guten Rutsch
AW: Daten von Excel nach Word mit VBA
02.01.2006 15:16:54
Excel
Moin moin
habe es nun ausprobiert
mein (Dein/Euer) Code sieht nun so aus:

Sub NachWord()
Dim appWord As Object
Dim docTest As Object
Dim str As String
Dim rng As Range
Set appWord = CreateObject("Word.Application")
Set docTest = appWord.Documents.Add("H:\Eigene Dateien\Word\Wohnung.dot")
appWord.Visible = True
docTest.Activate
For Each rng In Range("B:B")
If LCase(rng) = "x" And rng.Hidden = False Then
str = str & Chr(10) & rng.Offset(0, 1) & Chr(9) & rng.Offset(0, 2)
End If
Next 'rng
docTest.Bookmarks("vonExcel").Range.Text = str
Set docTest = Nothing
Set appWord = Nothing
End Sub

Lieder kommt dann die Fehlermeldung:
Laufzeitfehler 1004
Die Hidden-Eigenschaft des Range-Objektes kann nicht zugeordnet werden
Der Debugger zeigt folgende Zeile an
If LCase(rng) = "x" And rng.Hidden = False Then
wat nu?
Gruß
Frank
Anzeige
AW: Daten von Excel nach Word mit VBA
03.01.2006 21:15:23
Excel
Hallo Frank,
mal ohne Testung, ist die Tabelle geschützt?

AW: Daten von Excel nach Word mit VBA
03.01.2006 22:53:50
Excel
Hi Hajo_Zi
da ich z.Zt. krank bin kann ich das nicht genau sagen...
wenn ich wieder auf Arbeit bin werde ich mal nachschauen...
aber eigentlich kann ich jede Zelle beschreiben und verändern, oder wird duch einen Autofilter die dann angezeigte Tabelle geschützt?
Gruß
Frank
Anzeige
;
Anzeige

Infobox / Tutorial

Daten von Excel nach Word mit VBA übertragen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Klicke auf "Einfügen" > "Modul".

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub NachWord()
       Dim appWord As Object
       Dim docTest As Object
       Dim str As String
       Dim rng As Range
       Set appWord = CreateObject("Word.Application")
       Set docTest = appWord.Documents.Add("H:\Eigene Dateien\Word\Wohnung.dot")
       appWord.Visible = True
       docTest.Activate
    
       For Each rng In Range("B:B")
           If LCase(rng) = "x" And rng.Hidden = False Then
               str = str & Chr(10) & rng.Offset(0, 1) & Chr(9) & rng.Offset(0, 2)
           End If
       Next rng
    
       docTest.Bookmarks("vonExcel").Range.Text = str
       Set docTest = Nothing
       Set appWord = Nothing
    End Sub
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle "NachWord" und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Laufzeitfehler 13: Typen unverträglich
    Dieser Fehler kann auftreten, wenn du versuchst, einen Bereich in eine nicht unterstützte Variable zu übergeben. Stelle sicher, dass du nur einzelne Zellen oder Textwerte übergibst.

  • Laufzeitfehler 1004: Die Hidden-Eigenschaft des Range-Objektes kann nicht zugeordnet werden
    Überprüfe, ob die Tabelle, aus der du die excel-daten in word einfügen vba möchtest, eventuell geschützt ist oder ob Filter aktiv sind. Du kannst den Autofilter temporär deaktivieren, um sicherzustellen, dass alle Zellen sichtbar sind.


Alternative Methoden

  • Direktes Kopieren: Du kannst auch einfach die gewünschten Zellen in Excel markieren, kopieren (STRG + C) und in Word einfügen (STRG + V). Diese Methode eignet sich gut für kleine Datenmengen.

  • Word-Datenquelle: Eine weitere Methode ist, Excel als Datenquelle für Word-Dokumente zu verwenden. Du kannst über die Seriendruckfunktion in Word auf die Excel-Daten zugreifen.


Praktische Beispiele

  • Um daten aus excel in word einzufügen, kannst du den oben genannten Code anpassen, um spezifische Zellbereiche auszuwählen. Beispielweise:

    docTest.Bookmarks("vonExcel").Range.Text = Range("D15:E17").Value
  • Wenn dein Excel-Dokument eine Liste mit markierten Zeilen hat, kannst du diese mithilfe des Filters herausfiltern und dann in Word übertragen.


Tipps für Profis

  • Debugging: Wenn du auf Fehler stößt, nutze den Debugger im VBA-Editor. Klicke auf die Zeile, die du überprüfen möchtest, und drücke F8, um Schritt für Schritt durch den Code zu gehen.

  • Kommentare einfügen: Dokumentiere deinen Code mit Kommentaren, um die Lesbarkeit zu erhöhen. Zum Beispiel:

    ' Diese Schleife filtert die Zellen
    For Each rng In Range("B:B")

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellbereiche in Word einfügen?
Du kannst die Zellbereiche mit & verketten. Beispielsweise:

docTest.Bookmarks("vonExcel").Range.Text = Range("D15") & Chr(10) & Range("D16")

2. Was ist das Durchschnittszeichen bei Word?
Das Durchschnittszeichen wird in Word oft als Word zeichen durchschnitt bezeichnet, wenn du mathematische Berechnungen oder spezielle Formatierungen benötigst. Um es einzufügen, kannst du die Symbolbibliothek in Word verwenden.

3. Wie wird Excel geschrieben?
Das Wort "Excel" wird mit einem großen "E" und dem Rest in Kleinbuchstaben geschrieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige