Discussione:
Cella lampeggiante.
(troppo vecchio per rispondere)
giovanni
2007-02-27 17:16:13 UTC
Permalink
Raw Message
Report
Buonasera.
Vorrei che una cella che contiene il risultato di una formula lampeggiasse
quando viene raggiunto un certo valore.
Si può fare con una macro o devo usare vbe?
C'è qualcuno che mi può aiutare?
Grazie in anticipo
Giovanni
Tiziano Marmiroli
2007-02-27 18:00:10 UTC
Permalink
Raw Message
Report
Post by giovanni
Vorrei che una cella che contiene il risultato di una formula lampeggiasse
quando viene raggiunto un certo valore.
Si può fare con una macro o devo usare vbe?
Ossia?

E' possibile ma è meglio evitare.

http://www.google.it/groups?as_q=lampeggiare%20cella&as_ugroup=microsoft.public.it.office.excel


Facci sapere se e come hai risolto, grazie.
--
Tiziano Marmiroli
Microsoft MVP - Office System
Norman Jones
2007-02-27 18:22:52 UTC
Permalink
Raw Message
Report
Ciao Giovanni,

'--------------
Vorrei che una cella che contiene il risultato di una formula lampeggiasse
quando viene raggiunto un certo valore.
Si può fare con una macro o devo usare vbe?
'--------------

Concordo con Tiziano che sia meglio evitare questo effetto,

Comunque, forse un po' meno invadente potrebbe essere:

Nel modulo Thisworkbook, incolla:

'=============>>
Private Sub Workbook_Open()
On Error Resume Next
ActiveWorkbook.Styles.Add Name:="FLASH"
On Error GoTo 0
End Sub
'<<=============

In un modulo standard, alla testa del modulo, e
prima di qualsiasi codice, incolla:

'=============>>
Option Explicit
Public blFlash As Boolean
Dim NextTime As Date

'---------------->>
Public Sub StartFlash()
NextTime = Now + TimeValue("00:00:01")
With ActiveWorkbook.Styles("Flash").Font
If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2
End With
Application.OnTime NextTime, "StartFlash"
End Sub

'---------------->>
Public Sub StopFLash()
On Error Resume Next
Application.OnTime NextTime, "StartFlash", Schedule:=False
ActiveWorkbook.Styles("Flash").Font.ColorIndex = xlAutomatic
End Sub
'<<=============


Nel Modulo del foglio, incolla:
'=============>>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
Dim rCell As Range
Const myvalue As Variant = 10 '<<=== da CAMBIARE

Set Rng = Me.Range("B1:B10") '<<=== da CAMBIARE

If Not Intersect(Rng, Target) Is Nothing Then
Call StopFLash
blFlash = False
For Each rCell In Rng.Cells
With rCell
If .Value > myvalue Then
blFlash = True
.Style = "FLASH"
Else
.Style = "Normal"
End If
End With
Next rCell

If blFlash Then
Call StartFlash
Else
Call StopFLash
End If
End If
End Sub
'<<=============


---
Regards,
Norman
giovanni
2007-02-27 20:11:05 UTC
Permalink
Raw Message
Report
Grazie a tutti per le risposte ma non capisco perchè sarebbe meglio evitare?
Se uso il solver di excel e la cella che voglio far blinkare è quella del
risultato non mi sembra male o no?
giò
Norman Jones
2007-02-27 20:48:59 UTC
Permalink
Raw Message
Report
Ciao Giovanni,

'----------
Grazie a tutti per le risposte ma non capisco perchè sarebbe meglio evitare?
Se uso il solver di excel e la cella che voglio far blinkare è quella del
risultato non mi sembra male o no?
'----------

Non posso rispondere per Tiziiano ma, da un prospettiva
personale::

L'uso delle celle lampeggianti è specificamente escluso
nei contratti di governo in Inghilterra ed America.

C'è evidenza che le celle lampeggianti possono indurre
l'epilessia o un colpo.

Io, come molto altri, troverei l'uso delle celle lampeggianti
molto seccante..

Per la tua esigenza, hai provato la formattazione condizionale?
Se non fosse sufficiente, potresti utilizzare un MsgBox.


---
Regards,
Norman
giovanni
2007-02-27 21:23:30 UTC
Permalink
Raw Message
Report
Norman accetto le tue considerazioni anche perchè ho vissuto a Houston(TX)
per 5 anni (fra l' altro ho ancora la patente texana).
Però il tuo codice mi dà un errore che in debug me lo segnala a questo punto.
.Style = "FLASH"

Come faccio a correggerlo.
Ciao
Grazie
giovanni
2007-02-27 21:32:10 UTC
Permalink
Raw Message
Report
Sorry
avevo lasciato option explicit in testa al codice del foglio.
Ora funziona ed i numeri>10 diventano rossi e lampeggiano
Perfetto
Grazie
ciao
Norman Jones
2007-02-27 21:46:00 UTC
Permalink
Raw Message
Report
Ciao Giiovanni,

'------------------
Sorry
avevo lasciato option explicit in testa al codice del foglio.
Ora funziona ed i numeri>10 diventano rossi e lampeggiano
Perfetto
'------------------

Non capisco!

Io utilizzo Option Explicit alla testa di *ogni* modulo
di *ogni* workbook.

Vedi la mia risposta precedente - forse avevi riaperto il
workbook e, pertanto, eseguito la procedura
Workbook_Open?


---
Regards,
Norman
Norman Jones
2007-02-27 21:39:32 UTC
Permalink
Raw Message
Report
Ciao Giovanni,

'---------------
Però il tuo codice mi dà un errore che in debug me lo segnala a questo
punto.
.Style = "FLASH"

Come faccio a correggerlo.
'---------------

Questo errore suggerirebbe che non abbia eseguita la procedura:
'=============>>
Private Sub Workbook_Open()
On Error Resume Next
ActiveWorkbook.Styles.Add Name:="FLASH"
On Error GoTo 0
End Sub
'<<=============

Quindi, salva, chiudi e riapri il flle - oppure, semplicemente,
esegui la procedura, dal modulo ThisWorkbook, con F5.


---
Regards,
Norman
Tiziano Marmiroli
2007-02-27 21:34:30 UTC
Permalink
Raw Message
Report
Post by giovanni
Grazie a tutti per le risposte ma non capisco perchè sarebbe meglio evitare?
Se uso il solver di excel e la cella che voglio far blinkare è quella del
risultato non mi sembra male o no?
A te no, a me si. :-)

Personalmente non mi piace l'effetto, ma il problema principale è che,
come ti ha indicato Norman, per implementarlo occorre fare salti
mortali.
--
Tiziano Marmiroli
Microsoft MVP - Office System
giovanni
2007-02-28 07:17:00 UTC
Permalink
Raw Message
Report
Ora funziona tutto grazie al codice di Norman.
Grazie
Giovanni



Loading...