Formatando qualquer célula referenciada em uma fórmula

Formatando qualquer célula referenciada em uma fórmula

Tenho duas planilhas, uma com fórmulas extraindo dados da segunda. Preciso criar uma macro ou algum formato condicional para destacar a célula em verde se os dados foram extraídos da segunda planilha. a planilha dois contém dados brutos e a planilha um é uma divisão dos dados em tabelas diferentes.

Para esclarecer minha questão, tenho uma planilha de dados brutos e uma planilha de receitas. A Folha de Resultados possui fórmulas que extraem dados da tabela na planilha de dados brutos. O que estou tentando fazer é:Destaque todas as células na planilha de dados brutos que são chamadas/referenciadas na planilha de demonstração de resultados; dessa forma, sei se algo na planilha de dados brutos não foi usado ou incluído na planilha de receitas. A fórmula na demonstração de resultados que retiro os dados da planilha de dados brutos é:

=IF(ISERROR(VLOOKUP($A643, 'Raw Data'!$A:$N, 4, FALSE)), "-", VLOOKUP($A643, 'Raw Data'!$A:$N, 4, FALSE))

A coluna A possui um código específico que aparece na planilha de dados brutos da mesma coluna. Espero que esta informação ajude. Obrigado! Encontrei esse código abaixo, mas não sei como ajustá-lo para verificar em uma planilha separada.

Sub Button5_Click()

'PLEASE EDIT THIS FIRST BIT. 

Dim row As Integer
row = 1    ' THE STARTING ROW IN YOUR EXCEL SHEET

Dim numberOfRows As Integer
numberOfRows = 5    'THE TOTAL NUMBER OF ROWS YOUR WORKSHEET HAS

Dim columnWithFormula As String
columnWithFormula = "E"    ' THE COLUMN WHERE THE FORMULAs ARE (I suspect you are using B if your example is accurate))

Dim colourIndex As Integer
colourIndex = 26     ' WHAT COLOUR TO HIGHLIGHT COLUMNS. GOOGLE VBa COLOR INDEX

'AND STOP EDITING :)

For row = 1 To numberOfRows

If range(columnWithFormula & row).Value <> "" Then

   Dim result As String

   result = range(columnWithFormula & row).Formula

   result = Replace(result, "(", " ")
   result = Replace(result, ")", " ")
   result = Replace(result, "-", " ")
   result = Replace(result, "+", " ")
   result = Replace(result, "*", " ")
   result = Replace(result, "/", " ")
   result = Replace(result, "=", " ")
   result = Replace(result, ",", " ")

   Dim cells() As String
   cells = Split(Trim(result), " ")

   For j = 0 To UBound(cells)
    range(cells(j)).Interior.ColorIndex = colourIndex
   Next j

End If

Next row


End Sub

Responder1

Uma abordagem com formatação condicional, sem qualquer VBA, envolve a função FormulaText() que está disponível no Excel 2013 e superior.

Crie uma fórmula condicional com um formato que verifica se o nome de uma planilha específica existe na fórmula. Por exemplo, se uma planilha for chamada de “dados brutos”, esta fórmula destacará as células que se referem a essa planilha.

=ISNUMBER(SEARCH("raw data",FORMULATEXT(A2)))

insira a descrição da imagem aqui

Isso também pode ser aplicado para verificar se uma fórmula faz referência a uma tabela do Excel, usando referências estruturadas, onde o nome da planilha não aparece na fórmula, mas o nome da tabela sim.

=ISNUMBER(SEARCH("RawDataTable",FORMULATEXT(A2)))

Usando diferentes fórmulas condicionais para planilhas diferentes, esta pode ser uma maneira muito eficaz de destacar rapidamente dados que não se originam na planilha atual.

Nota: Teoricamente, qualquer referência (não estruturada) a outra planilha poderia ser identificada pelo !sinal após o nome da planilha na referência, mas às vezes, ao criar fórmulas que atravessam planilhas, uma referência a uma célula na planilha atual também pode inclua o nome da planilha, portanto essa abordagem deve ser usada com cautela.

informação relacionada