Risultati da 1 a 13 di 13

Discussione: Far lampeggiare una cella o il suo valore



  1. #1
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3340
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49

    Far lampeggiare una cella o il suo valore

    Ciao a tutti.
    Dopo aver visto vincere la Pennetta a tennis, mi rivolgo a voi per risolvere (spero) un inconveniente del quale non so capacitarmi.

    Mario (un membro del forum) ha fatto una richiesta e cioè poter far lampeggiare una cella; io, come ho già detto nella sua discussione, ho girovagato su internet ed ho trovato quanto richiesto postando poi il file da me modificato in quanto chi lo aveva fatto non aveva previsto come finire la sub ed altri ammennicoli.
    Ora, e vengo al problema :

    Il ciclo non si chiude da solo e pertanto utilizzo una variabile (valore) che, alla pressione dei tasti CTRL+INVIO richiama la sub "TestEsc" in cui la variabile viene inizializzata ad "1" e successivamente viene richiamata la sub "Rosso" (le sub "Rosso" e Verde" si richiamano tra di loro per colorare la cella alternativamente), quì se valore = 1 toglie la colorazione alla cella, AZZERA LA VARIABILE VALORE, e chiude la sub.

    Purtroppo e quì è l'inghippo, il comportamento dell'azzeramento della variabile è assurdo (almeno per me) infatti se lascio la riga la sub, come se niente fudesse, va avanti "all'infinito" se, invece, tolgo la riga che azzera la variabile, la sub si chiude ma naturalmente la variabile rimane inizializzata ad "1".
    Se rilancio nuovamente la sub non succede nulla perchè trova la variabile inizializzata e chiude (naturalmente anche in questo caso la variabile resta inizializzata).

    Spero di essere stato chiaro.
    Allego il file con evidenziata la riga incriminata.

    Grazie per l'interessamento.

    P.S.
    al pulsante di sinistra bisogna assegnare la macro "Rosso" altrimenti non funziona (avevo creato una sub che azzerava valore e veniva richiamata per prima)
    Ultima modifica fatta da:Baloon_50; 13/09/15 alle 00:48

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  2. #2

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1017
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    Citazione Originariamente Scritto da Baloon_50 Visualizza Messaggio
    .... mi rivolgo a voi per risolvere (spero) un inconveniente del quale non so capacitarmi.
    Sono rientrato oggi e letto al volo, per cui - per il momento - mi limito a questo suggerimento, che ho già dato in altro forum riguardo OnTime:
    "Quando si schedula una routine con il metodo OnTime si DEVE anche provvedere alla sua rimozione altrimenti (essendo un metodo a livello di applicazione) se chiudi il file che l'ha schedulata, ma continui a lavorare con Excel, lui cercherà di rieseguirla.
    Leggi l'help del il metodo Application.OnTime, (parametro Schedule:
    Schedule Facoltativo Variant Se ha valore True, verrà programmata una nuova routine OnTime. Se ha valore False, verrà annullata una routine impostata in precedenza. Il valore predefinito è True.)
    C'è anche un esempio di come usarlo."
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e 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)

  3. #3
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3340
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Sono rientrato oggi e letto al volo, per cui - per il momento - mi limito a questo suggerimento, che ho già dato in altro forum riguardo OnTime:
    "Quando si schedula una routine con il metodo OnTime si DEVE anche provvedere alla sua rimozione altrimenti (essendo un metodo a livello di applicazione) se chiudi il file che l'ha schedulata, ma continui a lavorare con Excel, lui cercherà di rieseguirla.
    Leggi l'help del il metodo Application.OnTime, (parametro Schedule:
    Schedule Facoltativo Variant Se ha valore True, verrà programmata una nuova routine OnTime. Se ha valore False, verrà annullata una routine impostata in precedenza. Il valore predefinito è True.)
    C'è anche un esempio di come usarlo."
    Grazie della dritta ho fatto un po' di ricerche ed ho capito quanto da te suggeritomi.
    Però c'è un problema le sub che vengono eseguite (e si richiamano tra di loro) sono due (Rosso e Verde) e alla pressione di CTRL+INVIO eseguo una terza sub dove vado a mettere l'istruzione

    Application.OnTime Now + TimeValue("00:00:01"), "Rosso", Schedule:=False

    quale delle due sub devo citare ? (evidenziato nell'istruzione in rosso)

    ho fatto alcune prove con il foglio che ho allegato ieri e lanciando prima una sub e poi l'altra (nello specifico prima la sinistra e poi la destra) per una delle due mi viene fuori un errore sulla riga dell'istruzione suddetta.

    Non riesco a venirne fuori è tutto il pomeriggio che ci sto sopra e adesso sono proprio stanco. E dire che non mi serve ma è solo per dilettarmi in VBA.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  4. #4
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3218
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Buongiorno
    Perdonatemi se m'intrometto.
    Ma non sarebbe possibile impostare ENTRAMBE a false? Oppure creare un passo condizionale dove indicare che se è in esecuzione la "Rossa" postala a False, se è in esecuzione la "Verde" postala a False.
    Dico bestialità o è possibile seguire una delle due strade?
    Ciao,
    Mario

  5. #5
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3340
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Buongiorno
    Perdonatemi se m'intrometto.
    Ma non sarebbe possibile impostare ENTRAMBE a false? Oppure creare un passo condizionale dove indicare che se è in esecuzione la "Rossa" postala a False, se è in esecuzione la "Verde" postala a False.
    Dico bestialità o è possibile seguire una delle due strade?
    Ciao,
    Mario
    Mario nessun problema la tua non è un'intromissione perchè la discussione è aperta a tutti e ben vengano nuove soluzioni o suggerimenti.
    Quanto dici potrebbe essere fattibile bisogna riuscire a trovare la soluzione per catturare la sub che sta eseguendo al momento.
    Al momento non ho idea di come fare spero di trovare la soluzione da qualche parte oppure confidare sul nostro amico Scossa che ne sa una più del diavolo :243:

    :299:

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  6. #6
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3218
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Baloon_50
    Stavo "giocherellando" con il tuo file e mi sono accorto che, dove tu segnali l'inghippo, if valore = "1" è una stringa (come dichiarato) mentre poi assegni valore = 0 (cifra). Ho provato a mettere "0" e non cambia nulla ... ma, immediatamente dopo e prima di exit sub, ho inserito uno Stop e, non so spiegarmelo, se clicco continua esce dalla sub e tutto è a posto.

    Ci capisci qualcosa?
    Ciao,
    Mario

  7. #7

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1017
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    Ciao,

    secondo me hai fatto una cosa un po' "contorta".

    Il codice che segue funziona regolarmente:

    Codice: 
    Public DELTAt As Date
    
    '------------------------
    Sub LampeggiaCella()
    
      DELTAt = "00:00:01"
      ' il primo genera un numero casuale tra 1 e 100 il secondo tra 1 e 10
      Range("H1").Value = Int((100 * Rnd) + 1) + Int((10 * Rnd) + 1)
      
      Application.OnKey "^{RETURN}", "TestEsc"
      Application.OnKey "^{ENTER}", "TestEsc"
      
      If Range("H1").Value >= 80 Then
          Application.OnTime Now + TimeValue(DELTAt), "Rosso" ' esegue la sub Rosso
      Else
          MsgBox ("'H1' lampeggerà se il suo valore è maggiore di 80")
      End If
    End Sub
    
    
    '-------------
    Sub Rosso()
     
      With Cells(1, 8).Interior
        If .ColorIndex <> 3 Then
          .ColorIndex = 3                  ' colora la cella di rosso
        Else
          .ColorIndex = 4
        End If
      End With
      Application.OnTime Now + TimeValue(DELTAt), "Rosso", schedule:=True  
    End Sub
    
    
    '----------------
    Sub TestEsc()
    
      Application.OnKey "^{RETURN}"
      Application.OnKey "^{ENTER}"
      Cells(1, 8).Interior.ColorIndex = xlColorIndexNone
      
      Application.OnTime Now + TimeValue(DELTAt), Procedure:="Rosso", schedule:=False
    
    End Sub
    P.S.: nel tuo file hai abbinato il pulsante 3 alla macro Azzera() che non esiste, anziché a TestEsc().
    Ultima modifica fatta da:scossa; 14/09/15 alle 13:50
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e 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)

  8. I seguenti 3 utenti hanno dato un "Like" a scossa per questo post:


  9. #8
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3340
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Ciao,

    secondo me hai fatto una cosa un po' "contorta".

    Il codice che segue funziona regolarmente:

    Codice: 
    Public DELTAt As Date
    
    '------------------------
    Sub LampeggiaCella()
    
      DELTAt = "00:00:01"
      ' il primo genera un numero casuale tra 1 e 100 il secondo tra 1 e 10
      Range("H1").Value = Int((100 * Rnd) + 1) + Int((10 * Rnd) + 1)
      
      Application.OnKey "^{RETURN}", "TestEsc"
      Application.OnKey "^{ENTER}", "TestEsc"
      
      If Range("H1").Value >= 80 Then
          Application.OnTime Now + TimeValue(DELTAt), "Rosso" ' esegue la sub Rosso
      Else
          MsgBox ("'H1' lampeggerà se il suo valore è maggiore di 80")
      End If
    End Sub
    
    
    '-------------
    Sub Rosso()
     
      With Cells(1, 8).Interior
        If .ColorIndex <> 3 Then
          .ColorIndex = 3                  ' colora la cella di rosso
        Else
          .ColorIndex = 4
        End If
      End With
      Application.OnTime Now + TimeValue(DELTAt), "Rosso", schedule:=True  ' esegue la sub Verde
    
    End Sub
    
    
    '----------------
    Sub TestEsc()
    
      Application.OnKey "^{RETURN}"
      Application.OnKey "^{ENTER}"
      Cells(1, 8).Interior.ColorIndex = xlColorIndexNone
      
      Application.OnTime Now + TimeValue(DELTAt), Procedure:="Rosso", schedule:=False
    
    End Sub
    P.S.: nel tuo file hai abbinato il pulsante 3 alla macro Azzera() che non esiste, anziché a TestEsc().
    per quanto riguarda il tuo P.S. lo avevo segnalato comunque non è un problema.
    Vedo che la sub che hai fatto tu utilizza una sola sub di richiamo ed hai perfettamente ragione perchè ontime false lo posso applicare all'unica sub .

    Ecco dove era l'inghippo dovrò stare un po' più attento :262: tks

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  10. #9

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1017
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    @Baloon_50: grazie del riscontro. A questo punto puoi segnare questa discussione come [RISOLTO]: vai nella barra dei menu, situata all’inizio di questa discussione, troverai il menu “Strumenti Discussione” quindi scegli “Segna questo Thread come risolto

    P.S.: controlla la tua firma (pannello di controllo) ci sono due tag sbilanciati (Font e Size).
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e 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)

  11. #10

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1017
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    @tutti: cortesemente, la discussione originale è risolta.

    Questo è un nuovo argomento per il quale Cesare ha già aperto una discussione ad hoc. Procediamo in quella, grazie:

    lampeggio celle
    Ultima modifica fatta da:scossa; 14/09/15 alle 20:36
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e 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)

  12. #11
    L'avatar di cesare
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    44
    Messaggi
    87
    Versione Office
    2010 e 2013
    Likes ricevuti
    0
    Likes dati
    2
    scusate
    Bye Cesare

  13. #12
    L'avatar di Vincenzo Damiani
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Molfetta
    Età
    58
    Messaggi
    419
    Versione Office
    2010
    Likes ricevuti
    13
    Likes dati
    637
    Ciao Scossa,
    Potresti allegare un file definitivo?
    Grazie mille
    Windows8.1 office 2010

  14. #13

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1017
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    Ecco qua:
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e 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)

Discussioni Simili

  1. Far Lampeggiare una determinata casella
    Di Luthor nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 08/09/17, 20:56
  2. [Risolto] Nascondere contenuto di una cella in funzione del valore valore di un'altra cella
    Di Emax80 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 05/12/16, 16:54
  3. [Risolto] Riordinare dati cella in base al valore della cella stessa
    Di Samuela nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 07/10/16, 15:45
  4. Assegna un valore dato il valore un valore maggiore di 0 di altra cella
    Di Fabio71 nel forum Domande su Excel in generale
    Risposte: 20
    Ultimo Messaggio: 27/12/15, 21:23
  5. Inserire in testo presente nella cella un valore ricavato da un altra cella
    Di Bestpaul nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 07/12/15, 17:05

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •