MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 06.06.2019, 15:23   #1
Patentee360
Neuer Benutzer
Neuer Benutzer
Standard VBA - Word-Dokument um bekannte "Texte" erweitern

Hallo liebe Community,

ich habe eine Aufgabe zu lösen, die für Experten wie euch sicherlich ein Kinderspiel ist Das Problem ist gar nicht so einfach zu beschreiben, ich versuchs mal:

Folgende Ausgangssituation:

Es gibt ein Word-Dokument A mit den Kapiteln

1
1.1 ÜS1 + Text1
1.2 ÜS2 + Text2


es ist nun erforderlich, dieses Dokument zu erweitern und zusätzliche Punkte hinzuzufügen, damit es so aussieht (Dokument B):

1
1.1 ÜS3 + Text3
1.2 ÜS1 + Text1
1.3 ÜS2 + Text2


Dabei können sich die Überschriftennummerierungen ändern, wenn wie oben dargestellt z.B. eine neue Section 1.1 hinzukommt.

Wie schaffe ich es nun am einfachsten, Dokument A auf Knopfdruck um fix bekannte Textstellen zu erweitern (in unserem Fall um ÜS3 + Text3)? Das Problem dabei ist, dass die Textstellen, die hinzugefügt werden (z.B. Text3) nicht nur reine Texte, sondern auch Tabellen und Bilder sind. Sie werden aber immer an den selben Stellen hinzugefügt; es ist z.B. fix, dass es immer eine neue Section 1.1 gibt und die anderen Sections runter rutschen. Auch die zu ergänzenden Inhalte sind fix bekannt und immer die gleichen (Text3 ist z.B. immer die gleiche Tabelle).

Wie geht man hier eurer Meinung nach am besten vor? Meiner Meinung nach wäre es am einfachsten, das vorhandene Dokument A und ein Dokument mit den zu erweiternden Inhalten (in diesem Fall ÜS3 + Text3) zu erstellen, und diese Inhalte dann ins Dokument A hineinzukopieren.

Vielen Dank für eure Unterstützung!

LG
Patentee360
Patentee360 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 06.06.2019, 15:25   #2
Patentee360
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Ich habe übrigens ein Thema gefunden, das mir aber nicht sehr weiterhilft...

https://www.ms-office-forum.net/foru...d.php?t=298618

LG
Patentee360
Patentee360 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 06.06.2019, 16:53   #3
G.O.Tuhls
MOF Meister
MOF Meister
Standard

Einfügen | Text: Objekt | Text aus Datei
Wenn Du Deine Überschriften sauber als solche formatiert und gegliedert hast, übernimmt Word die Fortschreibung allein.

Gruß
G.O.

__________________

Wer mehr über PowerPoint und Word wissen möchte, kann gern mal hier reinschauen.
G.O.Tuhls ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.06.2019, 07:22   #4
Patentee360
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

vielen Dank für den Tipp, jedoch habe ich dann den gesamten Text aus der Datei einfach hinten am bestehenden Dokument angefügt.

Das ursprüngliche Dokument sollte um gewisse, fix vorgegebene Texte an fix vorgegebenen Stellen erweitert werden, um so bei Bedarf ein "erweitertes Formular" erstellen zu können.

LG
Patentee360
Patentee360 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.06.2019, 12:59   #5
G.O.Tuhls
MOF Meister
MOF Meister
Standard

Jeder Textbaustein als eigene Datei zu speichern, wäre die Lösung.

Gruß
G.O.

__________________

Wer mehr über PowerPoint und Word wissen möchte, kann gern mal hier reinschauen.
G.O.Tuhls ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.06.2019, 22:09   #6
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo zusammen,

als Alternative zu zusätzlichen Dokumenten wäre es auch möglich, die Erweiterungstexte / Tabellen / Bilder in Form von Autotext vorzuhalten.

Vorteil: Bei eventueller Weitergabe des Originaldokuments muss kein weiteres Dokument mitgegeben werden.
Voraussetzung: Das Dokument muss eine Dokumentvorlage sein und die Autotexte müssen in dieser Vorlage abgespeichert werden (es sei denn, es wird nicht weitergegeben und muss immer nur an ein- und demselben Rechner bearbeitet werden).

Um den beiden zusätzlichen Wünschen (fixe Texte an fixen Stellen, und per VBA) Genüge zu tun, sind aber noch ein paar Fragen zu klären:
  • Soll an den fixen Stellen eine Auswahl an Zusatztexten angeboten werden oder kommt da immer genau derselbe Baustein hin?
  • Soll der "Knopf" für die Knopfdruck-Lösung im Dokument nach Einfügen sichtbar bleiben oder verschwinden?
  • Soll die Einfügung definitiv sein oder soll sie auch wieder rückgängig zu machen sein?

Im Anhang ein einfaches Beispiel, das auf der Annahme beruht, dass bei allen drei Fragen die zweite Alternative zu bejahen ist. Der Autotext wird per Macrobutton eingefügt. Diesen zwecks Einfügen des Autotextes doppelklicken. Das Makro hinter diesem Button:
Code:

Private Sub bausteinRein()
Application.Templates(ThisDocument.FullName).BuildingBlockEntries("Baustein").Insert _
where:=Selection.Range
End Sub
(Makro ist im angehängten Dokument bereits enthalten)

Was die automatische Anpassung der Überschriften betrifft, wurde im Beitrag 3 das Nötige vermerkt.
Angehängte Dateien
Dateityp: dotm Basisdoku.dotm (46,0 KB, 2x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.06.2019, 06:48   #7
Patentee360
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

vielen Dank, das geht genau in die richtige Richtung, zu dienen drei Fragen:

Zitat:

Soll an den fixen Stellen eine Auswahl an Zusatztexten angeboten werden oder kommt da immer genau derselbe Baustein hin?

Es kommt an verschiedenen fixen Stellen immer der gleiche Zusatztext rein. Es kommt beispielsweise immer eine neue Section 1.1 mit einer Tabelle und die anderen Sections verschieben sich demgemäß nach unten (auf 1.2, 1.3 usw.)

Zitat:

Soll der "Knopf" für die Knopfdruck-Lösung im Dokument nach Einfügen sichtbar bleiben oder verschwinden?

Es muss keine Knopfdruck-Lösung sein, es reicht der Aufruf des Makros im Dokument. Das Hinzufügen des Textes mach nur ich (also eine "interne" Lösung)

Zitat:

Soll die Einfügung definitiv sein oder soll sie auch wieder rückgängig zu machen sein?

Die Einfügeoperation kann definitiv sein.

Bei deinem Makro wird aktuell eine Tabelle an der Curserposition eingefügt. Wenn du mir das Beispiel noch ein klein wenig adaptieren könntest, dass:

- verschiedene fix vordefinierte Sections mit Texten/Tabellen/... an definierten Stellen eingefügt werden (z.B. als neue Section 1.1), dann hätte ich glaube ich meine Lösung. Wo definiere ich am besten die vordefinierten Texte/Tabellen usw., da wird wohl ein separates Word-Dokument erforderlich sein nehme ich an. Ich brauche auch digitale Signaturfelder usw.

Ich habe dir ein Dokument angehängt, das zeigen soll, wie dein Dokument nach dem Makroaufruf z.B. aussehen sollte.

PS.: Ich bin was Makros betrifft leider ein völliger Anfänger, ich weiß nicht mal, woher die Tabelle nach dem Aufruf deines Makros kommt...

Danke und BG
Patentee360
Angehängte Dateien
Dateityp: docx Basisdoku_nach_Makroaufruf.docx (23,6 KB, 1x aufgerufen)
Patentee360 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.06.2019, 15:49   #8
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Patentee,

dein Musterdokument bringt mir nur ein bisschen Erkenntnisgewinn. Es gibt halt offenbar einfach mehr als eine Erweiterung ("Neuer Abschnitt", "Neuer Text", "Unterschriften"). Verstanden hab ich, dass jede Erweiterung ihren speziellen Platz hat, an dem sie, und nur sie eingefügt werden soll, und das es das Problem mit der Weitergabe des Dokuments nicht gibt.

Über die Art und Weise, wie du deine Erweiterungen einfügen willst, hab ich aber noch zwei verschiedene Vermutungen im Kopf:

Vermutung 1:
Du willst eine bestimmte Erweiterung nur bedingt einfügen, d.h. es kann auch Dokumente ohne diese Erweiterung geben. Ob eingefügt wird oder nicht, wird von Fall zu Fall entschieden. Dann würde der Ansatz, mit Erweiterungen als Autotext und Macrobutton zum Einfügen schon passen.

Vermutung 2:
Die Erweiterungen müssen auf jeden Fall im Dokument stehen, aber in einer jeweils aktualisierten Fassung. Um diese pflegen zu können, willst du sie separaten Dokumenten erfassen und in einem bestimmten Ordner auf deinem Rechner sammeln. Alle Erweiterungen würden dann per Makro in einem Aufwasch an ihrem Platz eingefügt, und würden dort die alten Versionen ersetzen. Dann müsste das Makro entsprechend oft die Funktion Einfügen > Objekt > aus Datei nachzubilden.

Kannst du das noch mal erklären? Und bitte auch, was du unter einem digitalen Signaturfeld verstehst.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.06.2019, 16:29   #9
Patentee360
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

vielen Dank für deine Antwort.

Ich habe ein Dokument, von dem ich ausgehe. Jetzt gibt es zwei Möglichkeiten: Entweder ich lasse das Dokument so, wie es ist, oder ich will das Dokument erweitern. Bei dem erweiterten Dokument kommen immer fix die gleiche Anzahl an Sections (Überschriften mit Text/Tabellen/etc.) hinzu, es gibt nur die beiden Varianten. Ein Zwischendings gibt es nicht.

Vielleicht ein Beispiel:

Angenommen es gibt ein Formular A zum Ausfüllen nach der Besichtigung eines Fahrzeugs: Was hat einem gefallen, usw.

Wenn sich jemand entscheidet, das Fahrzeug zu kaufen, will man zusätzliche Inhalte dem Formular hinzufügen. Um nicht das Formular A in ein neues, erweitertes Formular B portieren zu müssen, möchte ich die zusätzlichen Inhalte einfach in das bestehende Formular A hinzufügen, um so auf die Fragen bzgl. des Kaufs eingehen zu können. Die zusätzlichen Inhalte sind z.B. Fragen, Tabellen, Diagramme, etc., die der Kunde ausfüllt.

Es gibt also nur die beiden Möglichkeiten: Formular A so lassen oder via Makro o.ä. das Formular um fix definierte Inhalte erweitern.

Ich hoffe, ich habe mich halbwegs präzise ausgedrückt.

Vielen Dank für deine Mühe!

LG
Patentee360
Patentee360 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.06.2019, 18:52   #10
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Patentee,

also eine Alles-Oder-Nichts-Lösung. Ich hab mich deshalb für das Konzept "Autotexte in einem Aufwasch" entschieden und dein Musterdokument entsprechend bearbeitet. Schau mal, ob ich das richtig verstanden habe. Zur Erklärung, was ich dafür getan hab:

Dokumentvorlage erstellt:
Ich hab aus deinem Musterdokument eine Dokumentvorlage mit Makros gemacht, damit darin die Autotexte gespeichert werden können. Jeder, der die Dokumentvorlage doppelklickt, erhält ein jungfräuliches Exemplar ohne Erweiterungen. Nachdem Erweiterungen eingetragen wurde, kannst du dieses Exemplar speichern, wohin du willst, ohne die Dokumentvorlage zu ändern.

Textmarken für die Erweiterungen festgelegt:
An den Positionen, an denen eine Erweiterung eingefügt werden soll, hab ich je eine offene Textmarke angelegt (das ist eine, die an der Position der blinkenden Schreibmarke erzeugt wurde). Du siehst sie, wenn du in den Optionen > Erweitert > Dokumentinhalt anzeigen die Option Textmarken anzeigen aktivierst. Die Textmarkennamen lauten "BausteinMarke" plus eine fortlaufende Nummer (Bausteinmarke1, Bausteinmarke2 usw.).

Die Erweiterungen als Autotexte in der Dokumentvorlage gespeichert:
Aus jeder Erweiterung in deinem Musterdokument (also für "Neuer Abschnitt", "Neuer Text", "Unterschriften"), hab ich einen Autotext erstellt, ihn "Baustein" gefolgt von einer fortlaufenden Nummer genannt und in der Dokumentvorlage abgespeichert.
Wenn du nicht weißt, wie man Autotexte erstellt, nimm die angehängte Kurzanleitung.

Makro zum Einfügen aller Autotexte an den zuständigen Positionen:
Das folgende Makro ist im Musterdokument bereits enthalten. Ich hab es ein wenig kommentiert. Vielleicht reicht das ja schon zum Verständnis.
Code:

Sub erweiterungenRein()
Dim i As Long, j As Long
Dim bmRange As Range

With ActiveDocument
    
    'Schleife über alle Textmarken
    For i = 1 To .Bookmarks.Count
       
        'feststellen, ob der aktuelle Textmarkenname mit "Baustein" beginnt
            If Left(.Bookmarks(i).Name, 8) = "Baustein" Then
                
                'Wenn ja, Position der Textmarke merken
                Set bmRange = .Bookmarks(i).Range
                
                'Hilfszähler erhöhen
                j = j + 1
                
                'Autotext mit dem Namen "Baustein" und der aktuellen j-Nummer einfügen
                Application.Templates(ThisDocument.FullName).BuildingBlockEntries("baustein" & j).Insert _
                where:=bmRange
            End If
    Next i
End With
End Sub
Angehängte Grafiken
Dateityp: pdf Kurzanleitung Autotext.pdf (54,6 KB, 3x aufgerufen)
Angehängte Dateien
Dateityp: dotm Basisdoku_vor_Makroaufruf.dotm (48,4 KB, 3x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.06.2019, 05:43   #11
Patentee360
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

super, vielen Dank, du bist mein Held! Genau das habe ich gesucht, und mit deinem Minimnalbeispiel kenne ich mich soweit aus, dass ich das nach meinen Wünschen erweitern kann.

Nur noch eine Frage:
Ich habe versucht, das Makro in mein bestehendes Dokument (dort, wo ich es verwenden möchte) zu verwenden.

Ich klicke in meinem Dokument auf
Entwicklertools > Makros > Erstellen (bei "Makros in:" habe ich mein Dokument ausgewählt)
VBA öffnet sich und ich kopiere in dieses Fenster deinen Code rein. Das Word-Dokument speichere ich als .docm. Im Anschluss erstelle ich eine Textmarke mit "Baustein1" und einen Autotext mit "baustein1". Beim Aufruf des Makros kommt dann "Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt

Vielen Dank für deine Hilfe!

LG
Patentee
Patentee360 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.06.2019, 05:51   #12
Patentee360
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

habe mein Dokument nun als Vorlage (dotm) wie du gespeichert und jetzt funktioniert es!

Ich bedanke mich nochmal sehr herzlich bei dir für deine Hilfe!

LG
Patentee360
Patentee360 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.