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

Replace ersetzt ungewollt die Schriftart

Replace ersetzt ungewollt die Schriftart
20.04.2020 22:58:09
Daniel
Guten Abend zusammen,
nach einigem Durchwühlen des Forums und Probierens komme ich nun leider nicht mehr weiter:
Mein Kalender verbindet die Termine von unterschiedlichen Personen in einem "Gesamtkalender".
Damit die Termine innerhab einer Zelle noch zugeordnet werden können möchte ich nun vor den jeweiligen Termin je nach Nutzer ein zugeordnetes Wingdingssymbol setzen.
Hierzu wird ein Text erstellt und das jeweilige Symbol mit unwahrscheinlichen Zeichen Ø [chrw(216)] und µ [chrw(181)] markiert. Um es deutlich zu machen:
Smiley = Wingdings J
Kalendereintrag (Roh): "ØJµAuto in die Werkstatt"
Nun suche ich nach Ø und µ und "replace" die beiden Zeichen durch " ", über deren Position ändere ich nun die Schriftart des J auf wingdings.
Sub replace()
With Worksheets("Kalender")
posA = InStr(1, .Cells(a.Row, a.Column + 2).Value, ChrW(216), vbTextCompare)
posB = InStr(1, .Cells(a.Row, a.Column + 2).Value, ChrW(181), vbTextCompare)
Do While posA > 0 And posB > 0
.Cells(a.Row, a.Column + 2) = Replace(.Cells(a.Row, a.Column + 2), ChrW(216), "", 1, 1,  _
vbTextCompare)
.Cells(a.Row, a.Column + 2) = Replace(.Cells(a.Row, a.Column + 2), ChrW(181), "", 1, 1,  _
vbTextCompare)
.Cells(a.Row, a.Column + 2).Characters(Start:=posA, Length:=posB - posA - 1).Font.Name = _
"Wingdings"
posA = InStr(1, .Cells(a.Row, a.Column + 2).Value, ChrW(216), vbTextCompare)
posB = InStr(1, .Cells(a.Row, a.Column + 2).Value, ChrW(181), vbTextCompare)
Loop
End With
End Sub
Das funktioniert soweit prima.
Sobald nun aber mehrere Termine vorkommen, z.B.
Kalendereintrag (Roh): "ØJµAuto in die Werkstatt // ØzµArzttermin" wird nur das letzte Symbol in Wingdings gesetzt, da beim "replacen" die Schriftart der gesamten Zelle wieder auf Calibri gesetzt wird.
Gibt es dafür eine Lösung?
Danke schön!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Replace ersetzt ungewollt die Schriftart
20.04.2020 23:27:24
Daniel
Edit: Manchmal haben auch mehrere Benutzer denselben Termin, daher das varible Ende (posB). Es könnte auch so sein:
Kalendereintrag (Roh): "ØJzAµAuto in die Werkstatt" (hier wäre dann JzA in Wingdings zu schreiben, was wir o.g. nur beim letzten Eintrag in der Zelle funktioniert)
Einige Hinweise, ...
21.04.2020 02:00:10
Luc:?
…Daniel:
1. Den ganzen Aufwand könntest dir sparen, wenn du Unicode-Zeichen benutzen würdest. Die 3 gezeigten Wingdings-Zeichen haben bspw folgende Dezimal-Codes:
J → ☺ ← 9786; z → ⌘ ← 8984; A → ✌ ← 9996
2. Ansonsten hätte ich eher vorstehenden freien Gravis ` und nachstehenden freien Akut ´ als Markierungen verwendet als Ø und µ. Aber das ist ggf auch Geschmackssache.
3. Wenn es denn unbedingt so sein soll wie bisher, sollte sich dein Pgm die Positionen der Ø-µ-Paare merken, in 2 Variablen als Liste (Aufzählung) oder in nur einer als Vektor aus Kovektoren: Array(Array(Ø-Pos1, µ-Pos1), Array(Ø-Pos2, µ-Pos2), …) Letztere wdn dann so identifiziert:
varListe(0)(0) = Ø-Pos1, varListe(0)(1) = µ-Pos1, varListe(1)(0) = Ø-Pos2, varListe(1)(1) = µ-Pos2, usw.
Dabei ist natürlich zu beachten, dass diese Symbole entfernt wdn und sich dadurch die Positionen entsprd verschieben, es sei denn, sie können durch Leerzeichen ersetzt wdn (es gibt in Unicode auch ganz schmale!). Zuvor sollte allerdings die Paarigkeit überprüft wdn!
Erst ganz zum Schluss wdn dann die Listen (oder der Vektor aus Kovektoren) durchgegangen und der andere Font gesetzt.
Morhn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: Einige Hinweise, ...
21.04.2020 08:09:36
Daniel
Moin, Luc,
danke für deine Antwort. Unicode, natürlich, manchmal sieht man den Wald vor lauter Bäumen nicht.
So einfach und funktioniert natürlich.
Danke schön!
Gruß Daniel
Bitte sehr! ;-) owT
21.04.2020 13:16:32
Luc:?
:-?
Gelöst. Bitte schließen. Danke!
21.04.2020 08:11:09
Daniel
Gelöst. Bitte schließen. Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige