Microsoft Excel

Herbers Excel/VBA-Archiv

Zelleninhalt unterschiedlich formatieren?

    Betrifft: Zelleninhalt unterschiedlich formatieren? von: Hermann
    Geschrieben am: 06.10.2003 14:33:02

    Hallo,

    ich möchte den Inhalt einer Zelle verschiedenfarbig formatieren:
    Die Zelle enthält einen 11-stelligen Text, (z.B.: X7770006699) aber nicht immer dasselbe!
    Davon sollen
    das 2., 3. und 4. Zeichen ROT, (also 777 = rot)
    das 8. und 9. Zeichen Blau (also 66 = blau)
    formatiert werden.

    Manuell geht das, aber wie schaffe ich das für 100 Zellen untereinander?
    Eine Zelle so vorformatieren und dann Format übertragen mit dem gelben Pinsel geht nicht.
    Als Makro bei einer Zelle aufgezeichnet und dann mehrere Zellen überstreichen und ablaufen lassen geht auch nicht.

    Weiß jemand eine (einfache) Lösung?

    Gruß Hermann

      


    Betrifft: AW: Zelleninhalt unterschiedlich formatieren? von: Jörg Gradert
    Geschrieben am: 06.10.2003 14:45:55

    Hallo Herrmann,
    Zellen markieren, dann folgendes Makro

    Sub Makro1()
      
      With Selection.Characters(Start:=2, Length:=3).Font
             .ColorIndex = 3
        End With
        With Selection.Characters(Start:=8, Length:=2).Font
             .ColorIndex = 5
        End With
        
    End Sub
    


    Gruss Jörg


      


    Betrifft: AW: Zelleninhalt unterschiedlich formatieren? von: Hermann
    Geschrieben am: 06.10.2003 14:51:46

    Hallo Jörg,

    huch, das ging aber schnell!
    Und funktioniert sogar, Danke

    "With Selection.Characters..."

    das war's

    Gruß Hermann


      


    Betrifft: AW: Zelleninhalt unterschiedlich formatieren? von: WernerB.
    Geschrieben am: 06.10.2003 14:58:03

    Hallo Hermann,

    wenn Du dieses Makro in das betreffende Tabellenblatt-Modul kopierst, dann geht's automatisch ...
    Den Bereich habe ich mit "A1:A100" definiert, den musst Du ggf. noch anpassen.


    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
          If Len(Target.Value) = 11 Then
            Application.EnableEvents = False
            With Target.Characters(Start:=2, Length:=3).Font
              .ColorIndex = 3
            End With
            With Target.Characters(Start:=8, Length:=2).Font
              .ColorIndex = 5
            End With
            Application.EnableEvents = True
          End If
        End If
    End Sub
    

    Viel Erfolg wünscht
    WernerB.

    P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).


      


    Betrifft: AW: Zelleninhalt unterschiedlich formatieren? von: Hermann
    Geschrieben am: 06.10.2003 15:28:51

    Hallo WernerB,

    auch diese Lösung sieht gut aus!

    danke auch an dich.

    Gruß Hermann


      


    Betrifft: @Jörg und Werner von: th.heinrich
    Geschrieben am: 06.10.2003 15:39:50

    hallo,

    funzzt das auch falls nur ZAHLEN in der ZELLE stehen. ZAHLEN als TEXT FORMATIERT geht nicht.

    gruss thomas


      


    Betrifft: AW: @Jörg und Werner von: WernerB.
    Geschrieben am: 06.10.2003 15:50:22

    Hallo Thomas,

    wenn Du die leere Zelle als Text formatierst und dann erst die elfstellige Zahl einträgst, dann funzt das schon.
    Es funzt nicht, wenn Du in eine Standard-formatierte Zelle die Zahl einträgst und die Zelle dann nachträglich als Text formatierst.
    Motto: Wie man sich bettet, so liegt man ...


    Gruß WernerB.


      


    Betrifft: AW: @Jörg und Werner von: th.heinrich
    Geschrieben am: 06.10.2003 16:00:56

    danke Werner,

    also ist in excel TEXT<>TEXT<>'TEXT mit dem hochkomma hinterher funzzt es auch ueber STANDARD.

    das mag verstehen wer will.

    gruss thomas

    ps. motto: manchmal liege ich neben dem bett ;-)


      


    Betrifft: AW: @Jörg und Werner von: Jörg Gradert
    Geschrieben am: 06.10.2003 16:42:27

    Hallo Thomas,
    ich habe festgestellt, dass es per Makro dann funktioniert, wenn es händisch auch geht.
    in dem Ausdruck
    ="12345678"
    lassen sich in der Bearbeitungsleiste keine einzelnen Zeichen einfärben
    bei
    '12345678
    funktioniert dies.

    bei
    12345678
    sieht es zwar zuerst so aus, als ob es funktioniert, nach Eingabe geht die Formatierung aber wieder verloren. Ist halt eine Textformatierung und darum wohl auf Zahlen so nicht anwendbar.

    Gruss Jörg


      


    Betrifft: AW:danke @Jörg und Werner von: th.heinrich
    Geschrieben am: 06.10.2003 17:14:33

    hallo,

    es funzzt sowohl bei leere zelle als TEXT FORMATIEREN, dann ZAHL eintragen.

    alsauch FORMAT STANDARD und HOCHKOMMA.

    dabei ist das WORKSHEET_CHANGE einfacher zu handeln.

    mit beiden WERTEN kann man weiterrechnen.

    gruss thomas


     

    Beiträge aus den Excel-Beispielen zum Thema " Zelleninhalt unterschiedlich formatieren?"