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

Forumthread: Daten aus Word-Dok via VBA in Excel übertragen

Daten aus Word-Dok via VBA in Excel übertragen
10.08.2014 14:03:05
smileys
Hallo!
vorab schon einmal vielen Dank für die Hilfe!
Was ich machen will:
Aus einer Datei (Word-Dokument) verschiedene Absätze nehmen und per Command-Button Klick in eine Excel Liste/Datenbank eintragen. Also jeder Absatz in eine Spalte weiter nach rechts. Bei dem Nächsten Word-Dok das ganze wiederholt in der Nächsten Zeile, am besten da auf die Art if Cells (x,y) = "" dann übertragen else nächste Zeile überprüfen usw bis es auf eine Leere stößt.
Ob der Command-Button in Excel oder der Word-Datei sein soll ist mir egal, Wenn allerdings in Excel, muss ich bzw der User irgendwie die Möglichkeit haben, das Word-Doc auszuwählen, aus dem die Daten kommen sollen. Wenn in Word der Button ist, ist das nicht von Nöten, da die Excel Datei Konstant die selbe ist und ihren Namen nie verändern wird.
Das ist eine sehr magere Beschreibung, ich weiss, aber da ich noch Anfänger bin, weiss ich nicht welche Informationen noch alles von größerer Bedeutung sind. Bitte einfach nachfragen wenn irgendetwas unklar ist!
Ich bin für eure Hilfe unendlich dankbar, bin mittlerweile schon recht verzweifelt.
LG

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Word-Dok via VBA in Excel übertragen
10.08.2014 19:05:15
JoWE
Hallo,
hier ein Ansatz mit einem Word-Makro (Verweis auf Microsoft Excel x.x Object Library erforderlich):
Sub Absaetze_nach_Excel_Click()
Dim myApp As Excel.Application
Dim myBook As Excel.Workbook
Dim mySheet As Excel.WorkSheet
Set myApp = CreateObject("Excel.Application")
Set myBook = myApp.Workbooks.Add
Set mySheet = myBook.Worksheets(1)
Dim sp As Long, ze As Long
ze = 2
For sp = 1 To ActiveDocument.Paragraphs.Count
mySheet.Cells(ze, sp).Value = ActiveDocument.Paragraphs(sp)
Next
myApp.Visible = True
Set myApp = Nothing
End Sub

Gruß
Jochen

Anzeige
AW: Daten aus Word-Dok via VBA in Excel übertragen
11.08.2014 07:59:52
smileys
gleich bei der ersten Zeile die Fehlermeldung
"Fehler beim Kompilieren:
Benutzerdefinierter Typ nicht definiert"
Wie definiere ich diese Typen? Vielen Dank für die schnelle Antwort ^^ Jetzt habe ich schonmal was worauf ich baun kann.
LG

