VBA erstes Wort, bzw. erste Zeile in Zelle aus Wordtabelle auswählen?
Hallo zusammen,
ich erstelle gerade ein Excel Makro, welches Daten aus einer Exceltabelle in eine Word-Tabelle kopiert und dann formatiert. Diese Frage bezieht sich dabei auf eine Zelle, in die verschiedene Werte kopiert und danach jeweils ein Zeilenumbruch eingefügt werden. Nun soll der oberste Wert (Er steht somit in der ersten Zeile der Zelle) Fett gemacht werden.
Das Problem dabei ist, dass ich nicht weiß, wie ich nur die erste Zeile, bzw. den ersten Wert markieren soll. Es ist ein nicht konstanter Wert, demnach kann ich auch nicht danach suchen. Wie ich das Ganze fett bekomme weiß ich, ich bekomm nur das Marieren nicht hin. Im Internet habe ich bis jetzt keine passende Lösung gefunden, deshalb bitte ich nun euch um Hilfe.
Zusätzlich erschwerend ist, dass das Ganze ja über Excel-VBA und nicht über Word-VBA läuft.
Liebe Grüße und vielen Dank schon mal im Voraus!
Nik
2 Antworten
Das erste Wort zu erkennen, gelingt Dir mit diesem Makro.
Nach dem ersten Wort kann ein Leerzeichen (32) oder ein Zeilenvorschub (10) folgen. Diese erste Wort wird dann "Fett".
Sub erstesWortFett()
Range("A1").Select 'A1 als aktive Zelle
Tester = Cells(1, 1) 'zu untersuchende Zelle (A1)
For i = 2 To Len(Tester) 'Länge
zz = Mid(Tester, i, 1) 'einzelnes Zeichen
If Asc(zz) = 32 Then Exit For 'wenn Leerzeichen
If Asc(zz) = 10 Then Exit For 'wenn Zeilenumbruch
bis = i 'Zähler (Leerstelle)
Next i
'
With ActiveCell.Characters(Start:=1, Length:=bis).Font
.Name = "Arial"
.FontStyle = "Fett"
End With
End Sub
Reicht das so?
Gruß aus Berlin

Also wenn ich von XL den Text (mit dem ersten fetten Wort) nach Word kopiere, bleibt das erste Wort fett.
Makros in Word sind denen in XL grundsätzlich ähnlich, jedoch liegt, zumindest bei mir, das Problem in der Syntax.
Bei XL eine Zelle zu definieren fällt mit nicht schwer. Bei Word das erste Wort einer Zeile zu suchen schon.
Ich habe VBA noch nie in Word eingesetzt, nur geschrieben, aber auch nur dann, wenn ich es mit XL nicht geschafft habe. Sorry.
Gruß aus Berlin
Was sagt denn der Makrorekorder, wenn du die Schritte einmal aufzeichnest? Schafft der das nicht?
Leider zeichnet der nur den Schritt auf, in dem Fett gemacht wird, nicht wie markiert wird:
Sub Makro1()
Selection.Font.Bold = wdToggle
End Sub
Bei mir zeichnet er auch die Selektion von Textbestandteilen auf:
Sub Optimierer()
Range("A1").Select
ActiveCell.FormulaR1C1 = "abc"
'...
With ActiveCell.Characters(Start:=2, Length:=1).Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
'...
Range("A2").Select
End Sub
Wenn das nicht hinhauen sollte, splittest du einfach den Text am Chr(13) und machst pro Zeile eine eigene Zelle.
Hi nochmal,
das sieht schonmal echt top aus! Leider muss ich aber nicht in der Excel-Tabelle das Wort fett machen, sondern in der Word-Tabelle. Hatte mich etwas unklar ausgedrückt, sorry dafür.
Liebe Grüße und vielen Dank :)
Hi Britzcontrol,
danke erstmal für die Antwort!
Leider macht dieses Makro das Wort in Excel fett, ich muss aber den vorher kopierten Wert in der Word-Vorlage fett machen. Funktioniert die Art und Weise wie du es in deinem Makro gemacht hast auch für Word? Dann könnte ich es ein wenig anpassen und hätte meine Lösung :-)
Liebe Grüße und vielen Dank!