Thema Datum  Von Nutzer Rating
Antwort
Rot Word Textbausteine via Makros anpassen
18.06.2020 18:08:58 JungleMumble
NotSolved
18.06.2020 19:48:16 Mase
NotSolved

Ansicht des Beitrags:
Von:
JungleMumble
Datum:
18.06.2020 18:08:58
Views:
795
Rating: Antwort:
  Ja
Thema:
Word Textbausteine via Makros anpassen

Hallo zusammen,

 

ich würde gerne eine Template-Datei mit einigen Textbausteinen per Makro bearbeiten. Die Textbausteine in dieser Vorlagendatei sind Tabellen, in denen Informationen über Artikel und deren Preise gespeichert sind. In jedem Textbaustein steht genau ein Artikel und ein Preis (auch noch etwas blabla außenrum, das muss ich aber nicht bearbeiten). Mein Ziel wäre nun, per Makro die hinerlegten Preise in den Textbausteinen zu überschreiben, sodass ich am Ende eine Vorlagendatei mit aktuellen Preisen habe. 

Dazu habe ich nun eine Tabelle in Word implementiert, in der in einer Spalte die Artikelnummern stehen und in einer anderen die zugehörigen Preise. Glücklicherweise sind die Artikelnummern gleichzeitig die Namen der Bausteine.

Nach der Tabelle füge ich einen Abschnittumbruch ein. Im zweiten Abschnitt soll das Makro dann die Textbausteine bearbeiten. Dazu habe ich eine for-Schleife, die entlang der Tabelle jeweils eine Aritkelnummer, also den Bausteinnamen, kopiert, diesen dann im zweiten Abschnitt einfügt, den zugehörigen Textbaustein lädt, den richtigen Preis aus der ersten Tabelle kopiert und den alten Preis im Textbaustein überspeichert. Soweit klappt das auch. 

Anschließend soll natürlich der Textbaustein unter der Artikelnummer gespeichert werden und hier klappts dann nicht mehr. 

Folgenden Code habe ich im Makro:


Sub Makro4()
'
' Makro4 Makro

Dim Efgpos As Long 'Einf?geposition Textbaustein
Dim Spchpos As Long 'Speicherposition, bis hierhin wird der Textbaustein zum Speichern markiert
Dim tabsz As Integer 'Anzahl der Zeilen in Tabellle 1 (Artieklnr. und neue Preise)
Dim i As Integer 'Laufvariable f?r Tabellenabfrage
Dim ArtNr As String
'Dim TxtBstMDS As Template
Dim TxtBst As BuildingBlock

Efgpos = Selection.Start 'Setzt die aktuelle Cursorposition als Einf?geposition
Spchpos = ActiveDocument.Range(Efgpos, Efgpos).GoToNext(wdGoToSection).End 'Setzt das Ende des aktuellen Abschnitts als Speicherposotion
tabsz = ActiveDocument.Tables(1).Rows.Count 'Z?hlt die Zeilen der Tabelle 1
ActiveDocument.AttachedTemplate = "Q:\AAS BOT\Vorlagen\Textbausteine_VMS.dotm"
    
For i = 1 To tabsz 'Tabellenabfrage

    ActiveDocument.Tables(1).Cell(i, 2).Select
    ArtNr = Selection
    Selection.Copy
    ActiveDocument.Range(Efgpos, Efgpos).Select
    Selection.PasteAndFormat (wdFormatPlainText)
    Selection.Range.InsertAutoText
    ActiveDocument.Tables(1).Cell(i, 3).Select
    Selection.Copy
    ActiveDocument.Tables(2).Cell(2, 4).Select
    Selection.PasteAndFormat (wdFormatPlainText)
    ActiveDocument.Tables(2).Cell(2, 4).Select
    Selection.Extend
    Selection.Extend
    Selection.Extend
    Selection.Extend
    Selection.Extend
    Set TxtBst = ActiveDocument.AttachedTemplate.BuildingBlockEntries.Add(ArtNr, wdTypeAutoText, "General", Selection.Range, , wdInsertContent)
    Selection.Delete
    Selection.TypeParagraph
    
Next
    
End Sub

 

Vor dem Start des Makros habe ich den Cursor im Dokument im zweiten Abschnitt, wo die Textbausteine bearbeitet werden sollen. Wenn ich das Makro starte, bekomme ich den Laufzeitfehler 4198, Befehl misslungen und er stoppt in der fett markierten Zeile. Wenn ich das Makro mit [F8] Schritt für Schritt durchgehe, zeigt er mir keine Fehlermeldung und macht im Dokument auch, was ich will. Wenn ich allerdings anschließend die Textbausteine lade, um den Preis zu kontrollieren, steht darin immer noch der alte Preis. 

 

Kann mir hier jemand helfen?

 

Würde mich freuen über eure Ratschläge

MfG, JungleMumble

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Word Textbausteine via Makros anpassen
18.06.2020 18:08:58 JungleMumble
NotSolved
18.06.2020 19:48:16 Mase
NotSolved