Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen mit Umbruch formatieren: nur die erste | Herbers Excel-Forum


Betrifft: Zellen mit Umbruch formatieren: nur die erste von: Joachim
Geschrieben am: 18.11.2009 10:00:31

Hallo,

ich formatiere mit einer Schleife alle Einträge auf Schriftart = FETT:

For i = 5 To 100
If ActiveSheet.Cells(i, 1).Value <> "" Then
Cells(i, 3).Select
Selection.Font.Bold = True
End If
Next i

Nun habe ich aber ein Spalte, da sind in der Zelle die Informationen durch einen Umbruch getrennt:

Firma XYZ
Code: ABC
Termin: 01.11.2009

Ich möchte mit meiner Schleife aber nur die erste Zeile Fett machen, wie oben angedeutet. Wie mcht man sowas ?

Danke Joachim

  

Betrifft: Umbruch automatisch oder von Hand von: Tino
Geschrieben am: 18.11.2009 10:41:13

Hallo,
ist der Umbruch von Hand eingegeben oder automatisch durch die Einstellung Zeilenumbruch entstanden.

Ist dieser automatisch eingefügt, sehe ich keine Möglichkeit.

Gruß Tino


  

Betrifft: AW: Umbruch automatisch oder von Hand von: Joachim
Geschrieben am: 18.11.2009 10:48:52

Hi Tino,

das sind Daten , die aus einer SAP Maschine kommen, das ist dieser Umbruch mit drin. Ist also nicht von Hand gemacht.
Wenn dies so nicht möglich sein sollte, kann man den Bereich eingrenzen bis zum Wort "CODE". Die zweite Zeile beginnt immer mit "Code"

Gruss
Joachim


  

Betrifft: AW: Umbruch automatisch oder von Hand von: Tino
Geschrieben am: 18.11.2009 11:01:56

Hallo,
versuche es mal so, ich stelle noch die Farbe ein kannst Du ja rauslöschen.

Sub TextHervorheben()
Dim Zelle As Range
Dim objMatch As Object, Regex As Object
Dim SuchBereich As Range
Dim iColor As Integer

'Bereich anpassen 
Set SuchBereich = Sheets("Tabelle1").Range("C5:C100")
'Farbe einstellen 
iColor = 7

Application.ScreenUpdating = False

    Set Regex = CreateObject("Vbscript.Regexp")
    With Regex
        .IgnoreCase = False
        .MultiLine = True
        .Pattern = "[ |\w]{1,}"
        .Global = True
    End With
    
    With SuchBereich.Font
     .ColorIndex = 0
     .Bold = False
    End With
        
    For Each Zelle In SuchBereich  'Zellbereich angeben 
      If Zelle.Text <> "" Then
        Set objMatch = Regex.Execute(Zelle.Text)
        If Not objMatch Is Nothing Then
            With Zelle.Characters(objMatch(0).FirstIndex + 1, Len(objMatch(0))).Font
             .ColorIndex = iColor
             .Bold = True
            End With
            Set objMatch = Nothing
        End If
       End If
    Next Zelle

Application.ScreenUpdating = True
End Sub
Gruß Tino


  

Betrifft: besser wäre villeicht. von: Tino
Geschrieben am: 18.11.2009 14:11:54

Hallo,
bei .Pattern diesen String zu verwenden.

.Pattern = "\S{1,}"

Alle sichtbaren Zeichen bis zum ersten nicht sichtbaren Zeichen.

Gruß Tino


  

Betrifft: Danke Tino, funktioniert wunderbar :-) von: Joachim
Geschrieben am: 18.11.2009 20:32:53




  

Betrifft: AW: Zellen mit Umbruch formatieren: nur die erste von: Oberschlumpf
Geschrieben am: 18.11.2009 11:01:47

Hi Joachim

Ersetz deinen Code mal durch diesen:

Dim liFett As Integer

    For i = 5 To 100
        If ActiveSheet.Cells(i, 1).Value <> "" Then
            liFett = InStr(LCase(Cells(i, 3).Value), "code")
            If liFett > 0 Then
                    Cells(i, 3).Characters(Start:=1, Length:=liFett _
                                - 1).Font.FontStyle = "Fett"
                Else
                    Cells(i, 3).Font.Bold = True
            End If
        End If
    Next i

Hilfts?

Ciao
Thorsten


  

Betrifft: Danke, funktioniert auch perfekt :-) von: Joachim
Geschrieben am: 18.11.2009 20:34:07




Beiträge aus den Excel-Beispielen zum Thema "Zellen mit Umbruch formatieren: nur die erste"