
Eu tenho um intervalo (a imagem abaixo).
Observe que:
- O intervalo é gerado por outro aplicativo, portanto, o número de linhas está sempre mudando e não é formatado como uma 'tabela' do Excel
- O número de colunas, entretanto, é fixo.
- Sempre há uma
Totals
linha, que é sempre a última linha (no entanto, as células além desta contêm fórmulas avaliadas como '')
Quero ajuda com uma macro VBA que irá classificar o intervalo usando o cabeçalho D
como chave (crescente):
[Veja o link para a tabela classificada abaixo]
Observe que:
- A
Totals
linha (que é sempre a última linha) deve ser ignorada e não classificada.
Após essa classificação, quero que a mesma macro VBA aplique a formatação condicional ao intervalo usando o mesmo cabeçalho D
da chave - a formatação aplica uma borda ao redor do intervalo onde D
é o mesmo:
A tabela final está aqui:http://goo.gl/H118Lx
Observe que:
- Não quero bordas em torno de valores únicos no cabeçalho,
D
ou seja, linhas onde a contagem de valores de células não é maior que 1.
Responder1
Você não precisa de VBA. Você só precisa entender melhor a flexibilidade por trás dos formatos condicionais. Por isso, vou responder à pergunta mesmo que seja ruim.
Você pode classificar por coluna D
como está e a linha de totais estará na parte inferior se for a única com um espaço em branco. Aplique seus formatos condicionais a toda a coluna conforme mostrado abaixo.
Formato: Bordas à esquerda
Faixa: A:A
Fórmula:=AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))
Formato: Bordas à direita
Faixa: E:E
Fórmula:=AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))
Formato: Bordas na parte superior
Faixa: A:E
Fórmula:=AND($D1<>"",$D1<>OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0))
Formato: Bordas na parte inferior
Faixa: A:E
Fórmula:=AND($D1<>"",$D1=OFFSET($D1,-1,0),$D1<>OFFSET($D1,1,0))
Este método irá virar esta folha:
... nesta planilha: