Clever-Excel-Forum

Normale Version: Formatierung innerhalb eines Feldes
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Kann ich bei einer Zuweisung der folgenden Art:

=WENN(November!B14<>Oktober!B14;Oktober!B14 & " / " & November!B14;"")

den Teil hinter dem "/" so formatieren, dass er fett (oder kursiv oder rot o.ä.) dargestellt wird?

Kann ich anstelle des Trenners " / " einen Zeilenwechsel darein bekommen?

Danke und Gruß

Klaus
(10.11.2015, 17:37)lakiexceler schrieb: [ -> ]Kann ich bei einer Zuweisung der folgenden Art:

=WENN(November!B14<>Oktober!B14;Oktober!B14 & " / " & November!B14;"")

den Teil hinter dem "/" so formatieren, dass er fett (oder kursiv oder rot o.ä.) dargestellt wird?

Kann ich anstelle des Trenners " / " einen Zeilenwechsel darein bekommen?

Danke und Gruß

Klaus

Hallo, zur ersten Frage: Das geht nicht mit den Bordmitteln. Zu Frage zwei..:

=WENN(November!B14<>Oktober!B14;Oktober!B14 &ZEICHEN(10)& November!B14;"")
(10.11.2015, 18:00)Jockel schrieb: [ -> ]Hallo, zur ersten Frage: Das geht nicht mit den Bordmitteln. Zu Frage zwei..:

=WENN(November!B14<>Oktober!B14;Oktober!B14 &ZEICHEN(10)& November!B14;"")

Hi Jörg,
Danke, hat funktioniert (aber erst, nachdem ich die Zellen mit "Zeilenumbruch" formatiert habe, sonst hat er das Zeichen ignoriert. Aber das ist jetzt schon mal schön.

Hast du einen Tipp zur ersten Frage "ohne" Bordmittel? Irgendwas, was ich mir mal anlesen kann?

Danke und Gruß

Klaus
Hi Klaus,


Zitat:Hast du einen Tipp zur ersten Frage "ohne" Bordmittel? Irgendwas, was ich mir mal anlesen kann?

wenn es denn überhaupt möglich ist, dann nur mit VBA. Das müssen dir aber die VBA-Spezies sagen.
Hallöchen,

einen durch Formel ermittelten Ausdruck teilweise formatieren. Eine Formel eigentlich gar nicht und gleich gar nicht teilweise ...
Hallo!

Ich habe gerade Langeweile, deshalb mal ein Lösungsansatz.

Aber eins vorweg:
Solange es sich nur um ein paar Zellen handelt, könnte Dein Wunsch Sinn machen.
Handelt es sich um (sehr) viele Zellen, landest Du in der Komplexitätsfalle!
Die Datei wird nicht nur unnötig groß, sondern bringt Excel aufgrund der Vielzahl von Formatierungen an die Grenze oder darüber hinaus!
ABER:
Dies funktioniert nicht mit Formelzellen, nur mit Texten in den Zellen!

Manuell formatierst Du einen Teil der Zelle ja so.
- Zelle markieren, mit F2 in den Bearbeitungsmodus
- Textteil markieren, Format zuweisen

Wenn ich jetzt den Makrorekorder anwerfe, kommt sowas dabei raus:
Code:
Sub Makro7()
'
' Makro7 Makro
'

'
   Range("A1").Select
   ActiveCell.FormulaR1C1 = "Heute" & Chr(10) & "15.11.2015"
   With ActiveCell.Characters(Start:=1, Length:=6).Font
       .Name = "Calibri"
       .FontStyle = "Standard"
       .Size = 11
       .Strikethrough = False
       .Superscript = False
       .Subscript = False
       .OutlineFont = False
       .Shadow = False
       .Underline = xlUnderlineStyleNone
       .ThemeColor = xlThemeColorLight1
       .TintAndShade = 0
       .ThemeFont = xlThemeFontMinor
   End With
   With ActiveCell.Characters(Start:=7, Length:=10).Font
       .Name = "Calibri"
       .FontStyle = "Fett"
       .Size = 11
       .Strikethrough = False
       .Superscript = False
       .Subscript = False
       .OutlineFont = False
       .Shadow = False
       .Underline = xlUnderlineStyleSingle
       .Color = -16776961
       .TintAndShade = 0
       .ThemeFont = xlThemeFontMinor
   End With
   Range("A2").Select
End Sub

Dies auf das Wesentliche eindampfend, verbleibt:
Code:
Sub Makro7()
   With ActiveCell.Characters(Start:=7, Length:=10).Font
       .FontStyle = "Fett"
       .Underline = xlUnderlineStyleSingle
       .Color = -16776961
   End With
End Sub

Schon etwas übersichtlicher, gelle?
Ich benutze in solchen Fällen immer die englische Bezeichnung, die funktioniert auf allen Sprachversionen von Excel, also "bold" statt "Fett".
Problem: Der Rekorder ermittelt absolute Werte für Start und Lenght.
Start ist eine Stelle nach dem Zeichenumbruch.
Zeichen(10) ist in VBA Chr(10)
Man findet es mit der InStr()-Funktion:
InStr(ActiveCell,chr(10)) + 1
Die Länge ist unerheblich, sie darf nur nicht zu kurz sein.
Da ich schreibfaul bin, nehme ich in so einem Fall einfach 9^9 also 387.420.489

Zu den nächsten Problemen:
Die Berechnung einer Formel löst kein auswertenbares Event aus, in dem man das Target auswerten könnte!
(vielleicht schafft es MS in der Version 2055 endlich mal, im _Calculate-Event ein Target zu übergeben)
Man könnte über das _Change-Event die Zellen überwachen, die Einfluss auf das Formelergebnis haben, sinnvoller erscheint es mir jedoch, die Zellen zu markieren und einmalig ein Makro ablaufen zu lassen.

Nächstes Problem:
Es kann natürlich sein, dass kein Zeilenumbruch vorhanden ist.
Dieser Fehler muss abgefangen werden!

Also:
Markiere Deine zu formatierenden Zellen und lasse folgendes Makro laufen:

Sub FormatSpezial()
Dim Zelle As Range, ErstesZeichen As Long
 For Each Zelle In Selection
   ErstesZeichen = InStr(Zelle, Chr(10)) + 1
   If ErstesZeichen > 1 Then
     With Zelle.Characters(Start:=ErstesZeichen, Length:=9 ^ 9).Font
       .FontStyle = "bold"
       .Underline = xlUnderlineStyleSingle
       .Color = -16776961
     End With
   End If
 Next
End Sub

Ergibt so etwas:

Dateiupload bitte im Forum! So geht es: Klick mich!
src="
Dateiupload bitte im Forum! So geht es: Klick mich!
" />

Das war es schon ...  :21:


Gruß Ralf
Hallo RPP63,
sorry, habe deine Antwort leider erst heute gesehen. Vielen Dank für die viele Arbeit und die ausführliche Beschreibung. Werde mich dransetzen und es in meinem Beispiel ausprobieren.

Viele Grüße
Klaus
Hallo zusammen,

Der TE wollte doch ursprünglich einen Teil eines Wertes formatieren, welches mittels Formel in der Zelle angezeigt wird.

Das wird auch mit diesem Code nicht funktionieren. Es ist auch per VBA nicht möglich, wie Andre auch schon schrieb.
Wenn VBA eingesetzt werden kann, dann kann man das so regeln, dass statt der Formel in der Zelle, das Formelergebnis per VBA hinein geschrieben
und dann entsprechend ralf Vorgehensweise formatiert wird.

Das Formelergebnis kann bei Änderungen der Bezugszellen hineingeschrieben werden. Das ginge mit dem Change-Ereignis hinter den Tabellenblättern.
Wenn der TE dahingehend Hilfe benötigt, sollte er mitteilen, welche Zellen formatiert werden sollen und welche Zellen in welchen Tabellen die Veränderungen des Inhalts dieser Zellen hervorrufen.