Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
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

Teilstring Farbig

Teilstring Farbig
26.08.2014 15:29:25
Max
Guten Tag alle zusammen,
ich habe mal wieder ein Problem.
Ich möchte gern von einen Teilstring die Farbe ändern.
Laut Internetrecherche und Makrorekorder sollte das mit folgendem Code funktionieren.
With ActiveCell.Characters(Start:=10, Length:=7).Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.499984740745262
End With
Das Ergebnis ist allerdings nicht das gewünschte. Der Teilstring wird nicht farbig, sondern weiß und ist somit nicht mehr lesbar. Seltsam finde ich außerdem, dass der Code ohne Startwert die richtige Farbe einstellt, dann logischer weise jedoch für den kompletten string.
Hoffe mir kann jemand helfen, stehe hier grad voll auf dem Schlauch.
p.s. im fertigen Code soll die Zelle direkt adressiert werden, also ohne ActvieCell... ändert aber an dem eigentlichen Problem nichts

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilstring Farbig
26.08.2014 15:35:43
Klaus
Hallo Max,
schlag dich nicht mit den xl2007+ ThemeColors herum, mach es althergebracht:
    With ActiveCell.Characters(Start:=10, Length:=7).Font
.ColorIndex = 10
End With

Die Zahl von ColorIndex ändern für andere Farben (einfach ausprobieren).
Grüße,
Klaus M.vdT.

AW: Teilstring Farbig
26.08.2014 15:41:00
Max
Hallo Klaus,
erst einmal Danke für die Antwort. Damit wechselt wer dann tatsächlich die Farbe.
Nur kann ich irgendwo rausfinden, welche ColorIndex zu welcher Farbe gehört?
Da das ganze dem CI unterliegt muss die Farbe leider exakt sein.

Anzeige
AW: Teilstring Farbig
26.08.2014 15:47:45
Klaus
Hi Max,
lass das in einem leeren Blatt laufen:
Sub ColorIndexZeigen()
For i = 1 To 56
With Range("A" & i)
.Value = "Colorindex: " & i & " sieht so aus"
.Font.ColorIndex = i
End With
Next i
End Sub
Grüße,
Klaus M.vdT.

AW: Teilstring Farbig
26.08.2014 15:51:25
Max
Sehr gut genau sowas hab ich gesucht.
Hab vielen Dank!

AW: Teilstring Farbig
27.08.2014 10:58:07
Max
Hi @ all,
ich bekomme zwar jetzt einen Teilstring eingefärbt, allerdings nur solange der String nicht über eine Formel erzeugt wird.
Kann man das ändern?
(Ich will über eine Formel einen String erzeugen und anschließend einen Teil davon mit einer anderen Farbe hervorheben.)

Anzeige
AW: nicht bei Formeln !
27.08.2014 11:04:16
Daniel
Hi
nein, geht nicht.
Bei durch Formeln erzeugten Texten haben alle Zeichen dieselbe Farbe.
Unterschiedliche Zeichenformatierungen innerhalb der Zelle sind nur bei festen Texten möglich.
Gruß Daniel

AW: nicht bei Formeln !
27.08.2014 11:10:47
Max
Und wenn ich die Berechnung des Strings komplett in VBA vornehme und den fertigen String fest in die Zelle schreibe? Dann müsste ich doch zum gewünschten Ergebnis kommen, oder?

AW: dann ja. owt
27.08.2014 11:12:53
Daniel

AW: thx @ Daniel; owt
27.08.2014 11:14:58
Max

AW: Farbe CI-Konform
26.08.2014 16:01:58
Daniel
Hi
Seit Excel 2007 kannst du jedem Objekt (Schrift, Hintergrund, Rahmen, Grafik usw) direkt eine RGB-Farbe zuweisen:
With ActiveCell.Characters(Start:=10, Length:=7).Font
.Color = RGB(200, 100, 50)
End With
Der Colorindex ist ein Relikt von 2003, bis dahin waren maximal 56 verschiedene Farben auf einem Blatt möglich.
Dh man hat erst die Farben einem der 56 Farbindexen zugewiesen (oder auch nicht, wenn man mit den Excelstandardfarben gearbeitet hat) und das über den ColorIndex aus diesen 56 Farben einen ausgewählt.
das ColorTheme ist im prinzip sowas ähnliches wie der Farbindex.
Nur das man hier nicht einzelne Farben definiert, sondern ein Farbschema für Hintergrund und Schrift gleichzeitig.
Dh färbst dann die ganze Zelle mit dem selben Farbschema (dh Hintergrund und Schrift), dh dass beim Hintergrund eine Dunkle und für die Schrift eine helle Farbe verwendet wird.
Wenn eure IT auf extrem Zack ist, hat sie eure Farbschemen als Vorlage installiert und du kannst diese auswählen.
Da ich das aber für sehr unwahrscheinlich halte, fährst du besser, wenn du dir die RGB-Werte eures Farbschemas besorgst und die Zellen direkt darüber einfärbst.
Gruß Daniel

