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-Key: 91018079747

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

Printed on: May 4, 2024 at 23:05 o'clock

Member: schrick
schrick Apr 25, 2024 updated at 14:36:32 (UTC)
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
Member: donky2000
donky2000 Apr 25, 2024 at 13:12:40 (UTC)
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
Member: schrick
schrick Apr 25, 2024 updated at 13:52:17 (UTC)
Goto Top
Lass es mal sichtbar laufen. Visible = True.

Vermutlich eine Dialogbox die du mit
"objWord.DisplayAlerts = False" irgnorieren musst.
Member: donky2000
donky2000 Apr 25, 2024 at 14:21:22 (UTC)
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".

,
Member: schrick
schrick Apr 25, 2024 updated at 14:30:45 (UTC)
Goto Top
Dann war noch eine unsichtbare Instanz im Hintergrund gehangen.
Member: schrick
schrick Apr 25, 2024 updated at 14:41:28 (UTC)
Goto Top
Hier das Ergebnis meines Tests nach dem Ausführen des Skripts:

https://we.tl/t-RC4xIJzXwU

screenshot

Works as designed face-wink.
Member: donky2000
donky2000 Apr 26, 2024 at 07:35:55 (UTC)
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
Member: donky2000
donky2000 May 02, 2024 at 13:53:36 (UTC)
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
Member: schrick
Solution schrick May 02, 2024 updated at 13:58:20 (UTC)
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.
Member: donky2000
donky2000 May 03, 2024 at 07:57:14 (UTC)
Goto Top
Der neue Code läuft perfekt..
Vielen Dank.

Gruß Markus