Come far lampeggiare cella o testo in Excel?

Eccomi di nuovo :-) Sto finendo un progetto e avrei bisogno che la cella B5 lampeggiasse di verde chiaro/testo nero al momento che il valore della cella raggiunge un certo valore.

Richiesta 1:

B5 è nera con testo azzurro. Valore della cella è impostato manualmente come target punti mese.

B10 calcola la somma dei punti inseriti durante il mese in altre celle. Una volta raggiunto il target impostato nella B5, vorrei che la B5 lampeggiasse di sfondo verde chiaro/testo nero (target raggiunto) ...per adesso l'ho fata solo "accendere" di verde chiaro con la formattazione condizionale, ma vorrei appunto evidenziare di più il target raggiunto.

Richiesta 2:

E30 (grigia) contiene simbolo di un punto (●) rosso.

B30 (nera) si "accende" di verde chiaro (semplice formattazione condizionale) quando il valore della cella G3 è >=50 , per poi "spegnersi" (ritornare nera con testo grigio) alla condizione G3>=100.

Quando G3 è >=101 si "accende" B31 fino a che la G3>=200, per poi spegnersi, quando G3>=201...

(ultimo)Quando G3>=201 si accende la cella B32

Vorrei che la stessa condizione (>=50) facesse lampeggiare il (●) della cella E30 (grigia) di verde chiaro per poi continuare a lampeggiare ad oltranza.

Quando la G3 è >=101 vorrei che lapeggiasse di verde chiaro il "●" nella cella E31(grigia) e poi continuasse a lampeggiare ad oltranza e infine quando la G3 è >=201, deve lampeggiare di verde chiaro il "●" della cella E32(grigia).......

Premetto che non ho mai creato macro, ne usato VBA. Ho visto in giro degli script e delle macro, ma con istruzioni poco chiare su come impostare il tutto.

Mi piacerebbe anche capire, come impostare la frequenza e la velocità di lampeggiamento e i vari colori da far lampeggiare.

Esite una tabella dove reperire i valori numerici dei vari colori da impostare nelle macro (es: 3=giallo)?

Spero non risulti confusionaria la mia richiesta, che ho scritto in modo dettagliato proprio per far capire l'idea finale.

Quello che basterebbe a me e capire la macro di base e su come applicarla alle varie celle.

Grazie mille per chi mi aiuta!!!

2 risposte

Classificazione
  • 8 anni fa
    Risposta preferita

    Ciao Rene,

    visto che il file precedente ti ha soddisfatto, ti allego anche qua un esempio, che si basa sempre sul conosciuto StartBlinking proposto già da Pit.

    L'ho adattato alle tue esigenze, senza pulsanti di sorta, ma legandolo all'evento Change di un intervallo stabilito. Vedi se riesci a capirne il funzionamento, altrimenti puoi sempre contattarmi.

    Inoltre ho inserito i colori che indicavi e nel secondo foglio troverai la tabella dei colori index (calcolati al volo tramite una macro che ti ho inserito nel Modulo2.

    Per quanto riguarda il secondo punto, sconsiglio vivamente di gestire due lampeggi derivanti da due eventi diversi; Excel non si propone bene per queste cose, anche se fa la sua bella figura.

    Puoi scaricare il file da questo link:

    https://www.sugarsync.com/pf/D7311182_65013052_607...

    Fonte/i: HarryBosch http://www.excelvba.it/
  • 8 anni fa

    Tendenzialmente far lampeggiare una cella non è una cosa ottimale (dato che devi usare una macro che gira continuamente, e a certi intervalli deve eseguire delle operazioni), Infatti rallenta qualunque operazione che puoi effettuare. Il consiglio è di inseire due bottoni sul tuo foglio principale, uno che abilita il lampeggiamento, ed uno che lo disabilita. Inoltre forse è meglio tenere alto il tempo tra un lampeggiamento e l'altro.

    Apri l'editor di visual basic a aggiungi questo codice sotto "thisworkbook".

    Option Explicit

    Public NextBlink As Double

    'Qua metti il nome del foglio e le celle di cui vuoi il blink-lampeggiamento

    'nell'esempio c'è solo la cella b5, se ne vuoi aggiungere altre, ripeti

    'le istruzioni di if-then-else anche per l'altra cella

    Public Const BlinkCell_1 As String = "Foglio1!B5"

    Public Const BlinkCell_1 As String = "Foglio1!E30"

    'Start blinking

    Private Sub StartBlinking()

    Application.Goto Range("A1"), 1

    'Se il colore è rosso, lo cambia in bianco

    If Range(BlinkCell_1).Interior.ColorIndex = 3 Then

    Range(BlinkCell_1).Interior.ColorIndex = 0

    'Se il colore è bianco, lo cambia in rosso

    Else

    Range(BlinkCell_1).Interior.ColorIndex = 3

    End If

    'ripeti la if per l'altra cella, ma stavolta cambia il colore del font

    If Range(BlinkCell_2).Font.ColorIndex = 3 Then

    Range(BlinkCell_2).Font.ColorIndex = 0

    'Se il colore è bianco, lo cambia in rosso

    Else

    Range(BlinkCell_2).Font.ColorIndex = 3

    End If

    'Attendi due secondi

    NextBlink = Now + TimeSerial(0, 0, 2)

    Application.OnTime NextBlink, "StartBlinking", , True

    End Sub

    'Stop blkinking

    Private Sub StopBlinking()

    'Set color to white

    Range(BlinkCell_1).Interior.ColorIndex = 0

    Range(BlinkCell_2).Font.ColorIndex = 3

    On Error Resume Next

    Application.OnTime NextBlink, "StartBlinking", , False

    Err.Clear

    End Sub

    Crea due command button sul tuo foglio dati, e associa un bottone alla macro "StartBlinking" e l'altro a "StopBlinking"

    Fonte/i: msdn microsoft
Altre domande? Fai una domanda e ottieni le risposte che cerchi.