Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1844to1848
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
Einzelne Zeichen in einer Zelle färben
11.09.2021 23:43:42
Fredi
Hallo,
ich möchte ausgewählte Zeichen einer Textkette in einer Zelle färben.
Mit der unten aufgeführten Programmzeile wird die komplette Zelle eingefärbt

Selection.Characters.Font.Color = Farbe
Bei der unten aufgeführten Programmzeile muss ich vorher wissen wo meine Auswahl ist.

Selection.Characters(Start, Länge).Font.Color = Farbe 
Wie krieg ich raus, was selektiert ist bzw. wo mein Cursor steht?
Such schon eine Ewigkeit, aber ich finde nichts was mir weiterhilft.
Für Hilfe wär ich sehr dankbar
Gruß
Fredi

41
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 00:15:13
onur
Wenn du doch schon manuell auswählst, was gefärbt werden soll, wozu brauchst du dann noch ein Makro - nur um dir ein bis zwei Mausklicks zu ersparen?
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 00:35:10
Fredi
eigentlich um mit dieser Auswahl weiter zu arbeiten
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 00:39:22
Steve
Hi,
sind deine Textketten immer gleich lang? Wenn nicht musst du die Länge erst bestimmen.
Dann hast du 3 Möglichkeiten die Position des Cursors zu ermitteln (von Links,Rechts oder von der Mitte).
Vielleicht hilft dir das als Denkanstoß
Grüße Steve
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:09:41
Fredi
Die Textketten sind unterschiedlich lang, das mit der Länge bestimmen ist nicht das Problem.
Ich brings einfach nicht fertig die Textstelle zu finden wo der Cursor steht bzw. den Inhalt der Auswahl zu ermitteln.
Entweder steh ich grad auf dem Schlauch oder ich such einfach verkehrt.
Anzeige
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:16:00
Steve
versuche es doch mit der MID funtion
Mid(string,start,länge)
Gruß Steve
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:19:13
Fredi
Bei Mid(string,start,länge) fehlt mir der Start
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:21:38
Steve
Mach doch ne Textbox wo der Nutzer angeben soll, was eingefärbt werden soll, und dann suchst du nach dem Zeichen.
Wie die anderen schon sagten, im Bearbeitungsmodus is VBA inaktiv.
Im EditModus läuft kein Makro! Gruß owT
12.09.2021 00:34:47
Luc:-?
:-?
AW: Im EditModus läuft kein Makro! Gruß owT
12.09.2021 00:38:03
Fredi
bei mir gehts, probiers mit Start und Länge aus.
Wenn du manuell Zeichen in einer Zelle ...
12.09.2021 00:59:01
Luc:-?
…markierst, bist du im EditierModus, mit Cursor-Positionierung ohne Reinklicken nicht, Fredi,
aber das möchte ich sehen, dass du so eine ZeichenPosition bestimmen kannst, womöglich gar bei proportionaler Schriftart (ungleiche ZeichenBreiten). Verlangt ist hier ohnehin keine Cursor-Position, sondern das wievielte Zeichen das ist (vom 1. an gezählt). Und genau die musst du ermitteln, zB mit FINDEN oder SUCHEN (falls vorhanden auch Rückwärtssuche) in Xl bzw Instr oder RevInstr in VBA (ggf m.eindeutigem Kontext).
Luc :-?
Anzeige
AW: Wenn du manuell Zeichen in einer Zelle ...
12.09.2021 01:06:33
Fredi
Unter Cursor-Position meinte ich nicht die XY Position, sondern bei welchem Zeichen er gerade steht.
Ich suche die Stelle an der gerade der Cursor steht oder den Textinhalt der ausgewählt ist.
Dann bist du im Edit-Modus ...
13.09.2021 20:13:53
Luc:-?
…und könntest statt zu markieren auch ein spezielles Zeichen einfügen (ggf mit Nr), Fredi,
oder aber markieren und gleich manuell formatieren, falls es letztlich darum geht. Falls nicht, kann man per VBA auch anders formatierte TextTeile feststellen und damit dann machen, was man eigentlich will. Insofern ist deine Idee, zumal vor VBA-Hintergrund, ziemlich unverständlich.
Gruß, Luc :-?
Anzeige
AW: Dann bist du im Edit-Modus ...
13.09.2021 20:24:40
Fredi
Ich hatte vorher schon eine Lösung, die ist mir aber eigentlich zu umständlich. Mit meiner Lösung muss ich entweder den Text markieren, STRG-C drücken und hol es aus der Zwischenablage oder ich geb den formatierenden Text ein.
Viel schöner wäre es wenn ich entweder den Text oder die Cursorposition auslesen könnte.
AW: Dann bist du im Edit-Modus ...
13.09.2021 20:54:49
Daniel
jetzt haben dir 3 Menschen unabhängig von einander zu erklären versucht, dass das, was du machen willst, nicht geht.
Wann bist du bereit, das zu akzeptieren?
du kommst an die Daten der Bearbeitungszeile nicht dran, das hat Microsoft so nicht vorgesehen, als sie die Makrounterstützung für VBA konzipiert haben.
bearbeite den Text in einer ActiveX-Textbox, dann kannst du all das machen was dir vorschwebt.
Gruß Daniel
Anzeige
AW: Dann bist du im Edit-Modus ...
13.09.2021 21:05:21
Fredi

jetzt haben dir 3 Menschen unabhängig von einander zu erklären versucht, dass das, was du machen willst, nicht geht.
Wann bist du bereit, das zu akzeptieren?
Wer sagt denn, das ich es nicht akzeptiere?
(Es bleibt ma ja nix übrig, wenn's net geht.)
AW: Dann bist du im Edit-Modus ...
13.09.2021 21:25:35
Daniel
Bisher hast du es nicht einsehen wollen das es nicht geht.
AW: Dann bist du im Edit-Modus ...
13.09.2021 21:28:21
Fredi
bisher hab ich auch alles, was ich mit dem Makrorekorder aufgenommen habe, umsetzen können. Nur diesmal nicht.
...Weil der Makrorecorder mitunter ...
13.09.2021 23:51:43
Luc:-?
…auch nur (interne) Ermittlungsergebnisse verwendet, Fredi,
nicht aber den Ermittlungsweg aufzeichnet. Das war mal, als er noch ein (Maus-)Bewegungsaufzeichner war, aber das hätte er auch damals nicht aufgezeichnet, höchstens, dass sich der Cursor auf die TextZelle bewegt und als Nächstes, was dabei rausgekommen ist, nicht wie es ermittelt wurde. Er zeichnet dir ja auch nicht die Berechnungsschritte einer Fml auf, nur ihren Eintrag (FormulaR1C1) und ihr Ergebnis (Value).
Luc :-?
Anzeige
AW: Dann bist du im Edit-Modus ...
14.09.2021 00:55:00
Daniel
Dann beachte, dass der Recorder aufgezeichnet hat, dass du bei bestimmten Zeichen in der Zelle die Schtiftfarbe geändert hast
Das kannst du ja auch per Code ausführen.
Das Markieren der Zeichen in der Bearbeitungszeile jedoch hat der Recorder nicht aufgezeichnet!
Wenn man es mal mit der ActiveX-Textbox Vergleichstests, dann müsstest du, um herauszufinden was markiert ist, die "SelPos" und "SelLength" - Eigenschaft auslesen, und das geht nicht, weil du auf die Bearbeitungszeile als Objekt über VBA keinen Zugriff hast.
AW: Dann bist du im Edit-Modus ...
14.09.2021 01:00:07
Fredi
Mein einzigstes Problem war/ist das ich nur die Position des Cursors bzw. den Inhalt des ausgewählten Textes bestimmen wollte/will.
Die "SelPos" und "SelLength" - Eigenschaft auslesen sollte es bei einer Zelle im Edit-Modus auch geben.
Anzeige
Sollte..., aber gibt's definitiv nicht! orT
14.09.2021 03:45:48
Luc:-?
Weder einzig noch einziger oder gar einzigst! ;-]
Luc :-?
AW: Sollte..., aber gibt's definitiv nicht! orT
14.09.2021 04:15:00
Fredi
auch nicht einzigsten
War doch vorher überzeugt das es geht.
Ihr habt mich leider überzeugt das es doch nicht geht.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:06:56
Daniel
Wie schon geschrieben wurde, die Bearbeitungszeile ist VBA-freier Raum.
Wenn die Bearbeitungszeile aktiv ist, ist VBA "ausgeschaltet", du kannst nicht überwachen, was der Anwender dort macht oder irgendwie aktiv eingreifen.
Mögliche Workarounds für diese Aufgabe:
Workaround 1
Lege eine ActiveX-Textbox an. Wenn der Anwender eine betroffene Zelle anklickt, verknüpfe die Textbox mit der Zelle und aktivieren sie, so das der Anwender die Eingabe in die Textbox macht anstatt in die Zelle. In der ActiveX-Textbox hast du mit VBA die volle Kontrolle und kannst abfragen, was selektiert ist oder welche Tasten gedrückt werden.
Workaround 2
Drücke STRG+C, wenn du die Zellen selektiert hast. Damit wird der selektierte Text in die Windows-Zwischenablage übernommen.
Wenn der Anwender die Eingabe beendet hat, ist VBA wieder aktiv (über das Change-Event) und du kannst den Text aus der Zwischenablage auslesen, in der Zelle suchen und dann entsprechend einfärben.
Das Manko hierbei ist, dass du nur den Text hast, aber nicht die Position. Dh sollte der markierte Text mehrfach in der Zelle vorkommen, kannst du nicht ermitteln, welches dieser mehrfachen Vorkommen markiert wurde.
Gruß Daniel
Anzeige
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:15:57
Fredi
Text mit Maus markieren, anschliessend Schaltfläche drücken, mit Angabe von Start und Länge funktioniert es es.
Ich brauche lediglich nur die Rückgabe, bei welcher Textstelle der Cursor steht oder welcher Inhalt ausgewählt wurde.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:31:52
Daniel
Hab dir doch geschrieben, wie du das ermitteln kannst.
Es geht nur über einen Umweg, weil du auf die Geschehnisse in der Bearbeitungszeile mit VBA keinen Zugriff hast.
Gruß Daniel
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:42:33
Fredi
Beim Kopieren wird die komplette Zelle kopiert, nicht der ausgewählte Text
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 01:44:36
Fredi
Beim Kopieren wird die komplette Zelle kopiert, nicht der ausgewählte Text
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 02:00:59
Daniel
Wie kopierst du denn, wie liest du den kopierten Text aus?
Ich schrieb, dass du den Text in der Bearbeitungszeile markieren und dann STRG+C drücken musst, also noch in der Bearbeitungszeile, bevor du diese verlässt.
Dann musst du die Windows-Zwischenablage auslesen.
Gruß Daniel
Anzeige
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 02:13:19
Fredi
Das was in Excel passieren soll, ist nur markieren des Textes,
alles weiter über einen Button der das VBA starten soll.
Kopieren mit

