Microsoft Excel

Herbers Excel/VBA-Archiv

zellinhalt formatieren

    Betrifft: zellinhalt formatieren von: joel
    Geschrieben am: 02.09.2003 11:58:14

    hallo

    in einer zelle steht folgende formel:

    =WENN(sprache="deutsch";"Nettogeschossfläche NGF";"surface nette SN")
    (bem: sprache ist die zelle mit der sprachwahl)

    nun möchte ich die abkürzung (NGF, SN) in fettschrift anzeigen.
    hat jemand eine idee, wie ich das machen kann?

    gruss

      


    Betrifft: AW: zellinhalt formatieren von: galenzo
    Geschrieben am: 02.09.2003 12:02:33

    Ja. Mit der "Bedingten Formatierung"...


      


    Betrifft: ??? von: joel
    Geschrieben am: 02.09.2003 12:06:59

    hallo galenzo

    wäre dir dankbar, wenn du mir da bisschen auf die Sprünge helfen könntest. bitte um konkreteren Hinweis.

    danke


      


    Betrifft: sorry falsch... von: galnzo
    Geschrieben am: 02.09.2003 13:56:07

    sorry - geht so nich..


      


    Betrifft: AW: zellinhalt formatieren von: ChrisL
    Geschrieben am: 02.09.2003 12:30:41

    Hi Jeol

    m.E. brauchst du VBA...

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Address = "$A$1" Then
        If Range("A1") = "deutsch" Then
        Range("A2") = "Nettogeschossfläche NGF"
        Range("A2").Characters(Start:=21, Length:=3).Font.FontStyle = "Bold"
        Else
        Range("A2") = "surface nette SN"
        Range("A2").Characters(Start:=15, Length:=2).Font.FontStyle = "Bold"
        End If
    End If
    End Sub
    



    Alt + F11, links Doppelklick auf Tabelle, Code einfügen.

    A1 = Zelle mit Sprache
    A2 = Zelle mit Formel

    Gruss
    Chris


      


    Betrifft: guter Ansatz.. bitte weitere hilfe von: joel
    Geschrieben am: 02.09.2003 13:11:32

    hallo chris

    danke für deine idee.. das funktioniert natürlich schon so, nur wird der aufwand enorm, wenn ich drandenke, wieviele felder da angpasst werden müssen.

    ist es nicht möglich, denn wert der zelle mit der "wenn"-formel über eine eigenschaft der zelle zu erhalten? dann könnte ich z.B. nach einer string-kette suchen, die mehrere grossbuchstaben nacheinander enthält und diese anschliessend "fett" machen. so hätte ich nur eine routine, der ich einen bestimmten range übergeben kann, in dem die zellen anschliessend angepasst werden.

    gruss


      


    Betrifft: AW: guter Ansatz.. bitte weitere hilfe von: ChrisL
    Geschrieben am: 02.09.2003 13:35:59

    Hi Joel

    Es fehlt mir leider der Durchblick in deinem Projekt. Du kannst schon nach einem String suchen... Instr(Zelle, "SN") aber wie dir das genau weiterhelfen soll versteh ich nicht.

    > ...nur wird der aufwand enorm, wenn ich drandenke, wieviele felder da angpasst werden müssen.

    Wo sind denn deine Felder? Du musst nicht jedes Feld einzeln formatieren.

    Gruss
    Chris


      


    Betrifft: AW: guter Ansatz.. bitte weitere hilfe von: joel
    Geschrieben am: 02.09.2003 14:34:57

    hallo chris

    ok, hier ein grober überblick:

    ich habe eine excel-mappe mit ca. 15 arbeitsblättern. die mappe dient der kostenkalkulation in der projektierungsphase von bürobauten.

    ich habe die aufgabe, das bestehende file zu verbessern. so habe ich mich auch entschlossen, das file zweisprachig zu machen.

    in vielen zellen steht also text in deutsch oder französisch. in einigen zellen ist der text teilweise hervorgehoben (eben, z.B. "NGF" in "Nettogeschossfläche NGF").

    für diese ca. 50 zellen, die ähnlich sind, wären also jeweils die grossbuchstaben fett. in anderen zeilen sind dies z.B. die zahlen.

    da ich innerhalb der wenn-formel nicht unterschiedlich formatieren kann, muss ich dies anschliessend mit VBA machen. die frage ist nur wie (deine erste lösung für alle zellen zu schreiben ist mir zu aufwändig).

    hoffe, du hast jetzt den durchblick und kannst mir nochmals helfen.

    danke, gruss joel


      


    Betrifft: Idee aber geht nicht :-( von: ChrisL
    Geschrieben am: 02.09.2003 15:01:37

    Hi Joel

    Die Idee hab ich, aber ich brachte es (noch) nicht zum Laufen. Muss dringend weg, bin aber später wieder zurück. Vielleicht findest du den Fehler auch selber...

    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim iBlatt As Integer
    Dim Zelle As Object
    
    If Target.Address = "$A$1" Then
    
        For iBlatt = 1 To Worksheets.Count
        
        For Each Zelle In Worksheets(iBlatt).UsedRange
        
        If Zelle = "Nettogeschossfläche NGF" Then Zelle.Characters(Start:=21, Length:=3).Font.FontStyle = "Bold"
        If Zelle = "surface nette SN" Then Zelle.Characters(Start:=15, Length:=2).Font.FontStyle = "Bold"
        
        Next Zelle
        
        Next iBlatt
    
    End If
    End Sub
    



    Gruss
    Chris


      


    Betrifft: versteh die Welt nicht mehr von: ChrisL
    Geschrieben am: 02.09.2003 18:43:24

    Hi Joel

    Sorry, aber das wird heute nichts mehr. Versteh einfach nicht wieso es nicht geht.

    Nichts für Ungut.

    Chris


      


    Betrifft: Zündende Idee ;-) von: ChrisL
    Geschrieben am: 03.09.2003 10:19:09

    Hi Joel

    So jetzt ist mir doch noch die Idee gekommen...


    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim iBlatt As Integer
    Dim Zelle As Object
    
    If Target.Address = "$A$1" Then
    Application.ScreenUpdating = False
    
        For iBlatt = 1 To Worksheets.Count
        
        For Each Zelle In Worksheets(iBlatt).UsedRange
        
        If Target = "deutsch" And Zelle = "surface nette SN" Then
        Zelle = "Nettogeschossfläche NGF"
        Zelle.Characters(Start:=21, Length:=3).Font.FontStyle = "Bold"
        End If
        
        If Target <> "deutsch" And Zelle = "Nettogeschossfläche NGF" Then
        Zelle = "surface nette SN"
        Zelle.Characters(Start:=15, Length:=2).Font.FontStyle = "Bold"
        End If
        
        Next Zelle
        
        Next iBlatt
        
    Application.ScreenUpdating = True
    End If
    End Sub
    



    Gruss
    Chris


      


    Betrifft: AW: Zündende Idee ;-) von: joel
    Geschrieben am: 03.09.2003 11:47:56

    hallo chris

    offenbar habe ich mein problem nicht klar formuliert: nur in einer zelle steht "Nettogeschossfläche NGF", in den anderen stehen analoge ausdrücke, z.B. "Aussen-Konstruktionsfläche AKF". nun sollen jeweils die Abkürzung (Grossbuchstaben) Fett geschrieben werden..

    Martin Beck hat mir eine Lösung in diese Richtung geschrieben.

    danke dir trotzdem für deine super hilfe, schliesslich war ich nicht fähig, die aufgabe verständlich zu formulieren - und gelernt habe ich auch aus deinen ausführungen (z.B. die Eigenschaft "usedRange" hatte ich bisher noch nie verwendet..

    danke nochmals, gruss


      


    Betrifft: Weiterer Ansatz von: Martin Beck
    Geschrieben am: 02.09.2003 16:12:21

    Hallo Joel,

    in einem ähnlichen Zsammenhang habe ich mal folgendes Makro geschrieben, vielleicht kannst Du es anpassen.

    Gruß
    Martin Beck

    Sub Einzelne_Zeichen_formatieren_in_ausgewähltem_Bereich()
    Application.ScreenUpdating = False
    For Each cell In Selection
        Z = cell.Row
        s = cell.Column
        Cells(Z, s).Select
        On Error Resume Next
        A = ActiveCell.Characters.Count
        For j = 1 To A
            If ActiveCell.Characters(j, 1).Text = "b" Then
                ActiveCell.Characters(j, 1).Font.Name = "Symbol"
            End If
            If ActiveCell.Characters(j, 1).Text = "2" Then
                ActiveCell.Characters(j, 1).Font.Superscript = True
            End If
        Next j
    Next cell
    Application.ScreenUpdating = True
    End Sub
    



      


    Betrifft: dipp dopp! von: joel
    Geschrieben am: 03.09.2003 11:41:17

    hallo martin

    yep, damit lässt sichs machen! danke dir!

    gruss


      


    Betrifft: oder doch nicht? von: joel
    Geschrieben am: 03.09.2003 11:54:25

    hallo nochmal

    irgendwie klappts doch nicht

    in feld A3 steht eine Wenn-Formel,
    in feld A4 steth eine Konstante

    führe ich dein Makro aus, so ändert sich nur die Konstante..

    https://www.herber.de/bbs/user/845.xls

    da wäre ich also wieder beim alten: wie spreche ich den Wert der Zelle A3 an???

    glaube da kann ChrisL weiterhelfen..

    werd mals selbst noch bisschen tüfteln

    gruss


      


    Betrifft: AW: oder doch nicht? von: ChrisL
    Geschrieben am: 03.09.2003 12:06:20

    Hi Joel

    Unter PS: hast du geschrieben > ...value.characters(..) geht nicht!

    Habe ziemlich lange gebraucht, bis ich begriffen habe, was du damit gemeint hast bzw. was ich glaube was du damit gemeint hast :-)

    Jedenfalls das Problem ist, dass du nicht Teile einer Zelle fett machen kannst, wenn eine WENN Formel drin steht. Auch manuel geht dies ja nicht, deshalb wäre es eben schön gewesen, wenn man z.B. mit ...value.characters(..) darauf hätte zugreiffen können, aber eben, geht leider nicht.

    Dies war übrigens auch das Problem, weshalb mein Makro erst nicht funktioniert hat und weshalb ich anschliessend die Formeln mit einem fixen Wert per VBA ersetzt habe.

    Lange Rede kurzer Sinn... Du musst auf Formeln verzichten, wenn du eine Zelle nur teilweise Fett formatieren willst.

    Gruss
    Chris


      


    Betrifft: ps von: joel
    Geschrieben am: 02.09.2003 13:14:33

    hab noch was vergessen:

    das problem ist nicht, den wert der zelle zu erhalten (value), sondern sein format zu ändern. ...value.characters(..) geht nicht!

    gruss und danke


     

    Beiträge aus den Excel-Beispielen zum Thema " zellinhalt formatieren"