donky2000
Goto Top

Zeilen einer Word-Datei in Excel einfügen

Hallo zusammen,
ich will ein Makro schreiben, welches die ersten 20 Zeilen eines Word-Dokuments in Excel einfügt.
Über Einfügen --> Objekt will es nicht funktionieren.

Wir benutzen Office 2016 bis Office 365.

Danke und Grüße aus dem Westerwald.

Content-ID: 91018079747

Url: https://administrator.de/contentid/91018079747

Ausgedruckt am: 25.11.2024 um 04:11 Uhr

12764050420
12764050420 25.04.2024 aktualisiert um 16:36:32 Uhr
Goto Top
Sub ImportParagraphsFromWord()
    Dim objDoc As Object
    Dim i As Integer
    
    With CreateObject("Word.Application")  
        .Visible = False
        .DisplayAlerts = False
        Set objDoc = .Documents.Open(ThisWorkbook.Path & "\test.docx")  
        ' Loop through the first 20 paragraphs and copy the text to Excel  
        For i = 1 To 20
            ThisWorkbook.Sheets("Tabelle1").Cells(i, 1).Value = objDoc.Paragraphs(i).Range.Text  
        Next i
        
        objDoc.Close False
        .DisplayAlerts = True
        .Quit
    End With
    Set objDoc = Nothing
End Sub

Gruß schrick
donky2000
donky2000 25.04.2024 um 15:12:40 Uhr
Goto Top
Hallo schrick,
erstmal Danke für die schnelle Antwort.

Beim Ausführen des Codes erscheint nach einiger Zeit folgende Meldung:
clip0001

Nach OK und warten wiederholt sich das, bis ich Excel abschieße...

Gruß Markus
12764050420
12764050420 25.04.2024 aktualisiert um 15:52:17 Uhr
Goto Top
Lass es mal sichtbar laufen. Visible = True.

Vermutlich eine Dialogbox die du mit
"objWord.DisplayAlerts = False" irgnorieren musst.
donky2000
donky2000 25.04.2024 um 16:21:22 Uhr
Goto Top
Word wird geöffnet und es erscheint die Meldung, dass die Datei von mir selbst schon geöffnet ist.
Mit der Auswahl schreibgeschützt, warten usw..
Word habe ich natürlich vorher im Taskmanager "gekillt".

,
12764050420
12764050420 25.04.2024 aktualisiert um 16:30:45 Uhr
Goto Top
Dann war noch eine unsichtbare Instanz im Hintergrund gehangen.
12764050420
12764050420 25.04.2024 aktualisiert um 16:41:28 Uhr
Goto Top
Hier das Ergebnis meines Tests nach dem Ausführen des Skripts:

https://we.tl/t-RC4xIJzXwU

screenshot

Works as designed face-wink.
donky2000
donky2000 26.04.2024 um 09:35:55 Uhr
Goto Top
Hallo,
Du gibst Dir ja wirklich alle Mühe mit mir.
Vielen Dank!
Aber es funktioniert leider nicht.
In einer Office 2010 Umgebung erscheint die obrige "OLE-Aktion" Meldung.
Bei Office 2016/19 erscheint folgendes:

clip0002


Manchmal geht es auch bis Zeile 6
Hängt das vielleicht mit irgendwelchen Sicherheitseinstellungen zusammen?
Ich google das mal durch.
Ich fahre gleich ein paar Tage weg und melde mich am Dienstag.

Gruß Markus
donky2000
donky2000 02.05.2024 um 15:53:36 Uhr
Goto Top
Hallo,
so, ich habe jetzt rumprobiert und eine Lösung gefunden:
Wenn ich mich mit F8 LANGSAM durch den Debugger taste funktioniert der Code.
Darauf hin habe ich nach dem Einfügen in Excel die Zeilen

Application.Wait (Now + TimeValue("0:00:01"))
Application.CutCopyMode = False

eingefügt und es läuft.

Wäre schön zu wissen warum.
Nochmal vielen Dank an schrick.

Gruß Markus
12764050420
Lösung 12764050420 02.05.2024 aktualisiert um 15:58:20 Uhr
Goto Top
Hatte das oben noch umgestellt damit der Text ohne Copy n Paste übertragen wird. Das geht auch wesentlich schneller.
Wäre schön zu wissen warum.
Dein Rechner ist zu lahm face-smile.
donky2000
donky2000 03.05.2024 um 09:57:14 Uhr
Goto Top
Der neue Code läuft perfekt..
Vielen Dank.

Gruß Markus