Thema Datum  Von Nutzer Rating
Antwort
Rot String aus einer Variable in Word weiter bearbeiten
13.11.2022 16:16:12 Max
NotSolved
13.11.2022 17:08:46 Gast22733
NotSolved
13.11.2022 17:45:30 Max
NotSolved
13.11.2022 19:27:16 Max
NotSolved
13.11.2022 19:40:02 xlKing
NotSolved
13.11.2022 20:01:02 Max
NotSolved
13.11.2022 19:29:13 xlKing
NotSolved
13.11.2022 19:43:28 Gast38469
NotSolved
13.11.2022 20:07:02 xlKing
NotSolved
13.11.2022 20:28:45 xlKing
NotSolved
13.11.2022 20:57:11 Max
NotSolved

Ansicht des Beitrags:
Von:
Max
Datum:
13.11.2022 16:16:12
Views:
367
Rating: Antwort:
  Ja
Thema:
String aus einer Variable in Word weiter bearbeiten

Ich habe ein Excel-Arbeitsblatt und möchte dort ein Makro starten, das ein Word-Dokument erstellt und (unter anderem) aus den Daten des Excel-Arbeitsblattes automatisch einen Text generiert. Dazu habe ich die relevanten Daten in Variablen geschrieben, ein Word-Dokument erstellen lassen und kann den Inhalt der Variablen auch dort einfügen. So weit so gut.

Jetzt will ich aber mit dem eingefügten Text einer bestimmten Variable in Word noch weiterarbeiten. Der String ist eine Aufzählung von Begriffen, die mal durch Kommata, mal durch Semikolons getrennt sind. Die sollen in eine Tabelle mit einer Spalte und jeder neue Begriff in eine eigene Zeile. Die Tabelle soll zusätzlich rahmenlos sein und das ganze soll als Aufzählung dargestellt werden.

Da ich mich mit VBA bei Word überhaupt nicht auskenne, habe ich hier den Makro-Rekorder zur Hilfe genommen: den Text aus der Variablen markiert, Semikolon durch Komma ersetzen damit es einheitlich ist, dann Komma+Leerzeichen durch einen neuen Absatz ersetzen und dann Text in Tabelle umwandeln. Die Tabelle habe ich dann noch rahmenlos gemacht und als letztes den Aufzählungsbutton geklickt.

Hier ist der Quelltext, den der Makrorekorder ausspuckt:

Sub ND()
'
' ND Makro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ";"
        .Replacement.Text = ","
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = ", "
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.ConvertToTable Separator:=wdSeparateByParagraphs, NumColumns:=1, _
         NumRows:=7, AutoFitBehavior:=wdAutoFitFixed
    With Selection.Tables(1)
        .Style = "Tabellenraster"
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
    End With
    Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderRight).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
    Selection.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone
End Sub


Woran es bei mir jetzt scheitert, ist dass der Makrorekorder das natürlich nur mit dem Text macht, den ich vorher markiert habe. Ich würde den Codeblock aber gerne in mein eigenes Makro einfügen, wo direkt mit dem Inhalt der Variablen gearbeitet wird, ohne dass ich händisch nochmal den Text markieren und das Makro starten muss.

Kann mir jemand auf die Sprünge helfen?


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 String aus einer Variable in Word weiter bearbeiten
13.11.2022 16:16:12 Max
NotSolved
13.11.2022 17:08:46 Gast22733
NotSolved
13.11.2022 17:45:30 Max
NotSolved
13.11.2022 19:27:16 Max
NotSolved
13.11.2022 19:40:02 xlKing
NotSolved
13.11.2022 20:01:02 Max
NotSolved
13.11.2022 19:29:13 xlKing
NotSolved
13.11.2022 19:43:28 Gast38469
NotSolved
13.11.2022 20:07:02 xlKing
NotSolved
13.11.2022 20:28:45 xlKing
NotSolved
13.11.2022 20:57:11 Max
NotSolved