Condividi:        

cella lampeggiante

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

cella lampeggiante

Postdi nicola_na78 » 17/11/10 16:16

Carissimi amici eccomi ancora una volta qua a chiedere il vostro formidabile aiuto.... come avete potuto leggere dal titolo tramite questa istruzione :

Private Sub CommandButton1_Click()
Do
Cells(1, 1).Interior.ColorIndex = 3
Application.Wait Time + TimeSerial(0, 0, 1)
Cells(1, 1).Interior.ColorIndex = 5
Application.Wait Time + TimeSerial(0, 0, 1)
Loop Until Cells(2, 4) = 1
End Sub

ho creato una cella lampeggiante.... l'istruzione funziona, è solo che quando è in esecuzione non mi fa lavorare all'interno del foglio, non mi fa scrivere all'interno di cells(2,4) che è la cella che fa smettere di lampeggiare la cells(1,1).

mi dite come posso fare????
grazie a presto
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Sponsor
 

Re: cella lampeggiante

Postdi maxmula » 17/11/10 17:25

Dai un'occhiata qui ;)

http://www.ozgrid.com/Excel/run-macro-on-time.htm


Ciao,
MAx

PS. Scusa se sono lapidario... ma c'è un autobus che mi aspetta! :P
Se non risolvi da solo, provo a vedere stasera da casa.
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: cella lampeggiante

Postdi nicola_na78 » 17/11/10 17:41

qualcos'altro?????? :-)
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: cella lampeggiante

Postdi Flash30005 » 17/11/10 22:31

Prova questa macro ciclica

Codice: Seleziona tutto
Public DeltaT As Date
Sub Rosso()
DeltaT = "00:00:01"
Cells(1, 1).Interior.ColorIndex = 3
Application.OnTime Now + TimeValue(DeltaT), "Blu"
End Sub
Sub Blu()
Cells(1, 1).Interior.ColorIndex = 5
Application.OnTime Now + TimeValue(DeltaT), "rosso"
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cella lampeggiante

Postdi maxmula » 17/11/10 23:15

Flash30005 ha scritto:Prova questa macro ciclica


Grande Flash... mi hai battuto sul tempo... chissà come mai!!!
Propongo comunque una variante, realizzata utilizzando la mia tecnica sopraffina 8) 8) 8)

Codice: Seleziona tutto

Sub LAMPEGGIA()
    Static FLASH As Boolean
    Dim DELTAt As Date
    DELTAt = "00:00:01"
    CELLA = "A1"
    FOGLIO = "Foglio1"
    Select Case FLASH
        Case True
            Sheets(FOGLIO).Range(CELLA).Interior.Color = RGB(0, 255, 0)
        Case Else
            Sheets(FOGLIO).Range(CELLA).Interior.Color = RGB(192, 255, 192)
    End Select
    FLASH = Not (FLASH)
    Application.OnTime Now + TimeValue(DELTAt), "LAMPEGGIA"
End Sub


La routine qui sopra la devi inserire in un Modulo (Inserisci/Nuovo Modulo, se non ne hai ancora creato uno).

Invece, se vuoi avviarla all'apertura del foglio, in VBA Editor devi andare su Gestione Progetto (CTRL-R) e fare doppio click su "ThisWorkbook".
Qui dovrai inserire questo codice:
Codice: Seleziona tutto
Private Sub Workbook_Open()
    LAMPEGGIA
End Sub


Ciao!
MAx

PS @Flash: sulla tecnica sopraffina scherzavo! Come spesso dico anche ai colleghi... ho imparato a programmare zappando l'orto! :P
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: cella lampeggiante

Postdi nicola_na78 » 18/11/10 09:56

grandi come sempre....... grazie ;) ;) ;)
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: cella lampeggiante

Postdi nicola_na78 » 18/11/10 12:20

ragazzi l'istruzione va alla grande solo che c'è un piccolo problemino......
l'istruzione originale creata da me è la seguente:
For I = 3 To 100
If Cells(I, 10) >= 0 Then
Cells(I, 5).Interior.ColorIndex = 3
Else
Cells(I, 5).Interior.ColorIndex = xlNone
End If
If Cells(I, 10) = "" Then
Cells(I, 5).Interior.ColorIndex = xlNone
End If
Next

partendo da questa ho inserito la vostra istruzione cosi:
Static FLASH As Boolean
Dim DELTAt As Date
DELTAt = "00:00:01"

For I = 3 To 100
If Cells(I, 10) >= 0 Then

