Zum Inhalt springen

Automatische formatierung in Word 2007 mit Makros


clusters

Empfohlene Beiträge

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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



Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...