Anzeige
Archiv - Navigation
1928to1932
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
mehrere Word-Tabellen befüllen
22.05.2023 15:24:12
krug96

Hallo Jochen,

ich hätte da doch noch eine Frage.
Ich habe den Programmcode in meine Umgebung übernommen. Dabei passiert folgendes:


    Set wrdApp = CreateObject("Word.Application")
    Set wrdDoc = wrdApp.Documents.Add(Vorlage_9960DE)
    With wrdApp
        .Visible = True

        'Word in den Vordergrund bringen
        .Activate

        .Selection.HomeKey Unit:=wdStory
'        .Selection.TypeParagraph
    End With


Hier wird die Word-Vorlage kopiert und als neue Datei erzeugt. Dann werden u.A. Informationen wie z.B.
wrdDoc.FormFields("anzSeiten").Result = ActiveDocument.Content.Information(wdNumberOfPagesInDocument)

an das neue Word-Dokument übergeben. Danach wird die vorhandene Tabelle entsprechend kopiert, die Felder werden ausgefüllt.


    'Tabelle kopieren (Anzahl der zu erzeugenden Tbellen)
    wrdApp.ActiveDocument.Tables(18).Range.Copy
    For Tb = 1 To iSelCnt1 + iSelCnt2 + iSelCnt3 - 1

        '18te Tabelle kopieren
        wrdApp.ActiveDocument.Tables(18).Range.Copy

        With wrdApp
            .Selection.EndKey Unit:=wdStory

            'Abstand zwischen den Tabellen
            .Selection.TypeParagraph
            .Selection.TypeParagraph
            .Selection.Paste
        End With
    Next


und zum Schluss wird alles gespeichert und geschlossen.


    'schliesst das Word-Dokument
    wrdDoc.Save
    wrdDoc.Close

    'beendet Word
    wrdApp.Quit

    'löscht den Verweis auf das Word Objekt
    Set wrdDoc = Nothing
    Set wrdApp = Nothing

    'Excelmeldungen einschalten
    Application.ScreenUpdating = True


Das funktioniert aber nur einmal.
Führe ich das alles nochmals aus, dann kommt eine Fehlermeldung --> "Der Remote-Server-Computer exisitert nicht oder ist nicht verfügbar."
Er stört sich dann an dem Befehl
wrdDoc.FormFields("anzSeiten").Result = ActiveDocument.Content.Information(wdNumberOfPagesInDocument)


Damit das das nochmals ausgeführt werden kann, muss ich aus der UserForm raus und diese dann neu starten, damit das dann genau 1x wieder funktioniert.


Was könnte das sein?

Vielen dank für eine kurze Rückmeldung.
Grüße
Michael

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Word-Tabellen befüllen
22.05.2023 17:29:15
JoWE
Hallo Michael,
zu Beginn wird doch mit dem Set-Befehl
das Word-Objekt (wrdApp, der Remote-Server) im Speicher initialisiert.
Zum Schluss wird dann Word mit wrdApp.quit beendet und das
entsprechende Objekt mit dem Befehl Set wrdApp = Nothing aus
dem Speicher entfernt. Danach ist dann natürlich das Objekt
(der Remoteserver -nämlich Word-) nicht mehr vorhanden.

Ich kann Deine Umgebung nicht sehen und meine Programmierung hatte doch auch
das Schließen der Userform beinhaltet, oder?
Vllt. lädst Du daher Deine Arbeitsmappe nochmal hoch damit
ich sehe was Da in Deinem Sinn zu ändern ist.

Gruß
Jochen


Anzeige
AW: mehrere Word-Tabellen befüllen
23.05.2023 10:08:16
krug96
Hallo Jochen,

hier nochmals die Arbeitsmappe.

https://www.herber.de/bbs/user/159279.zip

--> wenn ich das FormField mit einem festen Wert fülle, klappt es. Verweise ich auf aktives Dokument und will damit das FormField füllen, dann kommt eine Fehlermeldung, obwohl das Dokument zu diesem Zeitpunkt schon vorhanden ist.
Wie kann man das ohne "ActiveDocument" erledigen?

Könnte man das Dokument mit einem internen Namen versehen und dann diesen Namen ansprechen?

Vielen Dank für Deine Hilfe
Gruß Michael


Anzeige
AW: mehrere Word-Tabellen befüllen
23.05.2023 12:10:47
Jowe
Sorry,

aber ich sehe in der jetzt mitgelieferten Word-Vorlage kein FormField.
Darum steigt das Makro auch genau an der Stelle ' "wrdDoc.FormFields.Item("anzSeiten").Result = "5" ' aus
Irgendwie sieht das auch anders aus als das ursprüngliche und von mir doch eigentlich realisierte Ziel.
Es ist nicht schön wenn ohne erkennbaren Grund oder Erklärung die Aufgabe verändert wird.
Ich habe also keine Ahnung was Du nun eigentlich erreichen möchtest,
und daher bin ich jetzt raus.

Gruß
Jochen.



AW: mehrere Word-Tabellen befüllen
23.05.2023 13:40:53
krug96
Hallo Jochen,

die Datei "WordTabellen.xlsm" ist genau so, wie ich Sie damals von Dir bekommen hatte. In dieser Version sind zwei Word-Vorlagen berücksichtigt.
Eine Version, bei der die Tabelle neu erzeugt wird --> vorlage.dotx
Eine Version, bei der die Tabelle kopiert wird --> vorlage_mit_Tabelle.dotx

WordTabellen.xlsm ist so eingestellt, dass vorlage_mit_Tabelle.dotx benutzt wird.
Angepasst wurde von mir nur, "unload Me" ist auskommentiert und "UserForm1.ListBox1.Clear" ist eingefügt worden
Zudem habe ich die Wordvorlage so verändert, dass es eine zusätzliche Seite gibt und das mit den Tabellen erst ab der zweiten Seite starten soll.
Auf der ersten Seite sollten dann allegemeine Daten zu finden sein, wie z.B. Seitenzahl der Prüfung, Anzahl der Fragen und Anzahl der möglichen Punkte.

Mein Probem ist, dass es einmal sauber funktioniert und ein Word-Dokument erzeugt wird. Lasse ich das ein weiteres mal durchlaufen kommt dann der fehler.
Ich glaube aber, dass statt ActiveDocument.Content.Information(wdNumberOfPagesInDocument) das Problem mit "wrdDoc.ActiveDocument.Content.Information(wdNumberOfPagesInDocument)" vielleicht schon behoben ist.

Vielen Dank für Deine Hilfe
Gruß Michael


Anzeige
AW: mehrere Word-Tabellen befüllen
23.05.2023 15:02:38
Jowe
OK,

also hier mein aktuelles Ergebnis auf Basis Deines letzten Beitrags:
https://www.herber.de/bbs/user/159287.zip
Die Userform kann jetzt nach der Erstellung einer Word-Datei immer weiter für weitere Dokumente genutzt werden.
Ich habe in die Userform eine weitere Schaltfläche "Beenden" eingefügt. Damit wird die Userform geschlossen.

Gruß
Jochen

14 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige