Hallo Martina, genau diese aussagefähige Fehlermeldung bekomme ich auch, wenn irgend etwas offen ist. Also: MeinBeispiel.docx (von früher) und MeinBeispiel.xlsm (neue Anlage unten) in ein Verzeichnis stecken und MeinBeispiel.xlsm öffnen, Makro starten. Ergebnis sollte ein offenes PDF und Dateien erg.doc, temp.doc und ablauf.txt in diesem Verzeichnis sein. Wenn das so nicht ist: Excel schließen und ablauf.txt im Forum posten (oder mir Zugang auf Deinen Rechner per Teamviewer geben).
Hallo Martina, dann stirbt er in dem Else-Zweig und vermutlich an dem .Windows("erg.docx").Activate aus Gründen, die man möglichenfalls in Excel365 rausfinden könnte, ich mit meinem 2010 bin dann leider raus. Vielleicht findet sich ein Anderer mit 365, der hier weitermachen kann und will. Viel Erfolg wünscht der AlteDresdner
das Window muss nicht unbedingt aktiviert werden. Es könnte auch so gehen. WordErg wird hierbei aus der vorangehenden Zuweisung im If-Teil genommen. Ob das Ergebnis wie gewünscht ist, sei mal dahingestellt. Zumindest läuft es so durch.
With WordErg .Goto What:=3, Which:=1, Count:=1 .Range.InsertBreak Type:=7 .Goto What:=3, Which:=1, Count:=1 .Range.InsertFile Filename:=ThisWorkbook.Path & "\temp.docx", Range:="", _ ConfirmConversions:=False, Link:=False, Attachment:=False End With
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Moin! Also habe auch kein Ex365. Falls es aber an dem Zugriff auf Erg.xls liegt, hätte ich hier mal die Datei umgebaut. Damit läuft alles im Dokument und es werden keine zusätzlichen Blätter zum Zwischenspeichern angelegt. Die activate etc. entfallen damit. Der Code merkt sich die ersten beiden Blätter (oder auch nur das erste). Dort werden die Textmarken ersetzt und dann der Teil ans Ende kopiert. Zum Schluß wird der Anfang gelöscht. Die Ausgabe in die ablauf.txt habe ich gelassen. Das .visible von Word habe ich rausgenommen. Wenn es drin war, hat mich Excel immer geärgert und wollte den Zwischenspeicher nicht löschen (zumindest mit cutcopymode, mit dataobject wollte ich nix einbauen) und somit die Word Instanz nicht killen. Ihr könnte ja mal testen, ob das hilft. VG
Hallo Matthias, endet bei mir (2010) mit dem bekannten Excelfehler. Im Debugger zieht er sich bei Set WordDoc = Wordobj.documents.Open... in sein Innenleben zurück und "wartet auf das Ende einer OLE-Aktion". Ich bin dann raus (und denke über ein neueres Excel nach )
Vielen Dank für eure Antworten! Ich hätte wirklich weder gedacht, dass das so ein schwieriges Problem ist, noch, dass sich so hilfsbereite Menschen finden. Ich bin euch wirklich sehr dankbar für euren Einsatz, aber leider funktioniert es so noch nicht.
@Schauan/AlterDresdner: Wenn ich deine Variante einfüge, so wie es AlterDresdner gemacht hat, gibt es ja immernoch eine Zeile Wordobj.Windows("erg.docx").Activate, bei der das Makro abstürzt. Kommentiere ich diese aus, läuft es durch und erzeugt ein PDF, aber leider nur von der ersten Reihe, wie von AlterDresdner beschrieben.
@Matthias: Auch deine Variante läuft bei mir leider nicht durch, in der Zeile "rseite.Copy" erhalte ich den Laufzeitfehler 4198.
Tut mir leid, dass ich selbst keine große Hilfe bin, aber das übersteigt meine Excelkompetenzen
Moin! Habe eben mal bei mir nochmal getestet. Da läuft es fehlerfrei durch. Habe auch die 2010 Version. Wobei die fehlerhafte Zeile ja auch in eurem Ausgangscode schon mit drin war. Bis zu der Stelle hat sich nur geändert, dass ich 2 Variablen mehr habe und der Schleifenkopf davor entfallen ist. Ansonsten ist da alles gleich inkl. der Zeile. Mhm. Komisch. VG