Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen

Kommentarfeld - unterschiedliche Schriftfarbe

Betrifft: Kommentarfeld - unterschiedliche Schriftfarbe von: Werner Brinkmann
Geschrieben am: 19.11.2014 08:45:27

Hallo zusammen,

nach langer Abwesenheit habe ich mal wieder eine Frage.
Bedingt durch die Office- Umstellung von 2003 auf 2013, sind einige Anpassungsarbeiten an diversen Exceldateien nötig.
Eine Anpassung bekomme ich jedoch nicht hin und finde bisher auch online keinen Ansatz.

Problem:
Ich möchte gerne Kommentare verschiedenfarbig formatieren, was ich bislang unter Office/Excel 2003 wie folgt umgesetzt habe:

 ...
         With .Comment
            .Visible = False
            .Text Text:=str0 & strComment & str1 & str2 & str3 & str4
            With .Shape
               With .TextFrame.Characters(Start:=1, Length:=Len(str0)).Font
                 .Name = "Arial"
                 .Size = 7
                 .Bold = False
                 .Underline = False
                 .ColorIndex = 48
               End With
               
               With .TextFrame.Characters(Start:=Len(str0), Length:=Len(strComment)).Font
                 .Name = "Arial"
                 .Size = 8
                 .Underline = True
                 .Bold = True
                 .ColorIndex = 0
               End With
               ...
           End With
       End With
 ....
seit der Umstellung auf Office 2013, bricht das Makro bei der Farbzuweisung ".ColorIndex = " ab.

Diese farbliche Hervorhebung geht zwar manuell einzustellen, indem ich mit der rechten Maustaste das Kommentarfeld anklicke und dann die jeweiligen Formatierungen anpasse...

... doch leider kann ich diese Aktionen NICHT per Makrorecorder aufzeichnen.


Über dieses Makro laufen einige 100 Dateien, die nach Plausibilitätskontrolle teilweise Daten in diversen Zellen ändern und diese in der entsprechenden Zelle kommentieren.
Damit die Änderungen besser zu erkennen sind, würde ich diese farbliche Unterscheidung gerne auch unter Office 2013 beibehalten, finde aber keine Lösung.

Falls jemand hier einen Ansatz für mich hätte, wäre ich sehr dankbar.

Gruß
Werner Brinkmann

  

Betrifft: AW: Kommentarfeld - unterschiedliche Schriftfarbe von: Werner Brinkmann
Geschrieben am: 19.11.2014 13:29:38

...
ich habe zu meiner Fragestellung mal eine kleine Datei hochgeladen:
https://www.herber.de/bbs/user/93872.xlsm

In den Zellbereichen A3 - G3 habe ich dazu die Werte eingetragen, die im Echtbetrieb per Plausibilitätsprüfung ermittelt werden, hier zum Test manuell eingegeben werden können.

LG
Werner


  

Betrifft: Code gegoogelt, probiers mal aus...Gruß von: robert
Geschrieben am: 19.11.2014 19:31:19

Sub CommentTextFormatColour()
'adds comment then formats font colour and adds bold
'www.contextures.com/xlcomments03.html
  Dim cmt As Comment
  Dim str1 As String
  Dim str2 As String
  Dim lBreak As Long
  Dim lNum1 As Long
  Dim lNum2 As Long
  Dim lNumLen As Long
  Dim strFind As String
  On Error Resume Next
  
  str1 = "John: 20 Eggs"
  str2 = "Simon: 50 Eggs"
  strFind = ":"
  lNumLen = 3
  
  Set cmt = ActiveCell.Comment
  If cmt Is Nothing Then
    ActiveCell.AddComment _
      Text:=str1 & Chr(10) & str2
    Set cmt = ActiveCell.Comment
  End If
    
  'find the line break and markers
  lBreak = InStr(1, cmt.Text, Chr(10))
  lNum1 = InStr(1, cmt.Text, strFind) + 1
  lNum2 = InStr(lBreak, cmt.Text, strFind) + 1
  
  'format the lines of text
  With cmt.Shape.TextFrame
    .Characters(1, lBreak).Font.ColorIndex = 3
    .Characters(lBreak + 1, Len(cmt.Text)).Font.ColorIndex = 5
  End With
  
  'add bold to numbers that follow colon
  If lNum1 > 0 Then
    With cmt.Shape.TextFrame
      .Characters.Font.Bold = False
      .Characters(lNum1, lNumLen).Font.Bold = True
      .Characters(lNum2, lNumLen).Font.Bold = True
    End With
  End If
  SendKeys "+{F2}"  'opens comment for editing
  'SendKeys "%ie~"  'works with Excel 2003 menu
End Sub



  

Betrifft: Problem gelöst, zumindest über einen Umweg von: Werner Brinkmann
Geschrieben am: 19.11.2014 23:14:34

Hallo Robert,


danke Dir.
Dein beigefügter Programmcode lief bei mir auch, wenn ich ihn 1:1 einbaue.
Da die Character-Eigenschaft jedoch genauso eingebunden war, wie in meinem Programmcode, bin ich stutzig geworden.
Durch den bedingt funktionierenden Code bin ich dann darauf gestoßen, dass sich die Character Eigenschaften .Size und .ColorIndex nicht unmittelbar miteinander vertragen, komischerweise aber wohl in einem gesondertem, anschl. Prozess.

Ich habe daher den funktionierenden Code einmal in dieser Beispielmappe beigefügt…
https://www.herber.de/bbs/user/93888.xlsm
...wo die Schriftgrößeneigenschaft auskommentiert wurde und in einem extra Prozess angeschoben wird. Warum ??? aber es funktioniert.


Ergebnis:


Danke Dir daher nochmal

Gruß Werner


  

Betrifft: falsche Datei, hier die Richtige von: Werner Brinkmann
Geschrieben am: 19.11.2014 23:21:39

https://www.herber.de/bbs/user/93893.xlsm


  

Betrifft: falsche Datei, hier die Richtige von: Werner Brinkmann
Geschrieben am: 19.11.2014 23:25:56

https://www.herber.de/bbs/user/93894.xlsm


  

Betrifft: Danke f.Rückantwort und Datei ;-) owT von: robert
Geschrieben am: 20.11.2014 08:21:23




 

Beiträge aus den Excel-Beispielen zum Thema "Kommentarfeld - unterschiedliche Schriftfarbe"