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

Fontfarbe in Kommentar - unplausible Fehlermeldung

Fontfarbe in Kommentar - unplausible Fehlermeldung
27.10.2013 02:35:16
Johann
Hallo,
hab schon diverseste Foren durchgeackert und hänge schon 6 Stunden an diesem Problem.
Ich benötige wohl den Blick von außen auf mein Problem:
Ich möchte zu einem formatierten Kommentar einen weiteren Text mit anderer Formatierung dazuhängen. Das funktioniert auch einmal, aber beim zweiten Aufruf der selben Funktion bekomme ich bei der Umstellung des Farb-Indexes eine Fehlermeldung
"Schriftgrad muss zwischen 1 und 409 Punkten liegen".
Nachfolgend mein Code, welcher beim zweiten Aufruf von "Comment_AddFormattedText" in besagten Fehler läuft. Dabei funktioniert vorher die Umstellung des Colorindex insgesamt schon dreimal ....
Ich verstehe es nicht mehr... aber vielleicht einer von Euch Guru's
Vielen Dank im Voraus für konstruktive Hinweise!
Liebe Grüße aus Wien
Option Explicit
Sub Comment_Format_Test1()
Dim WB1 As Boolean
If Not ActiveCell.Comment Is Nothing Then ActiveCell.Comment.Delete
ActiveCell.AddComment "1...5...10....5...20"
ActiveCell.Comment.Shape.TextFrame.Characters.Font.Name = "Arial"
ActiveCell.Comment.Shape.TextFrame.Characters.Font.Size = 8
ActiveCell.Comment.Shape.TextFrame.Characters.Font.ColorIndex = 3  '1=Schwarz 2=Weiss 3=Rot 4=  _
_
Gruen 5=Blau 6=Gelb 7=Magenta
ActiveCell.Comment.Shape.TextFrame.Characters(1, 5).Font.ColorIndex = 7 ' Characters 1 - 5 in   _
_
Magenta
ActiveCell.Comment.Shape.TextFrame.Characters(6, 5).Font.ColorIndex = 5 '  Char 6 - 10 in Blau
ActiveCell.Comment.Shape.TextFrame.Characters(6, 5).Font.Underline = True
ActiveCell.Comment.Shape.TextFrame.Characters.Font.Bold = True
ActiveCell.Comment.Shape.TextFrame.Characters.Font.Underline = True
' Formatting comment box
ActiveCell.Comment.Shape.AutoShapeType = msoShapeRoundedRectangle
ActiveCell.Comment.Shape.Fill.Visible = msoTrue
ActiveCell.Comment.Shape.Fill.ForeColor.RGB = RGB(9, 255, 255) 'Cyan als Kommentar-Hintergrund
ActiveCell.Comment.Shape.Fill.Patterned msoPatternHorizontalBrick
' Dieser Aufruf funktioniert ohne Probleme:
WB1 = Comment_AddFormattedText(ActiveCell, vbCrLf & "Hinzufueg1", "Arial", 10, False, False,  _
False, 1)
'  Innerhalb dieses Aufrufes kommt der Fehler
WB1 = Comment_AddFormattedText(ActiveCell, vbCrLf & "Hinzufueg2", "Arial", 10, False, False,  _
False, 4)
WB1 = Comment_AddFormattedText(ActiveCell, vbCrLf & "Hinzufueg3", "Arial", 10, False, False,  _
False, 3)
End Sub

'#################################################################################
' Formatierten Text zu einem kommentar hinzufügen
'
'

Function Comment_AddFormattedText(ByRef Zelle As Range, _
AddText As String, _
WFontName As String, _
WFontSize As Integer, _
WFontBold As Boolean, _
WFontUnderline As Boolean, _
WFontStrikeThrough As Boolean, _
WFontColorIndex As Integer) As Boolean
Dim BegChar As Integer
Dim TxtLen As Integer
Dim OldLen As Integer
Dim NewStart As Integer
Dim RetWt As Boolean
RetWt = True
TxtLen = Len(AddText)
If TxtLen  0 Then
.Font.ColorIndex = WFontColorIndex
End If
If Trim$(WFontName)  "" Then
.Font.Name = WFontName
End If
If WFontSize  0 Then
.Font.Size = WFontSize
End If
.Font.Underline = WFontUnderline
.Font.Bold = WFontBold
.Font.Strikethrough = WFontStrikeThrough
End With
Comment_AddFormattedText = False
Exit Function
Comm_AddFormTxt_Err:
MsgBox "Fehler aufgetreten", vbOKOnly, "Fehler in Funktion aufgetreten"
Exit Function
End Function

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fontfarbe in Kommentar - unplausible Fehlermeldung
27.10.2013 22:27:14
Johann
Hallo Stef@n,
danke für diesen interessanten Link.
Das Limit an Schriften innerhalb einer Arbeitsmappe kannte ich nicht, jedoch ist dieses Limit nicht mein Problem.
Mein Problem:
Ich setze mit dem Befehl
Zelle.Comment.Shape.TextFrame.Characters(NewStart, TxtLen).Font.ColorIndex = WFontColorIndex

den Colorindex. Die ersten dreimal funktioniert das ohne Probleme und beim vierten Mal bekomme ich eine Fehlermeldung, welche auf einen falschen Schriftgrad hiweist, obwohl alle Indexe richtig sind und auch der Color-Index richtig ist.
Ich verstehe nicht, warum Änderung des Colorindex eine Fehlermeldung des Schriftgrades auslöst.
Abgesehen davon habe ich auch nach anderen Codebeispielen gesucht, aber nichts gefunden wo zu einem bestehenden formatierten Kommentar ein weiterer formatierter Kommentar hinzugefügt wird.
Anders gefragt: Wie kann ich einen Kommentar inklusive seiner Formatierungen (Bold, Underline, Fontsize, Fontcolor, ....) auslesen und einen Text mit eigener Formatierung hinten anhängen?
Probiert habe ich schon Einiges und habe auf meinem Weg dazu schon wieder einiges über Kommentare gelernt, aber mein Problem konnte ich leider noch nicht lösen.
Ich war auch verblüfft, dass man einen bestehenden Text mit 10 Zeichen Länge mit dem Befehl
Zelle.Comment.Shape.TextFrame.Characters(11, 3).Text = "ABC"

den Text ABC hinten anhängen kann! Ich hätte mir bei Index 11 einen "Out of range" erwartet....
Ich hoffe immer noch auf einen genialen Lösungsvorschlag!
Vielen Dank im Voraus
Liebe Grüße
Johann

Anzeige
Zu deiner Verblüffung die Begründung, ...
28.10.2013 03:48:35
Luc:-?
…Johann;
weil das der auch in der VBE-Hilfe gemeinte Weg ist, einen Text in einem FormObjekt zu ergänzen. Für Kommentare sollte/könnte es lt Hilfe auch einen kürzeren Weg geben, sofern das unformatiert erfolgen soll. Dein Weg war (zumindest vor Xl12) nur bei überlangen Texten (>255 Zeichen) erforderlich.
Damit kann das direkte Hintanfügen des neuen Textes nicht der Fehlerverursacher sein. Allerdings kann das Formatieren nur nachträglich, auf Basis des Gesamttextes erfolgen; evtl kommt es dabei ab einer gewissen Textlänge zu Problemen. Möglicherweise wertet Xl das wiederholte Schriftart/-größe-Formatieren jedesmal als neue Schriftart/-größe. Evtl hilft es, das zu unterlassen, da sich diese Werte in deinem Code ja auch nicht verändern.
Gruß Luc :-?

Anzeige
AW: Zu deiner Verblüffung die Begründung, ...
28.10.2013 06:49:27
Johann
weil das der auch in der VBE-Hilfe gemeinte Weg ist, einen Text in einem FormObjekt zu ergänzen
Unter welchem Hilfe-Thema hast du das gefunden? Vielleicht gibt es dort noch weitere Hinweise, welche bei der Lösung meines Problemes helfen...
Evtl hilft es, das zu unterlassen, da sich diese Werte in deinem Code ja auch nicht verändern
Diese Werte verändern sich in diesem Beispielcode nicht um zu dokumentieren, dass die gleichen Parameter einmal funktionieren und einmal nicht funktionieren.
Ziel meines codes soll folgendes sein:
+) Ich befülle ein Excel-Sheet laufend mit Werten, wobei ich in den Zell-Werten immer addiere.
+) In den Kommentaren möchte ich mir dazu die Historie aufbauen (aus welchen Werten sich die Summe zusammensetzt und von welchen Einzelkonten welcher Wert kommt)
+) Dabei möchte ich im Kommentar Belastungen (Blau) anders färben als Gutschriften (Rot)
Es kann also in einem Kommentar schon Belastung, Gutschrift, Belastung enthalten sein und dann kommt wieder eine Belastung oder Gutschrift....
Aber es gelingt mir nicht in einem Kommentar mehr als 3 Farbänderungen unterzubringen....
Werde mich nächstes Wochenende mal damit weiter beschäftigen.....
Vielen Dank
Johann

Anzeige
Ich hatte nicht die Farben gemeint, ...
28.10.2013 14:32:25
Luc:-?
…Johann! ;-]
In der neuen Hilfe kommst du sowohl über das Stichwort TextFrame als auch Comment zu derart interpretierbaren Aussagen. Das mit der Überlänge finde ich in der neuen Hilfe nicht (evtl, weil es irrelevant geworden ist). Stand aber in der alten Hilfe (da evtl auch zur Characters-Methode).
Gruß Luc :-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige