PDA

View Full Version : Come cambiare in Excel il colore cella attiva?


ghisirds
18-10-2007, 15:31
Ciao,

delle volte, nei fogli di calcolo che magari hanno le righe alternate e scure, si fa fatica a distinguere la cella attiva.

Mi domandavo: è era possibile cambiare questa impostazione, magari facendole cambiare colore o evidenziando meglio la cornicetta intorno alla cella?

Grazie

__________________
sito knights of malta (http://www.knightsofmalta.it/), nuove idee regalo originali (http://www.idee-regalo.biz/), forum cultura generale (http://scuo.la/), realizzazione sito internet (http://www.ghisirds.it/)

maxxxl
30-12-2008, 13:23
ho la tua stessa necessità, speriamo bene

john_revelator
30-12-2008, 14:38
Credo che l'unico modo sia tramite vba. A questo indirizzo è possibile anche scaricarie un file di esempio. :)

http://www.ozgrid.com/forum/showthread.php?t=51466

raffaele2006
30-12-2008, 15:50
Credo che l'unico modo sia tramite vba. A questo indirizzo è possibile anche scaricarie un file di esempio. :)

http://www.ozgrid.com/forum/showthread.php?t=51466
Confermo VBA anche se sono un po arruginito non usandolo da un bel pezzo

raffaele2006
30-12-2008, 15:50
Credo che l'unico modo sia tramite vba. A questo indirizzo è possibile anche scaricarie un file di esempio. :)

http://www.ozgrid.com/forum/showthread.php?t=51466
John l'esempio che hai postato è perfettamente funzionante ma...
come mai non vi è una riga di codice VBA?

zuper
30-12-2008, 17:29
John l'esempio che hai postato è perfettamente funzionante ma...
come mai non vi è una riga di codice VBA?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'ActiveSheet.Unprotect Password:="s"
Static rngPrev As Range, PrevColor As Integer
Dim TempColor As Integer
TempColor = Target.Cells(1, 1).Interior.ColorIndex

If Not rngPrev Is Nothing Then rngPrev.Interior.ColorIndex = PrevColor
PrevColor = TempColor
With Target.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Set rngPrev = Target
'ActiveSheet.Protect Password:="s"

End Sub


?

raffaele2006
30-12-2008, 17:51
?

Intendo il file d'esempio scaricato non quello inserito nella discussione.
Ho aperto il VBA e non ho trovato una riga di codice

raffaele2006
30-12-2008, 18:02
http://img362.imageshack.us/img362/2001/immagineog9.th.gif (http://img362.imageshack.us/my.php?image=immagineog9.gif)
come te lo spieghi?
eppure funziona perfettamente

john_revelator
30-12-2008, 19:20
Anche io mi riferivo al file test.xls e il codice che trovo è esattamente quello che ha postato zuper. Se commento la sub non funziona. :)

raffaele2006
30-12-2008, 20:04
Anche io mi riferivo al file test.xls e il codice che trovo è esattamente quello che ha postato zuper. Se commento la sub non funziona. :)

l'immagine che ho postato parla chiaro e non riesco a spiegarmi come mai non visualizzo il codice :confused:

EDIT:
Lo dicevo io che mi ero arrugginito col VBA. Volevo visualizzare il codice in "Generale" invece di Worksheet.
Non ho scusanti!

maxxxl
01-01-2009, 20:50
perdonate la mia ignoranza, ma nel mio caso andrebbe bene cambiare solo il colore della cornice della cella attiva, nel caso non fosse possibile mi servirebbe qualche guida passo passo per l'inserimento della macro per cambiare colore alla cella attiva.

raffaele2006
01-01-2009, 22:55
perdonate la mia ignoranza, ma nel mio caso andrebbe bene cambiare solo il colore della cornice della cella attiva, nel caso non fosse possibile mi servirebbe qualche guida passo passo per l'inserimento della macro per cambiare colore alla cella attiva.
Faccio prima a fornirti il codice modificato che spiegare:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static rngPrev As Range, PrevColor As Integer
Dim TempColor As Integer
TempColor = Target.Cells(1, 1).Interior.ColorIndex

If Not rngPrev Is Nothing Then rngPrev.Borders.ColorIndex = PrevColor
PrevColor = TempColor
With Target.Borders
.ColorIndex = 3
.Weight = xlMinimum 'xlMedium 'xlMaximum [Qui scegli tu il bordo]
End With
Set rngPrev = Target
End Sub
il valore 3 corrisponde al rosso. Se vuoi puoi sbizzarrirti a provare con altri valori ;)

EDIT: Col codice postato però se hai delle celle bordate, all'evento change ti toglie tutti i bordi e non credo tu voglia questo vero? :doh:

maxxxl
02-01-2009, 06:58
infatti, mi toglie i bordi al passaggio, inoltre questa macro la devo usare su un foglio protetto, ed ho visto che quella postata su mi da problemi di debug o simili.

zuper
02-01-2009, 11:05
infatti, mi toglie i bordi al passaggio, inoltre questa macro la devo usare su un foglio protetto, ed ho visto che quella postata su mi da problemi di debug o simili.

beh non può modificare il foglio protetto

raffaele2006
02-01-2009, 13:55
infatti, mi toglie i bordi al passaggio, inoltre questa macro la devo usare su un foglio protetto, ed ho visto che quella postata su mi da problemi di debug o simili.
Ti dà errore perchè quel codice ad ogni selezione che tu fai tenta di cambiare il bordi, ma essendo il foglio protetto non lo può e fare, quindi hai un errore di run time

maxxxl
03-01-2009, 17:58
quindi su un foglio protetto le macro non funzionano?