Faça com que a cor de fundo / texto siga outro plano de fundo ou cor de texto das células

1

Ok, tenho uma planilha grande (por isso, não quero definir cada cor de célula individualmente ou manualmente) e tenho muitas células copiando outras células. Então, por exemplo, eu tenho células N9, N 3, N80, N117 e assim por diante = IF (N $ 931="", "", N $ 931) por isso, se há algo em N931 é copiado para N9 e co, senão está em branco. Eu gostaria de ter a habilidade de fazer qualquer cor de fundo que eu configurei para o N931 ser automaticamente a mesma cor de fundo que no N9. Como vou fazer isso?

Felicidades! Jon

    
por Jon 06.09.2014 / 18:57

1 resposta

1

Como não é possível definir uma cor de célula com base na cor de outra célula usando formatação condicional ou qualquer outra técnica de front end, você precisará usar o VBA.

Supondo que seus dados, com cores, estejam na Linha N e iniciem na Linha 500. Supondo também que sua primeira célula a ser copiada seja N1 e faça referência a N500 como =if(N500="", "", N500) . Além disso, supondo que você iria copiar essa fórmula para N499; o VBA ficaria assim:

Sub copyValuesAndFormats()
    Dim intRow As Integer
    Dim rngCopy As Range
    Dim rngPaste As Range


    'Loop from Rows 1 through 499
    For intRow = 1 To 499

        'Set the copy and paste range
        'CHANGE THE SHEET TO MATCH YOURS
        Set rngCopy = Sheet3.Range("N" & intRow + 499)
        Set rngPaste = Sheet3.Range("N" & intRow)

        'Test to see if rows 500+ have a value
        If rngCopy.Value <> "" Then

            'Since it has a value, copy the value and color
            rngPaste.Value = rngCopy.Value
            rngPaste.Interior.Color = rngCopy.Interior.Color

            'If you wish to copy the color of the font as well, uncomment the next line
            'rngPaste.Font.Color = rngCopy.Font.Color
        End If
    Next intRow
End sub

Se você usar isso, nenhuma fórmula será necessária em N1: N499. Eles serão apagados de qualquer maneira por este código.

    
por 08.09.2014 / 16:04