Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Per Makro Text von Excel zu Word

Per Makro Text von Excel zu Word
08.06.2018 10:38:47
Excel
Hallo
Ich nutze Office 365 unter Windows 10. Ich habe hier ein Makro, welches mir bestimmte Zelleninhalte einer geöffneten Excel-Tabelle in eine bestimmte Word-Datei schreiben soll. Die Word Datei soll dafür auch vom Makro geöffnet werden.
Unter Excel 2013 hatte das Makro funktioniert. Aber jetzt unter Office 365 tut es das nicht mehr richtig. Die Word-Datei wird zwar geöffnet, aber der Text verbleibt in der Zwischenablage und wird nicht in die Word-Datei eingeügt.
Wo ist da denn der Fehler? Könntr Ihr mir da evtl. helfen?
Gruß
Ingo
Sub Bestellzettel()
Dim Adresse As DataObject
Dim sTxt As String
Dim irow As Long
Set Adresse = New DataObject
irow = ActiveCell.Row
Adresse.SetText Range("Vorname").Cells(irow) & " " & Range("Nachname").Cells(irow)
Adresse.PutInClipboard
Shell "C:\[XXX]\WINWORD.EXE ""C:\[XXX]\Bestellzettel.docx""", 1
SendKeys "^v"
Application.SendKeys "{NUMLOCK}"
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Mit dem von dir verwendeten...
08.06.2018 11:21:33
dir
Hallo, :-)
... Befehl "SendKeys" gibt es häufig Probleme, wenn z. B. nicht das richtige "Fenster" aktiv ist. Arbeite besser mit z. B. Textmarken (Bookmarks) im Worddokument. ;-)
Alles zu Excel nach Word aus meinem Blog...
Hier ein fertiges Beispiel...
Das Beispiel musst Du halt noch an deine Gegebenheiten anpassen. ;-)
Servus
Case

Anzeige
AW: Mit dem von dir verwendeten...
08.06.2018 11:34:43
dir
Das richtige Fenster ist aktiv. Daran kann es also eigentlich nicht liegen.
Ich danke Dir aber dennoch sehr für Deine Hilfe. Aber leider übersteigt Dein Beispiel meine sehr bescheidenen VBA-Kenntnisse extrem.
Was ist, wenn du es mal...
08.06.2018 12:03:07
Case
Hallo, :-)
... so probierst? ;-)
Option Explicit
Sub Main()
Dim objApp As Object
Set objApp = CreateObject("Word.Application")
objApp.Visible = True
objApp.Documents.Open Filename:="C:\Temp\wd.doc"
Range("A1:B4").Copy
objApp.Selection.PasteSpecial
Set objApp = Nothing
End Sub
Du musst natürlich Pfad- und Dateiname und den Bereich der kopiert wird anpassen.
Servus
Case

Anzeige
AW: Was ist, wenn du es mal...
08.06.2018 12:36:58
Ingo
Ich habe es nun so probiert. Funktioniert aber leider nicht.
Option Explicit
Sub Test()
Dim objApp As Object
Dim irow As Long
irow = ActiveCell.Row
Set objApp = CreateObject("Word.Application")
objApp.Visible = True
objApp.Documents.Open Filename:="C:\[XXX]\Bestellzettel.docx"
Range("Vorname").Cells (irow) & " " & Range("Nachname").Cells(irow).Copy
objApp.Selection.PasteSpecial
Set objApp = Nothing
End Sub

Was meinst du mit...
08.06.2018 13:16:43
Case
Hallo, :-)
... "funktioniert nicht"? ;-)
Wird nichts kopiert? Kommt eine Fehlermeldung?
Das sieht schon mal ominös aus: ;-)
Range("Vorname").Cells (irow) & " " & Range("Nachname").Cells(irow).Copy
Erkläre doch mal was kopiert werden soll.
Servus
Case

Anzeige
AW: Was meinst du mit...
08.06.2018 13:32:55
Ingo
Es gibt eine Spalte "Vorname" und eine Spalte "Nachnahme". Dessen Inhalte der aktiven Zeile sollen kopiert werden als Text mit einen Leerzeichen dazwischen. Mit meinem bisherigen Makro klappt das ja auch wunderbar. Nur wird wohl das SendKeys "^v" irgendwie nicht ausgeführt, was den Inhalt der Zwischenablage dann in die Word Datei schreiben kopieren soll.
Dein Makro gibt mir eine Fehlermeldung:
Fehler beim Kompilieren:
Unzulässige Verwendung einer Eigenschaft.
Und was mir noch aufgefallen ist:
Mit Deinem Makro dauert das Öffner der Word-Datei ein paar Sekunden. Mit dem Shell-Befehl meines bisherigen Makros öffnet sich Word quasi sofort.
Anzeige
Probiere es mal nach...
08.06.2018 14:20:46
Case
Hallo, :-)
... diesem Muster: ;-)
Option Explicit
Sub Main()
Dim Adresse As DataObject
Dim objApp As Object
Set Adresse = New DataObject
Set objApp = CreateObject("Word.Application")
objApp.Visible = True
objApp.Documents.Open Filename:="C:\Temp\wd.doc"
Adresse.SetText Range("Vorname").Cells(ActiveCell.Row).Value & " " & _
Range("Nachname").Cells(ActiveCell.Row).Value
Adresse.PutInClipboard
objApp.Selection.PasteSpecial
Set Adresse = Nothing
Set objApp = Nothing
End Sub
Das ist jetzt nur aus dem hohlen Bauch, da ich unterwegs bin.
Es muss nicht nur am "SendKeys" liegen. Unter Umständen wird durch den Shell Aufruf die Zwischenablage gelöscht. Deshalb mache ich es über "CreateObject". ;-)
Servus
Case

Anzeige
AW: Probiere es mal nach...
08.06.2018 14:25:40
Ingo
Die Zwischenablage wird nicht gelöscht. Das hatte ich doch schon geschrieben. Mein bisheriges Makro öffnet die Word Datei und in der Zwischenablage befinden sich genau die Daten, die dort sein sollen. Ich kann diese ja mit STRG+V einfügen. Das soll aber eben automatisch erfolgen. Das ist schon alles.
AW: Probiere es mal nach...
08.06.2018 14:28:54
Ingo
Dein neuer Code scheint schon mal zu funktionieren. Super!!! Kann man noch dafür sorgen, dass die Word-Datei nicht nur im Hintergrund geöffnet wird, sondern im Vordergrund? Und warum dauert das Öffnen von Wird mit Deiner Lösung denn so lange?
Mache nach...
09.06.2018 03:01:35
Case
Hallo, :-)
... "PasteSpecial" (Paste reicht hier auch) noch ein:
objApp.Activate
Servus
Case

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige