Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Robi,
Più resistente sarebbe la seguente versione:
'=======>>
Option Explicit
'------------->>
Public Sub Tester()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Dim rCell As Range
Dim sStr As String, aStr As String
Const myStr As String = "Commento"
Set WB = Workbooks("Pippo.xlsm") '<<===== Modifica
Set SH = WB.Sheets("Foglio1") '<<===== Modifica
sStr = Application.UserName & ":"
Set Rng = SH.UsedRange.SpecialCells(xlCellTypeComments)
If Not Rng Is Nothing Then
For Each rCell In Rng.Cells
With rCell
aStr = Replace(.Comment.Text, Chr(10), vbNullString)
If Not aStr = sStr And CBool(Len(aStr)) Then
If IsEmpty(.Value) Then
.Value = myStr
End If
ElseIf .Value = myStr Then
.ClearContents
End If
End With
Next rCell
End If
End Sub
'<<=======
Tuttavia, visto il mio commento:
io non sono convinto dell'utilità del codice richiesto
credo che mi convenga a suggerire una più valida alternativa per evidenziare i commenti non vuoti. Quindi, prova a sostituire il codice precedente con la seguente versione:
'==========>>
Option Explicit
'---------->>
Public Sub Tester()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Dim rCell As Range
Dim sStr As String, aStr As String
Set WB =Workbooks("Pippo.xlsm") '<<===== Modifica
Set SH = WB.Sheets("Foglio1") '<<===== Modifica
sStr = Application.UserName & ":"
Set Rng = SH.UsedRange.SpecialCells(xlCellTypeComments)
If Not Rng Is Nothing Then
For Each rCell In Rng.Cells
With rCell
aStr = Replace(.Comment.Text, Chr(10), vbNullString)
If Not aStr = sStr And CBool(Len(aStr)) Then
.Interior.ColorIndex = 6
Else
.Interior.ColorIndex = xlNone
End If
End With
Next rCell
End If
End Sub
'<<==========
===
Regards,
Norman