AW: Daten aus Word-Dok via VBA in Excel übertragen
11.08.2014 08:32:16
smileys
got it! Google ist doch endlich mal mein Freund gewesen :D
musste unter Extras-Verweise ein paar Häkchen setzen,
Danke für deine Hilfe (:
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten aus Word-Dokumenten via VBA in Excel übertragen


Schritt-für-Schritt-Anleitung

Um Daten aus einem Word-Dokument mithilfe von VBA in Excel zu übertragen, befolge diese Schritte:

  1. Öffne Excel und erstelle ein neues Workbook.

  2. Aktiviere die Entwicklertools: Gehe zu "Datei" > "Optionen" > "Menüband anpassen" und aktiviere das Kontrollkästchen für die Entwicklertools.

  3. Füge einen Command-Button hinzu:

    • Gehe zum Reiter "Entwicklertools" und klicke auf "Einfügen".
    • Wähle den "Button (Formularsteuerung)" und ziehe ihn auf dein Arbeitsblatt.
  4. Öffne den VBA-Editor:

    • Klicke mit der rechten Maustaste auf den Button und wähle "Makro zuweisen". Klicke auf "Neu".
  5. Füge den folgenden VBA-Code ein:

    Sub Absaetze_nach_Excel_Click()
       Dim myApp As Word.Application
       Dim myDoc As Word.Document
       Dim mySheet As Worksheet
       Set myApp = New Word.Application
       Set myDoc = myApp.Documents.Open("Pfad\zu\deinem\Word-Dokument.docx")
       Set mySheet = ThisWorkbook.Worksheets(1)
       Dim sp As Long, ze As Long
       ze = 2
       For sp = 1 To myDoc.Paragraphs.Count
           mySheet.Cells(ze, sp).Value = myDoc.Paragraphs(sp).Range.Text
       Next sp
       myApp.Visible = True
       myDoc.Close
       myApp.Quit
    End Sub
  6. Passe den Pfad an: Ersetze "Pfad\zu\deinem\Word-Dokument.docx" mit dem tatsächlichen Pfad zu deiner Word-Datei.

  7. Starte das Makro: Klicke auf den Button, um die Absätze in Excel zu übertragen.


Häufige Fehler und Lösungen

Fehler: "Benutzerdefinierter Typ nicht definiert"

  • Lösung: Stelle sicher, dass du die Microsoft Word Object Library in Excel aktiviert hast. Gehe zu "Extras" > "Verweise" und aktiviere das entsprechende Kontrollkästchen.

Fehler: Daten werden nicht korrekt übertragen

  • Lösung: Überprüfe den verwendeten Code und stelle sicher, dass die Absätze korrekt referenziert werden (myDoc.Paragraphs(sp).Range.Text).

Alternative Methoden

Eine alternative Methode besteht darin, das Word-Dokument direkt aus Word zu öffnen und von dort aus die Daten in Excel zu übertragen. Hierzu kannst du ein ähnliches VBA-Skript in Word erstellen, das die Daten direkt in die Excel-Tabelle einfügt.


Praktische Beispiele

Wenn du mehrere Word-Dokumente hast, kannst du den Code so anpassen, dass du eine Schleife verwendest, um durch alle Dokumente in einem bestimmten Ordner zu iterieren und die Daten zu übertragen.

Sub Alle_Dokumente_nach_Excel()
    Dim myApp As Word.Application
    Dim myDoc As Word.Document
    Dim mySheet As Worksheet
    Dim Dateiname As String
    Dim ze As Long
    ze = 2
    Set myApp = New Word.Application
    Dateiname = Dir("Pfad\zu\deinem\Ordner\*.docx")
    Set mySheet = ThisWorkbook.Worksheets(1)

    Do While Dateiname <> ""
        Set myDoc = myApp.Documents.Open("Pfad\zu\deinem\Ordner\" & Dateiname)
        For sp = 1 To myDoc.Paragraphs.Count
            mySheet.Cells(ze, sp).Value = myDoc.Paragraphs(sp).Range.Text
        Next sp
        myDoc.Close
        ze = ze + 1
        Dateiname = Dir
    Loop
    myApp.Quit
End Sub

Tipps für Profis

  • Überlege, die Übertragung in eine Fehlerbehandlungsroutine einzubetten, um Probleme beim Öffnen von Word-Dokumenten oder beim Zugriff auf Absätze elegant zu behandeln.
  • Verwende Application.ScreenUpdating = False am Anfang deines Makros, um die Ausführungsgeschwindigkeit zu erhöhen, und setze es am Ende wieder auf True.

FAQ: Häufige Fragen

1. Wie finde ich den Pfad zu meinem Word-Dokument? Um den Pfad zu deinem Word-Dokument zu finden, öffne das Dokument und klicke auf "Datei" > "Informationen". Dort siehst du den vollständigen Pfad.

2. Kann ich die Daten in eine bestimmte Excel-Zelle einfügen? Ja, du kannst die Zielzelle in mySheet.Cells(ze, sp).Value entsprechend anpassen. Ändere die Werte von ze und sp nach Bedarf.

3. Ist dieses Tutorial für alle Excel-Versionen geeignet? Ja, der VBA-Code sollte in den meisten gängigen Excel-Versionen funktionieren, solange die Microsoft Word Object Library referenziert ist.

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