Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA. Commento dinamico su cella attiva. Commento uguale al contenuto della cella.

466 views
Skip to first unread message

Bruno.62

unread,
Dec 16, 2016, 3:35:38 AM12/16/16
to
Excel 2010.

Ciao a voi tutti.

Con il VBA non riesco a far inserire il commento sulla cella attiva che
sia uguale al contenuto della cella attiva (usata come punto note), che
al variare del contenuto deve riproporre il commento aggiornato, anche
se si dovesse cancellare il contenuto della cella.

Grazie, Bruno

---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus

casanmaner

unread,
Dec 16, 2016, 4:00:43 AM12/16/16
to
Dovresti sfruttuare l'evento worksheet_change del foglio di lavoro.
Questo è un esempio, molto basico, riferito alla cella A1 del foglio di lavoro dove sia già stato creato un commento.


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
Target.Comment.Text Text:=Target.Text
End If
Application.EnableEvents = True
End Sub

Norman Jones

unread,
Dec 16, 2016, 5:01:35 AM12/16/16
to
Ciao Bruno,

On 16/12/2016 8.35, Bruno.62 wrote:
> Excel 2010.
>
> Ciao a voi tutti.
>
> Con il VBA non riesco a far inserire il commento sulla cella attiva che
> sia uguale al contenuto della cella attiva (usata come punto note), che
> al variare del contenuto deve riproporre il commento aggiornato, anche
> se si dovesse cancellare il contenuto della cella.

Oltre all'ottimo suggerimento di Casamaner, e come una variazione sul
tema, prova qualcosa del genere:
'=========>>
Option Explicit

'--------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
Dim oComment As Comment

For Each rCell In Target.Cells
With rCell
Set oComment = .Comment
If Not oComment Is Nothing Then
oComment.Text Text:=.Text
End If
End With
Next rCell
End Sub
'<<=========




===
Regards,
Norman

Bruno.62

unread,
Dec 16, 2016, 5:34:09 AM12/16/16
to
^^^^

Ciao Norman, il codice che hai postato non riesco a farlo funzionare,
mentre quello di Casamaner funziona bene, ma solo se esiste già un
commento (come precisato dallo stesso).Il range di celle di mio
interesse è A1:M20 (è solo un esempio da estendere).
Cosa sbaglio?
Grazie, Bruno.62

Bruno.62

unread,
Dec 16, 2016, 5:37:25 AM12/16/16
to
^^^^
Ciao, Come da te precisato il tuo codice funziona. Si può fare qualcosa
per creare un commento anche se già non ne esiste uno; il fine è quello
di visualizzare il contenuto della cella (piccola) quando si inseriscono
note lunghe.
Grazie, Bruno.62

casanmaner

unread,
Dec 16, 2016, 5:57:54 AM12/16/16
to
Prova così:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
If Target.Comment Is Nothing Then Target.AddComment

casanmaner

unread,
Dec 16, 2016, 6:00:11 AM12/16/16
to
Altra alternativa che nel caso la cella sia vuota elimina il commento e diversamente se non c'è il commento lo crea e inserisce il testo.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
If Target <> "" Then
If Target.Comment Is Nothing Then Target.AddComment
Target.Comment.Text Text:=Target.Text
Else
Target.Comment.Delete
End If

Bruno.62

unread,
Dec 16, 2016, 6:13:25 AM12/16/16
to
^^^^^^

Non ho parole! La seconda è migliore e funziona alla grande.
Ho provato, ma mi rendo conto che non ci sarei mai riuscito da solo.
Grazie, grazie ancora, a te e a voi tutti "Mostri sacri" che ci
concedete il vostro aiuto prezioso.

Bruno.62

unread,
Dec 16, 2016, 6:15:48 AM12/16/16
to
[CUT]

Domandina: Per farlo funzionare sul foglio attivo (12 fogli identici) +
altri fogli diversi, dove devo mettere il codice?

casanmaner

unread,
Dec 16, 2016, 6:36:45 AM12/16/16
to
Il codice così com'è basterebbe copiarlo nel VBA di ogni foglio.
Volendo si potrebbe impostare in ThisWorkbook l'evento Workbook_SheetChange.
Ci sono solo questi fogli identici o anche altri fogli? Perché allora bisognerebbe impostare i fogli da escludere dall'evento.

Bruno

unread,
Dec 16, 2016, 6:51:32 AM12/16/16
to
casanmaner <casan...@gmail.com> ha scritto:
====
Ok. Penso di aver capito. Mi sa come inserisco un modulo e la
faccio diventare una Funzione che richiamo nei fogli di
interesse.
R: si, esistono anche altri fogli diversi.

Bruno. 62
--
Bruno.62
0 new messages