#Excel: #Text mit #VBA #fett #formatieren – aber nur #zumTeil


Sie wollen immer noch #Teile Ihrer #Zellinhalte per #VBA #formatieren? Da sind aber Texte mit einer Länge von mehr als 255 Zeichen dabei (das geht seit Version 2007) … und es #funktioniert #nicht?

Dann gehen wir das anders als gestern an – wir müssen die Positionen wegschreiben, dann die Klammern löschen und dann erst formatieren:

Sub Brackets_Bold()
Dim myCell As Range
Dim myTxt As Variant
Dim myLen As Long
Dim StartPos As Long
Dim EndPos As Long
Dim iStart(1 To 200) As Long
Dim iEnd(1 To 200) As Long
Dim I As Long
Dim nI As Long
    On Error GoTo 0
    For Each myCell In ActiveWorkbook.ActiveSheet.UsedRange.Cells
        I = 1
        EndPos = 1
        StartPos = InStr(EndPos, myCell.Text, "[")
        While StartPos <> 0
            If Left(myCell.Formula, 1) <> "=" Then
                'myCell.Characters(Start:=StartPos, Length:=1).Delete
                EndPos = InStr(StartPos, myCell.Text, "]")
                'StartPos = StartPos
                If EndPos = 0 Then
                    EndPos = Len(myCell.txt)
                End If
                iStart(I) = StartPos
                iEnd(I) = EndPos
                I = I + 1
    
                StartPos = InStr(EndPos + 1, myCell.Text, "[")
            Else
                StartPos = 0
            End If
        Wend
        nI = I - 1
        myCell.Replace What:="[", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        myCell.Replace What:="]", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

        For I = 1 To nI
            With myCell.Characters(Start:=iStart(I) - 2 * (I - 1), Length:=iEnd(I) - iStart(I) - 1).Font
                .Bold = True
            End With
        Next I
    Next myCell
End Sub

Puh. Lösung gefunden 🙂

Über katharinakanns

Microsoft Office Master Specialist mit viel Verständnis für IHR Geschäft - ich analysiere IHRE Situation, optimiere IHRE Prozesse, automatisiere IHRE Routineaufgaben, finde IHRE Lösung, unterrichte IHRE MitarbeiterInnen, mache Vorlagen mit IHRER CI, spare IHRE Zeit und IHR Geld. Ich freue mich darauf, SIE kennenlernen zu dürfen :-)
Dieser Beitrag wurde unter 2007, 2010, 2013, 2016, Excel, VBA abgelegt und mit , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s