commenti automatici cella
Hai un problema con Excel? 
commenti automatici cella
di chris (utente non iscritto) data: 21/09/2015 15:10:08
buongiorno a tutti e complimenti
ho cercato qua e la ma non ho trovato soluzione al mio quesito.
Esiste la possibilità che al momento della scrittura in una cella , qualsiasi oppure in un range ,venga inserito automaticamente un commento contenente la data di modifica ?
se non possibile sarebbe anche utile comunque che la cella a fianco (es.:B2) di quella che viene modificata (es.:A2) memorizzasse la sua data di modifica.
in questo modo riuscirei in modo molto pratico a lasciar una traccia degli aggiornamenti ad un file gestionale .
di Albatros54 data: 21/09/2015 15:44:07
prova li codice sotto, che deve essere incollato sul fogliodove tu vuoi aggiungere i commenti , con l'evento CHANGE,l'evento scaturisce quando vai a modificare una cella della colonna A. Adattalo alle tue esigenze.
Ciao
Albatros54
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("a:a")
With Target
If Not Intersect(rng, .Cells) Is Nothing Then
With Target.AddComment
.Text "modificato " & Date
.Visible = False
End With
End If
End With
End Sub
|
di chris (utente non iscritto) data: 21/09/2015 15:58:38
funziona,
complimenti sei bravissimo ;)
di chris (utente non iscritto) data: 21/09/2015 16:03:59
solo un dettaglio ,
dopo aver applicato il codice se su una cella cancello il contenuto mi va in errore.
risolvibile ?
grassie di nuovo
di Albatros54 data: 21/09/2015 16:22:21
Occhio, il codice postato sotto, non va in errore se tu vai a cancellare una cella che contiene un commento.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("a:a")
With Target
If Not Intersect(rng, .Cells) Is Nothing Then
If Target.Value = "" Then
Target.Comment.Delete
Else
With Target.AddComment
.Text "modificato " & Now
.Visible = False
End With
End If
End If
End With
End Sub
|
di chris (utente non iscritto) data: 21/09/2015 16:33:02
perfetto ,
vedi una soluzione anche per ovviare a ciò e quindi poter premere accidentalmente il tasto CANC su qualsiasi cella ? e lasciando perciò il commento aggiornato con la data di cancellazione ?
grazie 1000
di Albatros54 data: 21/09/2015 17:40:32
Prova cosi
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("a:a")
With Target
If Not Intersect(rng, .Cells) Is Nothing Then
If Target.Value = "" Then
Target.ClearComments
Target.AddComment.Text " cancellato" & Now
Target.Comment.Visible = False
Else
Target.ClearComments
With Target.AddComment
.Text "modificato " & Now
.Visible = False
End With
End If
End If
End With
End Sub
|
di chris (utente non iscritto) data: 22/09/2015 11:24:26
molto bene , funziona, l'unica cosa è che il commento non si aggiorna alla successiva modifica della cella ma mantiene la data della prima modifica.
grazie cmq sei disponibilissimo
di chris (utente non iscritto) data: 22/09/2015 11:29:59
ops errore mio ! funziona alla grande !! non avevo modificato il range :D :D :D
bravissimo complimenti
di scossa data: 22/09/2015 11:45:41
Mi permetto di suggerire una leggera "complicazione" per rendere il codice più solido ed elastico.
Cioè per funzionare anche quando il Target non è di una sola cella. Infatti se si dovessero modificare contemporaneamente più celle (con ctrl+invio) o si dovesse copiare un intervallo di più celle, il codice attuale andrebbe in errore, mentre con la modifica proposta funzionerebbe correttamente.
@Albatros54: hai usato With Target ma poi non l'hai sfruttato solo in una istruzione.
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cella As Range
Set Target = Intersect(Me.Range("A:A"), Target)
If Not Target Is Nothing Then
For Each cella In Target
With cella
If .Value = "" Then
.ClearComments
.AddComment.Text " cancellato " & Now
.Comment.Visible = False
Else
.ClearComments
With .AddComment
.Text "modificato " & Now
.Visible = False
End With
End If
End With
Next cella
End If
End Sub
|
di chris (utente non iscritto) data: 22/09/2015 11:55:01
ottimo ,
la ciliegina sulla torta è ora perfetta ;)
Vuoi Approfondire?