Anzeige
AW: Teilstring Farbig
26.08.2014 15:48:00
Luschi
Hallo Max & Klaus,
auch in Excel 2013 hat sich die Situation mit 'ThemeColors' nicht verändert.
Auch hier macht der Vba-Code von Max die ostfriesische Nationalfahne
(weißer Adler auf weißen Grund)
Userbild
Gruß von Luschi
aus klein-Paris

Es wurde ja schon richtig empfohlen, ...
26.08.2014 17:23:04
Luc:-?
…die RGB-Farbe zu verwenden, Max,
ansonsten hier noch eine ergänzende Erläuterung zu ThemeColor, das mit dem jeweils eingestellten Theme (Standard ist in Xl12 Larissa) aufeinander abgestimmte FarbIndizes (in grundfarblich variierenden IndexTabellen*) bereitstellt, deren Farben über TintAndShade außerdem noch akzentuiert wdn können. Dabei sind einige Farben GestaltungsGrundElementen zugeordnet, was ihre speziellen Namen erklärt. Sie alle entsprechen natürlich bestimmten RGB-Farben.
*Die jeweilige IndexTabelle enthält darüber hinaus noch einige allgemeine GrundFarben.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Zur Info
27.08.2014 00:33:35
Ewald
Hallo,
wer RGB nicht mag, kann auch die Farbnummer(RGBlong) verwenden.
Leider lassen sich nicht alle Farbnummern darstellen (laufen hier ins Limit verschiedene Formate in einer Datei). eine Auflistung ist möglich aber nur in etwa 17 Spalten.
Für Zellen sollte ThemeColor nicht verwendet werden,sie sind eigentlich für Shapes gedacht.außerdem sind sie in der Schreibweise xlThemeColorDark1 begrenzt, es gibt viel mehr ThemeColor.
Für die gewünschte Farbe wäre die Farbnummer 8421504
Gruß Ewald

Es gibt viele Themes (ca 2 Dtzd vorgefertigt) ...
27.08.2014 03:35:04
Luc:-?
…und außerdem kann man wohl auch eigene anlegen (Daniel hatte das bereits angedeutet), Ewald u.A.;
zu jedem Theme gibt's dann 10 ThemeColors, davon 4 (lt Benennung) für Gestaltungs­Elemente und 6 sog Akzente (Accent1…6), alle 10 mittels TintAndShade modifizierbar (prozentualer Weiß/Schwarz- resp Grau-Anteil). Da diese auch in den pro Theme vorgefertigten Tabellen­Designs auftauchen, sind sie von MS wohl auch für ZellFarben gedacht und ersetzen nicht nur die alten ColorScheme-Farben, die tatsächlich nur für Shapes bestimmt waren.
Außerdem können (auch in Zellen!) 1…2-farbige FarbVerläufe* dargestellt wdn (auch mittels BedingtFormatierung!), was früher (falls überhpt) auch nur in Shapes möglich war.
* Dabei enthalten die 1farbigen Verläufe eine Grau-Komponente als ZweitFarbe. (Übrigens lässt sich so etwas seit einiger Zeit auch relativ einfach in HTML darstellen, ohne dass ein HG-Bild geladen wdn muss.)
Morrn, Luc :-?

Anzeige
AW: Es gibt viele Themes (ca 2 Dtzd vorgefertigt) ...
27.08.2014 14:18:16
Ewald
Hallo Luc,
eine Theme besteht aus 3 Unterthemen
Colortheme,Effekttheme und Fonttheme
es gibt 21 vorgefertigte Theme, benutzerdefinierte Theme können erstellt werden.
Eine ColorTheme besteht aus 12 Grundfarben, wobei 10 verwendet werden können (mit VBA alle 12)
Außerdem gibt es 50 Farben für eine Colortheme die aber hartkodiert sind (lassen sich nicht ändern).
Sie beruhen auf den Grundfarben und sind harmonisch abgestuft (wie immer man dies deuten will)
In VBA sind mit xlthemeColor nur alle 12 Grundfarben erreichbar, die weiteren nur mit zusätzlich TintandShade.
Zu dem oben erwähnten Fehlverhalten, hier liegt ein Bug vor (der auch noch in 2010 ist)
mit
    With ActiveCell.Interior
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0.599963377788629
End With
wird nicht schwarz sondern weiss gefärbt
mit
    With ActiveCell.Interior
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0.599963377788629
End With
wird schwarz und nicht weiss gefärbt
der Index ist vertauscht.
Weitere Infos zu Farben in Excel mal nach Farben.xlsm suchen,läßt sich hier nicht hochladen
Gruß Ewald

Anzeige
Zum Bug kann'ch nichts sagen, denn bisher biete...
27.08.2014 14:52:50
Luc:-?
…ich nur die FarbAuswertung nach ThemeColor an, Ewald,
und dabei ist mir das wohl noch nicht aufgefallen. Allerdings operiert TintAndShade wohl auch mit negativen Werten. Möglicherweise ist das also ein LogikFehler. FontTheme dürfte das Ggstück zu ColorTheme sein, falls es genauso aufgebaut ist, nur halt auf Letzteres abgestimmt, während EffectTheme wohl analog abgestimmte FarbEffekte enthält. Aber soweit bin ich noch nicht in diese Design-Möglichkeiten eingedrungen.
Auf jeden Fall macht das bestimmte Auswertungen nun nicht gerade leichter… ;-)
Gruß, Luc :-?