Selection.Copy

AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 02:29:12
Daniel
Das was du dir vorstellt, funktioniert nicht.
Sobald du die Bearbeitungszeile verlässt um auf den Button zu klicken, vergisst Excel die Markierung, die du gemacht hast.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 02:31:57
Steve
Daher auch mein Vorschlag mit der Eingabebox was gefärbt werden soll.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 02:45:43
Daniel
Den Vorschlag hatte ich auch gemacht.
Oder als alternative, per STRG+C den markierten Text in die Windows-Zwischenablage zu übernehmen, um ihn von dort aus weiterverwenden zu können.
Anzeige
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 02:47:20
Fredi
Hab STRG+C mit SendKeys probiert, geht aber auch nicht
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 03:07:25
Fredi
Woher nimmt dann eigentlich der Makrorekorder die Position?

ActiveCell.Characters(Start:=7, Length:=1).Font

AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 03:52:34
Daniel
Aus dem, was du in der Bearbeitungszeile machst.
Der Recorder kann das, der Recorder ist aber nicht VBA! Er zeichnet zwar VBA-Code auf, ist selber aber ganz anders programmiert.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 03:54:42
Fredi
bisher hatte ich auch alles umsetzen können, was er aufgezeichnet hatte, nur leider hier noch nicht
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 03:48:49
Daniel
SendKeys ist VBA.
Das läuft erst, nachdem du die Bearbeitungszeile verlassen hast.
Dann ist die Markierung, die du dort gemacht hast, weg.
Du musst das STRG+C selber drücken.
Nochmal: (und ich bitte ich, dir das mit dem Holzhammer ins Hirn zu schlagen):
Während du in der Bearbeitungszeile bist, ist VBA nicht aktiv.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 03:53:00
Fredi
Ich hab eine Lösung, die gefällt mir nur nicht, da ich den Text den ich will, vorher eingeben muss.
Ich wollte (will) eine Lösung, die mir mit der Auswahl des Textes weiterhilft.
Der Makrorekorder weiss ja auch wo ich markiert habe.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 04:17:29
Daniel
OK ich gebs auf.
Viel Spass noch mit deinem Projekt.
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 04:19:33
Fredi
Trotzdem Danke, warum aufgeben, ich denke es muss machbar sein.
Ein Bett haben wir zwei auch nicht?
AW: Einzelne Zeichen in einer Zelle färben
12.09.2021 12:16:49
Daniel
Machbar vielleicht.
Aber nicht mit VBA.
Da müsstest du auf dem Niveau programmieren, in dem der Recorder oder Excel selber erstellt wurden, also ein ganz anderes Level.

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige