Excel planilha comentario macro insere indicador comentario azul

Sex, 19 de Novembro de 2010 19:04 Expedito Marcondes
Imprimir

Saberexcel - o site de quem precisa aprender Macros Microsoft Excel VBA

Caro E_Marcondes, sou programador e preciso de uma macro, que insere um triângulo azul no lugar do indicador(vermelho) do comentário,
eu tinha mas acabei perdendo, se você tiver, será que poderia me enviar, obrigado. Reginaldo
Sim tenho sim, junto à minha coleção de 15.000 macros achei, na verdade é uma macro servida de uma função:
Cor do triângulo do indicador do comentário em azul


'Option Explicit

Sub Criar_triangulo_indicador_comentario()
vCriarIndicador vbBlue, "EPM"
End Sub


Public Function vCriarIndicador(CommentIndicatorColor As Long, _
CommentIndicatorName As String) As Boolean
'
Dim IDnumber As Long
Dim aCell As Range
Dim aComment As Comment
Dim aShape As Shape
Dim aWorksheet As Worksheet
Dim aWorkbook As Workbook

vCriarIndicador = False

If CommentIndicatorName = vbNullString Then GoTo ExitFunction
On Error GoTo ExitFunction
Set aWorkbook = ActiveWorkbook

IDnumber = 0
'loop through all wprksheets in the active workbook and all comments
'in each worksheet and create the comment shapes

For Each aWorksheet In aWorkbook.Worksheets
For Each aShape In aWorksheet.Shapes
If Left(aShape.Name, Len(CommentIndicatorName)) = _
CommentIndicatorName Then
aShape.Delete
End If
Next aShape

For Each aComment In aWorksheet.Comments

Set aCell = aComment.Parent

If InStr(1, aComment.Shape.TextFrame.Characters.Text, ":") > 0 Then
If Left(aComment.Shape.TextFrame.Characters.Text, InStr(1, aComment.Shape.TextFrame.Characters.Text, ":") - 1) = Application.UserName Then

GoSub CreateCommentIndicator

End If
End If
Next aComment
Next aWorksheet

vCriarIndicador = True
ExitFunction:

On Error GoTo 0
Set aCell = Nothing
Set aComment = Nothing
Set aShape = Nothing
Set aWorksheet = Nothing
Set aWorkbook = Nothing
Exit Function

CreateCommentIndicator:

Set aShape = aWorksheet.Shapes.AddShape(Type:=msoShapeRightTriangle, _
Left:=aCell.Left + aCell.Width - 5, _
Top:=aCell.Top, _
Width:=5, _
Height:=5)
IDnumber = IDnumber + 1
With aShape
.Name = CommentIndicatorName & CStr(IDnumber)
.IncrementRotation -180#
.Fill.Visible = msoTrue
.Fill.Solid
.Fill.ForeColor.RGB = CommentIndicatorColor
.Line.Visible = msoTrue
.Line.Weight = 1
.Line.Style = msoLineSingle
.Line.DashStyle = msoLineSolid
.Line.ForeColor.RGB = CommentIndicatorColor
.Placement = xlMove
End With
Return
End Function




Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel

  

Tags:
Última atualização em Qua, 10 de Agosto de 2011 08:21