Richard sta cercando di utilizzare Trova e sostituisci per contare le celle formattate utilizzando un particolare colore di riempimento. Funziona bene, tranne quando il riempimento è il risultato della formattazione condizionale. In questo caso, Trova e sostituisci non li trova. Tuttavia, è ancora possibile filtrare le righe contenenti celle formattate in modo condizionale in base al colore di riempimento. Richard si chiede perché, se Autofilter è in grado di rilevare entrambi i tipi di formattazione delle celle, Trova e sostituisci non è in grado di individuare quelle celle.

Tutto ciò che potrebbe essere offerto come un “perché” sarebbe, ovviamente, una speculazione. (Ci sono molte volte in cui mi sono chiesto perché Microsoft ha scelto di fare le cose nel modo in cui hanno fatto.) Detto questo, ha senso che Trova e sostituisci venga codificato in modo da poter trovare cose che possono essere sostituite. I colori di riempimento visualizzati come risultato della formattazione condizionale sono proprio questo: un colore di visualizzazione, non un vero colore di riempimento. I colori del display non possono essere sostituiti, quindi non è possibile trovarli.

È tuttavia possibile utilizzare un metodo diverso per visualizzare il conteggio desiderato: una macro. La seguente macro esamina tutte le celle in un intervallo particolare e se viene trovata una corrispondenza con un colore desiderato, il contatore viene incrementato. (È l’oggetto .DisplayFormat che viene esaminato, quindi ha il colore “come visualizzato”, il che significa che corrisponde anche a ciò che potrebbe mostrare la formattazione condizionale.)

Sub CountCellColors()

Dim Rng As Range     Dim c As Range     Dim Colr As Variant     Dim J As Integer     Dim sTemp As String

Set Rng = Range("A1:Z500") 'Change as needed     Colr = vbYellow            'Set color you want to count

J = 0     sTemp = ""

For Each c In Rng         If c.DisplayFormat.Interior.Color = Colr Then             J = J + 1             sTemp = sTemp & vbCr & "     " & c.Address         End If     Next c

Select Case J         Case 0             sTemp = "There are no colored cells in the range."

Case 1             sTemp = "There is 1 colored cell in the range:" _               & vbCr & sTemp         Case Else             sTemp = "There are " & J & " colored cells in the range:" _               & vbCr & sTemp     End Select     MsgBox sTemp End Sub

Al termine dell’esecuzione della macro, viene visualizzata una finestra di messaggio che mostra il numero di corrispondenze di colore e gli indirizzi delle celle corrispondenti. Come scritto, la macro controlla le celle A1: Z500 e cerca il riempimento giallo nelle celle. Entrambe le righe in cui sono impostati questi valori possono essere modificate in base alle proprie esigenze.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13742) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.