Select Case FLASH
Case True
Sheets(FOGLIO).Range(CELLA).Interior.Color = RGB(255, 255, 255) 'bianco
Case Else
Sheets(FOGLIO).Range(CELLA).Interior.Color = RGB(255, 0, 0) 'rosso
End Select
FLASH = Not (FLASH)
Application.OnTime Now + TimeValue(DELTAt), "LAMPEGGIA"
End If
If Cells(I, 10) = "" Then
Cells(I, 5).Interior.ColorIndex = xlNone
End If
Next


la macro funziona ma come al solito non mi permette di fare modifiche...... come si puo' risolvere????

p.s.
la macro postata da voi se la volessi fermare come devo fare???? grazie tante
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: cella lampeggiante

Postdi Flash30005 » 18/11/10 13:36

Se non ti permette di scrivere la macro di Maxmula non credo che lo ossa fare la macro postata da me (funziona sullo stesso principio), ma è molto strano che tu non possa scrivere.

Per fermarla si può intervenire in diversi modi ma penso si debba dare una motivazione del lampeggio e una motivazione del perché fermare il lampeggio.
Volendo puoi mettere la condizione che se su A1 (cella lampeggiante) è diverso da "" allora ferma la routine

Codice: Seleziona tutto
Public DeltaT As Date
Sub Rosso()
DeltaT = "00:00:01"
If Cells(1,1).value <> "" then exit sub  '<<<< riga aggiunta
Cells(1, 1).Interior.ColorIndex = 3
Application.OnTime Now + TimeValue(DeltaT), "Blu"
End Sub
Sub Blu()
Cells(1, 1).Interior.ColorIndex = 5
Application.OnTime Now + TimeValue(DeltaT), "rosso"
End Sub


Non appena scriverai qualsiasi cosa in A1 si fermerà il "lampeggio"
Ma puoi intervenire con tanti altri controlli, dipende sempre che cosa vorresti far "allarmare" (e non) con quel lampeggio.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cella lampeggiante

Postdi maxmula » 18/11/10 14:00

nicola_na78 ha scritto:la macro funziona ma come al solito non mi permette di fare modifiche...... come si puo' risolvere????


Negativo, ho provato la mia macro, incollando il codice dal forum, e la cella A1 può essere modificata mentre sta lampeggiando.
Prova a verificare se per caso non ci sia qualche settaggio tipo "cella protetta" o cose del genere sul menu Protezione.

Domanda: se fai lampeggiare un'altra cella riesci a modificarla?


Per fermare il lampeggio, basta fare questa piccola modifica:

Codice: Seleziona tutto
    If Range("C1") = "" Then
        Application.OnTime Now + TimeValue(DELTAt), "LAMPEGGIA"
    End If


In questo modo, non appena scriverai qualcosa nella cella C1, la cella A1 smetterà di lampeggiare (l'evento onTime va "innescato" di volta in volta, se "perdi un colpo", il ciclo si ferma).

Ovviamente questo è solo un esempio, sta a te poi elaborare i controlli del caso per stabilire quali sono le condizioni di start e stop del lampeggio.

Ciao,
MAx

PS. quando devi postare delle parti di codice, è meglio se clicchi sul pulsantino 'Code' che sta sopra la textbox del forum ed incolli il codice tra i due tag (code) e (/code) ;)
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: cella lampeggiante

Postdi nicola_na78 » 18/11/10 14:16

ti spiego cosa devo fare:

For I = 3 To 100
If Cells(I, 10) >= 0 Then
Cells(I, 5).Interior.ColorIndex = 3
Else
Cells(I, 5).Interior.ColorIndex = xlNone
End If
Next


questa istruzione mi controlla il valore delle celle della colonna(J) tramite il ciclo for.
dato che il valore di queste celle deve essere <= 0 quando si verifica la situazione che una cella contiene un valore > 0,
la cella iesima della colonna E sin colora di rosso If Cells(I, 10) > 0 Then Cells(I, 5).Interior.ColorIndex = 3.


io invece volevo fare in modo che anziche' colorarla di rosso la cella lampeggiasse (rosso-bianco) fino a quando il
valore della cella non ritorna negativo, in questo caso il riempimento della cella è bianco....

si puo' fare???


grazie a presto!!!
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: cella lampeggiante

Postdi maxmula » 18/11/10 15:00

Beh, per i colori ti basta modificare i codici RGB nelle istruzioni ' (...).Interior.Color. La prima cifra è per il rosso, la seconda per il verde e la terza per il blu. Per sapere il codice di ogni colore puoi usare un qualunque programma di grafica (oppure lo stesso excel, nel menu Strumenti/Opzioni/Colore/Modifica/Personalizzati)

Per il check di emissione allarme... qualcosa di questo genere potrebbe funzionare?

Codice: Seleziona tutto
Sub LAMPEGGIA_RANGE()
    Static FLASH As Boolean
    Dim DELTAt As Date
    DELTAt = "00:00:01"
    CELLA = "A1"
    FOGLIO = "Foglio1"
   
    For I = 3 To 100
    If Cells(I, 10).Value <> "" And Cells(I, 10).Value >= 0 Then
        Select Case FLASH
            Case True
                Sheets(FOGLIO).Cells(I, 3).Interior.Color = RGB(255, 200, 210)  'ROSSO CHIARO
            Case Else
                Sheets(FOGLIO).Cells(I, 3).Interior.Color = RGB(255, 0, 0)      'ROSSO
        End Select
    Else
        Cells(I, 3).Interior.ColorIndex = xlNone    'Nessun colore
    End If
   
    Next
   
    FLASH = Not (FLASH)
    Application.OnTime Now + TimeValue(DELTAt), "LAMPEGGIA_RANGE"
End Sub


Mi permetto un piccolo suggerimento pratico: se le celle in questione devono funzionare come "spie" per segnalare un allarme, sarebbe buona cosa evitare di farle passare per uno stato "Bianco" in quanto questo potrebbe ingannare la vista a chi desse al foglio solo un'occhiata frettolosa.

Meglio, in questo caso, optare per un ciclo Rosso/Rosa (o qualunque altro colore tu voglia/possa rappresentare), in modo che lo stato d'allarme sia sempre segnalato da un colore "non-di-default sulla cella interessata ;)

Ciao!
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: cella lampeggiante

Postdi nicola_na78 » 18/11/10 15:50

grazie max funziona!!!! sei un grande mitico
nicola_na78
Utente Senior
 
Post: 186
Iscritto il: 11/06/10 15:26

Re: cella lampeggiante

Postdi Flash30005 » 18/11/10 16:29

nicola_na78 ha scritto:grazie max funziona!!!! sei un grande mitico


Eh! Lo credo!!!

Mi ha fatto passare per statico e booleano!!! :aaah
maxmula ha scritto:...
Static FLASH As Boolean
...


:lol: :lol: :lol:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cella lampeggiante

Postdi maxmula » 18/11/10 16:55

8)

Beh mi sembra che rappresenti in pieno il nome!
E' Statico... ma passa da uno stato all'altro in maniera Booleana... IN UN FLASH! :P

MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: cella lampeggiante

Postdi raimea » 01/08/11 17:57

ciao a tutti
sto tentando di adattare la vostra macro ad un mio folglio.

io vorrei far lampeggiare per 60 secondi la cella G5
ogni volta che si accede al foglio 1
la cella G5 contiene una scritta ed un collegamento ipertestuale ad un sito internet,
ed e' gia di coloro rosso come partenza.

io l'ho scritta cosi:
Codice: Seleziona tutto
Sub lampeggia()


    Static FLASH As Boolean
    Dim DELTAt As Date
    DELTAt = "00:00:01"
    CELLA = "g5"
    FOGLIO = "Foglio1"
   
    For I = 3 To 100
    If Cells(I, 7).Value <> "" And Cells(I, 7).Value >= 0 Then
        Select Case FLASH
            Case True
                Sheets(FOGLIO).Cells(I, 3).Interior.Color = RGB(255, 200, 210)  'ROSSO CHIARO
            Case Else
                Sheets(FOGLIO).Cells(I, 3).Interior.Color = RGB(255, 0, 0)      'ROSSO
        End Select
    Else
        Cells(I, 3).Interior.ColorIndex = xlNone    'Nessun colore
    End If
   
    Next
   
    FLASH = Not (FLASH)
    Application.OnTime Now + TimeValue(DELTAt), "LAMPEGGIA_RANGE"
End Sub


ma non mi lampeggia
cosa sbaglio ?
vi ringrazio
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: cella lampeggiante

Postdi Flash30005 » 01/08/11 20:34

Per adattarla alla tua esigenza devi intervenire in alcuni punti della macro
prova la macro con questa modifica

Codice: Seleziona tutto
Public Tempo As Integer, DeltaT As Date
Sub lampeggia()
If Tempo > 60 Then
Tempo = 0
Goto esci
End If
Tempo = Tempo + 1
    Static FLASH As Boolean
    Dim DELTAt As Date
    DELTAt = "00:00:01"
    FOGLIO = "Foglio1"
    If Val(Range("G5")) >= 0 Then
        Select Case FLASH
            Case True
                Sheets(FOGLIO).Cells(5, 7).Interior.Color = RGB(255, 200, 210)  'ROSSO CHIARO
            Case Else
                Sheets(FOGLIO).Cells(5, 7).Interior.Color = RGB(255, 0, 0)      'ROSSO
        End Select
    Else
        Cells(I, 3).Interior.ColorIndex = xlNone    'Nessun colore
    End If
Esci:
    FLASH = Not (FLASH)
    Application.OnTime Now + TimeValue(DELTAt), "LAMPEGGIA"
End Sub


Ancora meglio se sul VBA del foglio inserisci
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Tempo = 0
Call lampeggia
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cella lampeggiante

Postdi raimea » 01/08/11 20:42

mmm :?:
mi si inchioda colorando una riga tutto di giallo e mi da errore:
run timo 09
indice non incluso nell'intervallo....
Codice: Seleziona tutto
Sub lampeggia()
If Tempo > 60 Then
Tempo = 0
Exit Sub
End If
Tempo = Tempo + 1
    Static FLASH As Boolean
    Dim DELTAt As Date
    DELTAt = "00:00:01"
    FOGLIO = "Foglio1"
    If Val(Range("G5")) >= 0 Then
        Select Case FLASH
            Case True
                Sheets(FOGLIO).Cells(5, 7).Interior.Color = RGB(255, 200, 210)  'ROSSO CHIARO
            Case Else
   Sheets(FOGLIO).Cells(5, 7).Interior.Color = RGB(255, 0, 0)      'ROSSO  <<< si blocca qui mettendo tutta la riga gialla
        End Select
    Else
        Cells(I, 3).Interior.ColorIndex = xlNone    'Nessun colore
    End If
    FLASH = Not (FLASH)
    Application.OnTime Now + TimeValue(DELTAt), "LAMPEGGIA"
End Sub

che puo essere ?
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: cella lampeggiante

Postdi Anthony47 » 02/08/11 01:10

Ma tu, un foglio che si chiama "Foglio1" ce l' hai?

Inoltre se vuoi interrompere il lampeggio dopo 60 sec dovresti mettere subito in testa
Codice: Seleziona tutto
Static Tempo As Integer

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cella lampeggiante

Postdi Flash30005 » 02/08/11 02:04

Segui i consigli di Anthony per far funzionare la macro precedente
E' importante che Foglio1 esista
Codice: Seleziona tutto
Foglio = "Foglio1"

E che dichiari la variabile Tempo altrimenti sarà sempre = 1 e la macro non si ferma.

Se vuoi semplificare il tutto puoi usare anche questa macro di poche righe (inizio modulo)
Codice: Seleziona tutto
Public Tempo As Integer
Sub Lampeggia1()
If Tempo > 60 Then
Tempo = 0
Exit Sub
End If
Tempo = Tempo + 1
DeltaT = "00:00:01"
If Tempo Mod 2 = 0 Then
    Cells(5, 7).Interior.ColorIndex = 3
Else
    Cells(5, 7).Interior.ColorIndex = 4
End If
Application.OnTime Now + TimeValue(DeltaT), "Lampeggia1"
End Sub


Ciao


P.s. Inserisci sempre nel VBA del foglio il codice che avvierà la macro ogni volta che attiverai quel foglio
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Tempo = 0
Call lampeggia1
End Sub
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cella lampeggiante

Postdi raimea » 02/08/11 06:02

okkk risolto.
grazie ad entrabi, ;)
ho optato per l'ultima versione la piu' semplice.
riporto sotto la macro.
Codice: Seleziona tutto
Public Tempo As Integer
Sub Lampeggia()
If Tempo > 16 Then  '<<< il tempo in sec.
Tempo = 0
Exit Sub
End If
Tempo = Tempo + 1
DELTAt = "00:00:01"
If Tempo Mod 2 = 0 Then
    Cells(5, 7).Interior.ColorIndex = 6  'giallo  ( 5,=riga 7=colonna--> g5)
Else
    Cells(5, 7).Interior.ColorIndex = 3  'rosso
End If
Application.OnTime Now + TimeValue(DELTAt), "Lampeggia"
End Sub


questa macro fa lampeggiare la cella g5 per 16 sec. 1na volta, poi si ferma.
Grazie.
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "cella lampeggiante":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti