Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Automatische formatierung in Word 2007 mit Makros

Empfohlene Antworten

Veröffentlicht

hallo community, :)

ich hab da ein kleines problem und vielleicht könnt ihr mir ja helfen.

Ich habe einen Text in einer Editor-Textdatei und füge diesen in ein Word Dokument ein. Jetzt hätte ich gerne ein Makro, welches automatisch formatiert weiß aber nicht wie ich das machen soll.

Meine Textdatei sieht ungefär so aus (Beispiel):

Kundennummer #12345

Produkt Wahre xy

Preis xx.yy€

Kundennummer soll z.B. Überschrift1, Produkt Standard und Preis Kursiv sein.

Leider kenne ich mich nicht mit VBA aus und freue mich deshalb über jeden noch so kleinen Tipp eurerseits.

Vielen lieben Dank und freundliche Grüße aus Hofheim

Julia

Bearbeitet von clusters

ich würde mal auf so etwas tippen, wie:

suche kundennummer

-> mache Überschrift1

suche produkt

-> mache Standard

suche preis

-> mache Kursiv

aber wie gesagt ich weiß nicht wie das funktioniert und würde mich sehr über eine hilfe freuen :)

nachmals grüße

hallo :)

ich hab doch noch ein bisschen was heraus finden können, bräuchte aber immernoch eure hilfe.

Die Schriftart fehlt mir noch z.B Arial

und nach "Kundennummer" kommt ja noch ein weiterer Text Teil, der ist aber jeweils unterschiedlich und somit möchte ich meine formatierung auf die ganze zeite ausweiten und nicht nur auf "Kundennummer".

Sub test()

'

' test Makro

'

'


    Dim Zeichen$(1)


    Zeichen$(1) = "Kundennummer"



    Selection.Find.Format = False

    Selection.Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphLeft

    Selection.Find.Replacement.Font.Size = 18

    Selection.Find.Replacement.Font.Bold = False

    Selection.Find.Replacement.Font.ColorIndex = wdBlack



    For i = 1 To 1

        With Selection.Find

            .Text = Zeichen$(i)

            .Replacement.Text = ""

            .Forward = True

            .Wrap = wdFindContinue

            .Format = True

            .MatchCase = True

        End With

        Selection.Find.Execute Replace:=wdReplaceAll

    Next

End Sub

Danke und viele grüße

Julia

Bearbeitet von clusters
Schreibfehler

Hallo :)

was immer hilft um die befehle zu finden die man sucht ist: das machen was du haben willst und diese schritte in ein makro aufzeichnen

für einen markierten text wäre z.b.

Selection.Font.Name="Arial"

wenn die ganze seite -sofern ichs richtig verstehe- später die formatierung von "kundennummer" haben soll.. wieso formatierst du dann die vorlage/das dokument nicht schon von vornherein so wie du es haben willst? das würde dir einige schritte abnehmen.

wenn du dein vorhandenes makro noch bisschen änderst.. (in etwa so)


Sub test()


    Dim i As Integer

    Dim Zeichen$(1)


    Zeichen$(1) = "Kundennummer"



    Selection.Find.Format = False

    Selection.Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphLeft

    Selection.Find.Replacement.Font.Size = 18

    Selection.Find.Replacement.Font.Name = "Calibri"

    Selection.Find.Replacement.Font.Bold = False

    Selection.Find.Replacement.Font.ColorIndex = wdBlack



    For i = 1 To 1

        With Selection.Find

            .Text = Zeichen$(i)

            .Replacement.Text = ""

            .Forward = True

            .Wrap = wdFindContinue

            .Format = True

            .MatchCase = True

        End With

        Selection.Find.Execute Replace:=wdReplaceAll

    Next

End Sub

ändert er von "Kundennummer" die Schriftgröße, Art etc. allerdings, wie du bereits festgestellt hast, nur von "kundennummer". mit "selection.wholestory" markierst du das gesamte dokument. ich hab die änderungen allerdings nur aus dem kopf aufgeschrieben - kann es im moment also leider nicht testen. müsstest unter umständen dann schauen was dir der vba-editor an möglichkeiten gibt für meine änderungen. vielleicht bringt dich das ja schon weiter :) *edit: sollte statt "zeite" zeile heissen müsstest du statt mit .wholestory mit
Selection.EndKey Unit:=wdLine, Extend:=wdExtend

(oder so ähnlich) die entsprechende zeile in der der cursor zu dem zeitpunkt steht, markieren und ändern können.

Bearbeitet von Amenos

Vielen dank für deine antwort :)

ja das sollte eigendlich zeile heißen hab mich de blöd vertippt irgendwie :upps

hat soweit alles gut funtioniert^^

kann man jetzt noch irgendwie einstellen, dass nicht die zeile in der, der cursor steht formatiert wird, sondern die gesamte zeile in der "Kundennummer" steht?

das dürfte mit folgendem gehen:



Sub test()


    Dim i As Integer

    Dim Zeichen$(1)


    Zeichen$(1) = "Kundennummer"


    For i = 1 To 1

        With Selection.Find

            .Text = Zeichen$(i)

            .Replacement.Text = ""

            .Forward = True

            .Wrap = wdFindContinue

            .Format = True

            .MatchCase = True

        End With

        Selection.Find.Execute

        Selection.EndKey Unit:=wdLine, Extend:=wdExtend

        Selection.Font.Name = "Arial"

        Selection.Font.Color = wdColorRed


        Next


End Sub



dann übertrage ich der Zeile einfach die selbe formatierung wie von "Kundennummer" und alles hat die gleiche formaierung

danke dir :)

du hast mir sehr weiter geholfen

viele liebe grüße

Julia

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.