Anzeige
AW: Zum Bug kann'ch nichts sagen, denn bisher biete...
27.08.2014 15:20:16
Ewald
Hallo Luc,
mit den oben genannten Makros läßt sich der Bug ja nachvollziehen.
TintandShade kann auch negative Werte haben.
hier einmal ein Beispiel mit den Werten der Hartcodierung.
 ABCDEFGHIJKLMNOPQRSTU
130                     
131 1 2 3 4 5 6 7 8 9 10 
132                     
133                     
134                     
135Die darunter plazierten 50 Farben bilden jeweils eine harmonische Reihe zu je einer Designfarbe mit festen Tönungsstufen                    
136                     
137 -0,05 0,5 -0,1 0,8 0,8 0,8 0,8 0,8 0,8 0,8 
138                     
139 -0,15 0,35 -0,25 0,6 0,6 0,6 0,6 0,6 0,6 0,6 
140                     
141 -0,25 0,25 -0,5 0,4 0,4 0,4 0,4 0,4 0,4 0,4 
142                     
143 -0,35 0,15 -0,75 -0,25 -0,25 -0,25 -0,25 -0,25 -0,25 -0,25 
144                     
145 -0,5 0,05 -0,9 -0,5 -0,5 -0,5 -0,5 -0,5 -0,5 -0,5 
146                     
Gruß Ewald

Anzeige
Ja, so sieht das aus, ...
27.08.2014 17:15:15
Luc:-?
…Ewald,
habe nur noch nicht herausgefunden, wie man alle vorhandenen Themes durchgehen kann, falls mal eine Farbe, die einem anderen zugeordnet wdn könnte, auftauchen sollte. Aber das ist vermutlich auch gar nicht vorgesehen, weil es ja um (fein-)abgestimmtes Design geht (mit ein paar extra GrundFarben, was du ja ebenfalls erwähnt hast). Für Grund- und FremdFarben ist dann bisher eben keine ThemeColor-Angabe mit meiner einschlägigen UDF möglich, was hieß, dass ich dadurch (bei entsprd Verlangen) auftretende Fehler abfangen musste.
Luc :-?

AW: Ja, so sieht das aus, ...
28.08.2014 01:36:19
Ewald
Hallo Luc,
zunächst mal eine Berichtigung in Office2010 stehen insgesamt 41 Themes zur Verfügung.
Sie stehen im Ordner C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors
Dort findest du aber nur 40 Themes (die StandardThemes(Larissa) ist dort nicht vorhanden.
Außerdem haben die Dateinamen die englische Schreibweise und durch die abenteuerliche Übersetzung der deutschen Schreibweise läßt sich nicht unbedingt auf den Dateinamen schließen.
Um eine Themes abzufragen mußt du sie laden.
Als Beispiel die Grauscala
ActiveWorkbook.Theme.ThemeColorScheme.Load ( _
"C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors\Grayscale.xml")
Da die StandardTheme aber nicht als Datei vorhanden ist, kannst du sie auch nicht mit oberen Code aufrufen.Der Aufruf lautet dann so
ActiveWorkbook.Theme.ThemeColorScheme.Load()
Die Grundfarben kannst du dann über den Index abrufen,die anderen nur mit Index und TintandShade.
Wie aber auf dem oben geposteten Bild zu sehen ist, sind die TintandShadewerte für die Abstufung nicht alle gleich.
Hierdurch ergibt sich ein ziemlicher Aufwand beim Programmieren.
Gruß Ewald

Anzeige
Aha, das hatte ich beinahe schon befürchtet, ...
28.08.2014 16:04:45
Luc:-?
…Ewald;
dann werde ich das wohl zugunsten wichtigerer Dinge auf die lange Bank schieben müssen… ;-)
Gruß, Luc :-?

AW: Aha, das hatte ich beinahe schon befürchtet, ...
29.08.2014 01:01:12
Ewald
Hallo Luc,
vielleicht gibt es noch eine andere Lösung.
da die Colortheme ja als XLM-Datei vorliegen, könnte man diese durchlaufen und die Hexwerte der 12 Grundfarben auslesen.
Nur weiß ich nicht wie man eine xml-Datei gezielt auslesen kann.sprich die Werte die in " " stehen
Es müßte dann zwar noch von Hex in Dec umgewandelt werden, aber das dürfte das kleinste Problem sein.
Gruß Ewald

Ja, danke, interessante Idee, ...
29.08.2014 02:01:41
Luc:-?
…die sicher durchführbar ist, Ewald,
aber bisher habe ich nur HTML-Dateien ausgelesen bzw diese und einfache XML-Dateien, wie man sie für MS' HTML-KomprimierungsPgm (.chm) für das Inhaltsverzeichnis (ToC) benötigt, (mit VBA) erzeugt. Da müsste ich mich auch erst hineinvertiefen… ;-)
Morrn, Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge