Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Benutzerdefinierte Schriftfarbe in verbd

Benutzerdefinierte Schriftfarbe in verbd
29.07.2020 12:53:03
Akatosh
Hallo zusammen,
ich habe glaube ich ein Brett vor'm Kopf:
Ich habe zwei Abweichungen. Über ein benutzerdefiniertes Format färbe ich die Abweichungen Grün bzw. Rot.
In Einzelzellen funktioniert das auch Tadellos - Für eine Beschriftung möchte ich aber beides in eine Zelle zusammenführen, inkl der Formate. Sobald ich das aber versuche, übernimmt er zwar die Zahl, aber nicht das Format. Ein Beispiel habe ich vorbereitet:
https://www.herber.de/bbs/user/139377.xlsx
Ist das möglich?
Danke im Voraus

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefinierte Schriftfarbe in verbd
29.07.2020 12:57:26
SF
Hola,
per benutzerdefinierter Formatierung kann man keine Texte färben.
Gruß,
steve1da
AW: Benutzerdefinierte Schriftfarbe in verbd
29.07.2020 12:59:31
Akatosh
Hi - ich möchte nur die beiden Zahlen färben, nicht den gesamten Text - Also wie es einzeln ja funktioniert.
AW: Benutzerdefinierte Schriftfarbe in verbd
29.07.2020 13:00:48
SF
Hola,
durch TEXT erzeugst du die komplette Zelle als TEXT. Für Excel stehen da keinen Zahlen mehr drin.
Gruß,
steve1da
AW: Benutzerdefinierte Schriftfarbe in verbd
29.07.2020 13:03:12
onur
Nein, jedenfalls nicht über Formel oder bed. Formatierung, denn diese gelten immer für die GANZE Zelle.
Aber Jemand mit "Excel gut" sollte das wissen.
Abgesehen davon ist es unprofessionell, mehrere Werte in eine Zelle zu quetschen.
Nicht den Kern getroffen!
29.07.2020 14:15:18
Luc:?
Der eigentliche Kern wurde bisher nicht getroffen, Akatosh;
keine Xl-Standard-Fkt kann Zellen bzw ihre Inhalte (teil-)formatieren, auch nicht, wenn diese in TextForm vorliegen! Das ist immer nur extern über benutzerdefiniertes oder BedingtFormat möglich. In der Fkt TEXT wdn solchen Format-String-Teile stets ignoriert.
Mit einer Fkt in einer ZellFml ist das nur möglich, wenn die entsprd FormatAngaben per VBA-Prozedur ausgelesen und dann entsprechend in externer Formatierung umgesetzt wdn. Da im Bsp ein Text entsteht, wäre auch eine TeilFormatierung möglich, wenn zuvor dieses Ergebnis als reiner Text (ohne Fml) gespeichert wird. Die Fml kann mittels der VBA-Prozedur bis zu evtl WiederVerwendung ausgelagert wdn.
Man sieht also, dass das ein etwas komplizierteres Verfahren wdn würde, weshalb du dir überlegen solltest, ob der Effekt den Aufwand lohnt!
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
Bei Interesse fktionsfähige Routine lieferbar! owT
30.07.2020 02:17:40
Luc:?
:-?
AW: Bei Interesse fktionsfähige Routine lieferbar! owT
30.07.2020 09:19:29
Akatosh
Hallo Luc,
alles gut - Ich habe mir eine Andere Lösung einfallen lassen, jetzt halt in zwei Zellen; es geht zur Not auch so.
Danke
AkaTosh
Das ist auch nur per...
30.07.2020 10:16:17
Case
Hallo, :-)
... VBA möglich - hier mal zwei Möglichkeiten: ;-)
Beispieldatei...
Servus
Case

Erwischt! ;-]
30.07.2020 18:47:58
Luc:?
Hallo, Case (& Akatosh);
Deine Pgmm setzen voraus, dass die AbwVJ stets positiv und die AbwPlan stets negativ ist. Dementsprd hast Du auch die TestDatenErweiterung gestaltet - ein nicht realitätskonformer Fehler!
Dagg stelle ich dann doch mal meinen weniger aufwendigen Entwurf.
Voraussetzungen:
• Sinnvollere Fmln in D:E nebst Formatierung als %-Zahl mit einer Dezimale:
D3ff:=RUNDEN(B3/A3-1;3)
E3ff:=RUNDEN(B3/C3-1;3)
• 3 benannte Fmln, deren definierte Namen in der bzw als HauptFml verwendet wdn:
AbwVJuPl:=$D$2&": "&AbwTextVJ&ZEICHEN(10)&$E$2&": "&AbwTextPl
AbwTextVJ:=ZELLE.ZUORDNEN(53;$D3)
AbwTextPl:=ZELLE.ZUORDNEN(53;$E3)
Die erstgenannte HptFml übernimmt den KopfText der Spalte D:E.
• AusgabeBereich in F muss hier noch manuell auf Zeilenumbruch gestellt wdn.
Bedienung:
Bei Bedarf kann eine EinzelZelle durch Klicken in dieselbe auf Fml(-Name) umgestellt wdn und mit einem weiteren Klick wieder auf formatierten Text. Auf LeerZellen und Löschungen wird nicht reagiert, damit diese ermöglicht wdn. Zum Auslösen der Routine muss in eine leere Zelle also erst immer irgendetwas (keine fremde Fml!) eingetragen wdn. Es können auch mehrere oder alle Zellen auf 1× behandelt wdn, indem ihr Bereich kopiert und an gleicher Stelle 2× als Fml (fx) eingefügt wird.
Steuernde Ereignis- und ausführende Prozedur:
Beide im Dokument-KlassenModul des jeweiligen Blattes unterzubringen.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const adRelBer$ = "Tabelle1!F3:F30"
Dim zBer As Range
Set zBer = Me.Range(adRelBer)
If Not Intersect(Target, zBer) Is Nothing Then _
Call AbwTxFarben(Target, zBer)
Set zBer = Nothing
End Sub
Private Sub AbwTxFarben(Ziel As Range, zBer As Range)
Const fmAbw$ = "=AbwVJuPl"
Dim ix As Integer, anfAbw(2) As Long, lenAbw(1) As Long, _
fFrb(1) As Long, vsQBer(2) As Long, qz As Range, zz As Range
vsQBer(0) = -2: vsQBer(1) = -1: vsQBer(2) = -1
fFrb(0) = vbGreen: fFrb(1) = vbRed
anfAbw(0) = Len(zBer.Cells(1).Offset(vsQBer(2), vsQBer(0)).Text) + 3
anfAbw(2) = Len(zBer.Cells(1).Offset(vsQBer(2), vsQBer(1)).Text) + 3
Application.EnableEvents = False
For Each zz In Ziel
If zz.HasFormula Then
If zz.Formula = fmAbw Then
zz = zz.Value
For ix = 0 To 1
Set qz = zz.Offset(, vsQBer(ix))
If CBool(qz) Then
If CBool(ix) Then _
anfAbw(ix) = anfAbw(0) + lenAbw(ix - 1) + anfAbw(2)
lenAbw(ix) = Len(qz.Text)
zz.Characters(anfAbw(ix), _
lenAbw(ix)).Font.Color = fFrb(Abs(qz 
So etwas hatte ich schon mal vor Jahren geschrieben, als spezielle UDF mit den entsprd FormatAngaben in den Argumenten und unterstützenden, physisch per Ereignis entkoppelten SubProzeduren. Aber so komplex und universell wollte ich hier nicht wdn… ;-)
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
Ergänzung/Korrektur
30.07.2020 20:08:37
Luc:?
Nun hatte ich auch noch einen (kleinen) Fehler drin, die 0-Behandlung!
Entweder muss das so sein wie in D:E → glatte 0,0% stets ebenfalls grün, dann ist die PgmZeile If CBool(qz) Then und das zugehörige End If überflüssig,
oder die eher unwahrscheinliche glatte 0 soll schwarz bleiben, dann sollte auch das ZellFormat entsprd erweitert wdn → Format (D3:E3ff): [Grün]+0,0%;[Rot]-0,0%;0,0%
und außerdem im o.g. (dort entfallenden) Konstrukt noch ein Else, nämlich die Zeile Else: lenAbw(ix) = Len(qz.Text) ergänzt wdn.
Luc :-?
Korrektur...
31.07.2020 00:48:15
Case
Hallo, :-)
...: ;-)
Beispieldatei...
Servus
Case

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige