Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Fetter Teiltext einer Zelle in Klammern setzen

Forumthread: Fetter Teiltext einer Zelle in Klammern setzen

Fetter Teiltext einer Zelle in Klammern setzen
21.07.2006 10:36:50
Gregor
Hallo Excel-Profis
Mit dem nachfolgenden Code erreiche ich, dass ein in Klammern gesetzter Teiltext einer Zelle fett formatiert wird.
Nun zu meiner Frage: Ist es möglich, dass ganze umgekehrt zu machen: d.h., ein fett formatierter Teiltext einer Zelle in Klammern zu setzen? Wie würde ein entsprechender Code lauten?
Vielen Dank für deine kompetente Hilfe!
Grüsse Gregor

Sub Fett_Schrift()
Application.ScreenUpdating = False
Dim intStart As Integer, intEnde As Integer
Dim rng As Range
For Each rng In Range("e1:E" & Anzahl)
If Len(rng) > 0 Then
intStart = InStr(1, rng, "[")
intEnde = InStr(1, rng, "]")
If intStart > 0 And intEnde > 0 Then
Do
rng.Characters(intStart + 1, intEnde - intStart - 1).Font.Bold = True
intStart = InStr(intEnde + 1, rng, "[")
intEnde = InStr(intEnde + 1, rng, "]")
Loop While intStart > 0 And intEnde > 0
End If
End If
Next
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fetter Teiltext einer Zelle in Klammern setzen
21.07.2006 11:56:58
Matthias
Hallo Gregor,
ein Ansatz (Test für A1 des aktiven Tabelle):

Sub test()
Dim z As Range, i  As Long, war_fett As Boolean, ist_fett As Boolean
Dim ns As String
Set z = Range("A1")
war_fett = False
ns = ""
For i = 1 To Len(z)
ist_fett = z.Characters(i, 1).Font.Bold
If ist_fett Then
If Not war_fett Then ns = ns & "("
ns = ns & Mid(z, i, 1)
Else
If war_fett Then ns = ns & ")"
ns = ns & Mid(z, i, 1)
End If
war_fett = ist_fett
Next i
MsgBox ns
End Sub

Gruß Matthias
Anzeige
AW: Fetter Teiltext einer Zelle in Klammern setzen
21.07.2006 12:11:35
Matthias
Hallo Gregor,
oder besser so:

Sub test()
Dim z As Range, war_fett As Boolean, ist_fett As Boolean
Dim i As Integer
Dim l As Integer
Set z = Range("A1")
war_fett = False
l = Len(z)
i = 1
Do
ist_fett = z.Characters(i, 1).Font.Bold
If ist_fett Then
If Not war_fett Then _
ActiveCell.Characters(i, 0).Insert ("("): i = i + 1: l = l + 1
Else
If war_fett Then _
ActiveCell.Characters(i, 0).Insert (")"): i = i + 1: l = l + 1
End If
war_fett = ist_fett
i = i + 1
Loop Until i > l
End Sub

Gruß Matthias
Anzeige
AW: Fetter Teiltext einer Zelle in Klammern setzen
21.07.2006 12:25:08
Gregor
Hallo Matthias / Excel-Profis
Vielen Dank für deinen super Ansatz.
Folgende Punkte müsste man noch optimieren:
- Wenn die Fettschrift am Ende der Zelle steht, schreibt dein Code keine Schlussklammer
Beispiel: "Das war das Spiel" (Spiel fett) ergibt bei deinem Code:
"Das war das (Spiel" anstatt: "Das war das (Spiel)"
- wie bringe ich deinen Code dazu, eine ganze Spalte (z.B. A:A) zu durchlaufen?
Vielen Dank im voraus!
Grüsse Gregor
Anzeige
AW: Fetter Teiltext einer Zelle in Klammern setzen
21.07.2006 12:28:51
Erich
Hallo Gregor,
mit Matthias' Ansatz ginge das wohl so:
Option Explicit
Sub Fett_Klammern()
Dim rng As Range, Anzahl As Long
Dim ii As Long, warFett As Boolean, istFett As Boolean, strT As String
Anzahl = 4
For Each rng In Range("e1:E" & Anzahl)
warFett = False
strT = ""
For ii = 1 To Len(rng)
istFett = rng.Characters(ii, 1).Font.Bold
If istFett <> warFett Then
strT = strT & IIf(istFett, "[", "]")
warFett = istFett
End If
strT = strT & Mid(rng, ii, 1)
Next ii
If istFett Then strT = strT & "]"
rng = strT
rng.Font.Bold = False
Next rng
End Sub
(Wenn der Text zwischen den Klammern Fett sein soll, geht das ja mit deinem ersten Makro.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Merci
21.07.2006 12:56:36
Gregor
Hallo Matthias, Erich und Sylvio
That's it! Vielen Dank für eure Bemühungen.
Ich verneige mich vor euch!
Gregor

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige