Condividi:        

Excel trova cella colorata VBA

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

Excel trova cella colorata VBA

Postdi Margheraus » 20/01/23 22:23

Buonasera a tutti,
Ho recuperato un vecchio topic che forniva un codice per trovare le celle colorate, tale codice subito ha funzionato e ora mi restituisce un errore.
Purtroppo non sono un’esperta e quindi ho deciso di chiedere il vostro supporto. Praticamente devo creare una formula tipo SE( e(cella1=“testo”; colore cella1= rosso); “testo2”; “t3”). Come costruisco il check sul colore sfondo cella?
Spero di essermi spiegata, grazie a chi mi vorrà aiutare.
Buona serata!
Margherita
Margheraus
Newbie
 
Post: 3
Iscritto il: 20/01/23 22:13

Sponsor
 

Re: Excel trova cella colorata VBA

Postdi Anthony47 » 20/01/23 23:40

Intanto Benvenuta nel forum

Avrebbe fatto piacere sapere cosa avevi provato, anche per poter capire il motivo per cui non funziona piu'...

Allora... Per sondare il colore di una cella bisogna usare il vba. Ad esempio:
Codice: Seleziona tutto
Function CkColor(ByRef TCell As Range, ByRef RefCol As Range) As Boolean
Application.Volatile
CkColor = (TCell.Cells(1, 1).Interior.Color = RefCol.Interior.Color)
End Function

Copia il codice e incollalo in un Modulo standard del tuo vba (potrebbero aiutare queste informazioni: viewtopic.php?f=26&t=103893&p=647675#p647675 )

Poi su excel potrai usare la funzione CkColor con la seguente sintassi:
Codice: Seleziona tutto
CkColor(LaCellaDaSondare; LaCellaDiRiferimento)

Restituira' Vero se il colore della cella da sondare e' uguale a quello della cella di riferimento; oppure falso
Io raccomando di usare la cella di riferimento (non il codice del colore) perche' ci sono molti "rossi"
Quindi la tua formula diventera'
Codice: Seleziona tutto
=SE( e(cella1="testo"; CkColor(cella1;CellaColorataDiRosso); "testo2"; "t3")

Tuttavia la funzione non intercetta la colorazione generata da formattazione condizionale, ne' si aggiorna quando assegni un nuovo colore alle celle, perche' quella fase non genera nessun evento. L'aggiornamento avverra' quando il foglio subisce un cambiamento nei dati

Prova ad adattare alla tua situazione; e se ti areni siamo qua...
Avatar utente
Anthony47
Moderatore
 
Post: 19480
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel trova cella colorata VBA

Postdi Margheraus » 21/01/23 10:41

Ciao e grazie mille per la celerità e la gentilezza!! Appena riesco a lavorarci su ti aggiorno e ti mando per info il codice che ho usato!
Buona giornata e a presto
Margherita
Margheraus
Newbie
 
Post: 3
Iscritto il: 20/01/23 22:13

Re: Excel trova cella colorata VBA

Postdi Margheraus » 22/01/23 17:18

Ciao,
ecco qui il codice dell'altra funzione:
Public Function COLORE(Cella As Range, indice As Long) As Boolean
If Cella.Interior.ColorIndex <> indice Then
COLORE = False
Else
COLORE = True
End If
End Function

In realtà penso sia una questione di aggiornamento (anche se ho provato a fare qualche tentativo), perchè non appena ho inserito la nuova funzione tutto ha ripreso a funzionare e l'errore '#NOME?" è sparito dandomi il risultato atteso.
Hai qualche suggerimento, non essendo pratica di VBA non vorrei sbagliare qualcosa quando riutilizzo il foglio.
Grazie mille
Margherita
Margheraus
Newbie
 
Post: 3
Iscritto il: 20/01/23 22:13


Torna a Applicazioni Office Windows


Topic correlati a "Excel trova cella colorata VBA":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti