Untersch. Verhalten bei Eingabe in XL-Versionen
07.06.2019 09:12:23
EtoPHG
Hallo Klaus,
(sowie @ onur, Matthias & Luc zur Info)
Das von Dir beschriebene Verhalten der älteren und neuesten XL Version mit deinem Code, kann ich bestätigen. D.h. Microsoft hat offensichtlich an der Verarbeitung der Zelleneingaben von Excel etwas 'verschlimmbessert':
Excel PC-Versionen vor 2016 (überprüft mit 2007 und 2010):
Nach dem Ablauf des Original-Codes von Klaus, sind die Inhalte der Zellen (Titel) ist der ganze Zelltext fett formatiert und sichtbar. Wird nun der Text (z.B. über F2, Doppelklick oder in der Bearbeitungsleiste) ergänzt (d.h. nach dem vorhandenen Text), so ist dieser 'addierte' Text normal formatiert und auch so sichtbar. Das entspricht deinem Wunschergebnis.
Excel PC-Versionen ab 2016:
Nach dem Ablauf des Original-Codes von Klaus, sind die Inhalte der Zellen (Titel) ist der ganze Zelltext fett formatiert und sichtbar. Wird nun der Text (z.B. über F2 oder Doppelklick in die Zelle) ergänzt (d.h. nach dem vorhandenen Text), so ist dieser 'addierte' Text fett formatiert.
Interessanterweise kann man die Normal-Formatierung (des Ergänzungstexts) mit folgendem Vorgehen forcieren: In der Bearbeitungsleiste einmal Cursor rechts, dann links und anschliessend Text ergänzen. Dieses Vorgehen ist bei älteren Versionen unnötig.
@onur: Deine Vorwürfe sind völlig ungerechtfertigt, da ja der bestehende Code bis vor Version 2016 das gewünschte Ergebnis lieferte.
@Matthias: Deine Vorschläge entsprechen nicht dem Wunsch (Ergänzung nach Titel in Normalschrift).
Meine Interpretation der Anfrage ist: Egal ob ich die Text-Ergänzung durch manuelle Eingabe oder durch VBA-Code vornehme, diese sollte, ohne weiteres Dazutun, normal formatiert erscheinen.
@Luc: Deine Ausführungen sind bis auf den Punkt 3 nachzuvollziehen. Bei diesem ist tatsächlich ein unterschiedliches Verhalten in den XL-Versionen zu beobachten (siehe oben).
@Klaus: Ich sehe im Moment den Workaround und zwar unter der Annahme, dass Text nach dem Doppelpunkt normal formatiert dargestellt werden soll:
' Diesen Code in das Tabellenblatt einfügen
Private Sub Worksheet_Change(ByVal Target As Range)
' Texte in Spalte A werden vor einem Doppelpunkt fett, und anschliessend normal formatiert
Dim rngCheck As Range, rngCell As Range
Dim posColon As Long
Set rngCheck = Intersect(Target, Columns(1))
If Not rngCheck Is Nothing Then
For Each rngCell In rngCheck
posColon = InStr(rngCell.Text, ":")
If posColon > 0 Then
rngCell.Characters(1, posColon).Font.Bold = True
rngCell.Characters(posColon + 1).Font.Bold = False
End If
Next rngCell
End If
End Sub
Die Formatierungsbefehle wie: .....Font.Bold = False in deinem Code kannst du löschen, da die Formatierung mit obigen Makro erst bei der Ergänzung erfolgt.
Gruess Hansueli