|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2006
Città: Monza
Messaggi: 152
|
[VB] Macro excel per trovare e colorare una cella
Ciao, avrei bisogno di un piccolo aiutino per una macro excel.
Avrei necessità che il testo contenuto in una cella su un foglio (consegna) venisse cercato nella colonna A di un altro foglio (database) e, nel caso fosse trovato, che la cella che lo contiene si colorasse di verde. Sono ore che sbatto la testa per cercare qualcosa del genere ma ho solo trovato ricerca e modifica nello stesso foglio Grazie in anticipo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Certo potresti fare una macro, ma esiste un modo più semplice. Puoi inserire una colonna nascosta con la formula cerca.vert, quindi utilizzi la formattazione condizionale per modificare il colore della cella.
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Nov 2006
Città: Monza
Messaggi: 152
|
Il problema è che tutto ciò deve accadere alla pressione di un pulsante e, a seconda di quale dei due pulsanti si preme, la cella deve diventare o gialla o verde
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Prima hai detto che la cella doveva colorarsi in base alla presenza del valore in un altro foglio, ora invece stai dicendo che il colore viene stabilito premendo due pulsanti diversi, forse dovresti prima decidere cosa vuoi fare.
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Nov 2006
Città: Monza
Messaggi: 152
|
Quote:
Il fatto che si colori di verde o giallo è del tutto secondario, a seconda del pulsante inserisco il codice modificato solo nella parte del colore |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Bene dunque, puoi fare così:
prima di tutto crea due riferimenti ai fogli interessati: set f1 = Worksheets("Foglio1") set db = Worksheets("Foglio2") Poi prelevi il valore interessato dal primo foglio così: vf1 = f1.Range("A1").Value E contestualmente cancelli il colore della cella (imposti il bianco): f1.Range("A1").Interior.Color = rgb(255, 255, 255) Poi fai un loop con il quale confronti il valore con le celle del secondo foglio, che potresti leggere così: vdb = f1.Range("A" & i).Value Se trovi il valore interessato imposti il colore sulla cella, per esempio il verde: f1.Range("A1").Interior.Color = rgb(0, 255, 0) Se il valore non viene trovato rimane il colore impostato prima del loop, cioè bianco. |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Nov 2006
Città: Monza
Messaggi: 152
|
Ti ringrazio moltissimo per l'aiuto. Dopo aver impostato il ciclo e ritoccato alcuni particolari sono riuscito a fare esattamente quello che avevo in mente grazie alla tua base
Appena arrivo a casa pubblico il codice completo nel caso qualcuno avesse bisogno della stessa cosa |
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Nov 2006
Città: Monza
Messaggi: 152
|
Ecco qui
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:34.




















