Veröffentlicht 12. November 200816 j 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 12. November 200816 j von clusters
13. November 200816 j 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
13. November 200816 j 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 13. November 200816 j von clusters Schreibfehler
13. November 200816 j 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 13. November 200816 j von Amenos
14. November 200816 j 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?
14. November 200816 j 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
14. November 200816 j 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.