Página 1 de 1
Copiar a formatação da célula referenciada
Enviado: 30 Mai 2016 às 15:38
por Felipetvr
Boa tarde,
Tenho uma planilha que é alimentada diariamente com dados que retiro de outro portal onde trabalho.
Esses valores são destacados por cor para atenção, mas vêm no formato de texto "1.0" e não número "1,0", logo não consigo criar a formatação condicional usando "maior >" ou "menor<".
Uso 2 tabelas demonstrando "ANTES" e "DEPOIS". Em outra aba eu referencio essas duas tabelas em uma única, porém ao ser referenciadas, não carrega a formatação das cores. Há algum comando para realizar?
Re: Copiar a formatação da célula referenciada
Enviado: 01 Jun 2016 às 13:33
por MichelExcel
Olá Felipe,
uma forma de resolver seu problema é criar uma formatação condicional do tipo 'Fórmula'. Então na fórmula você usa a função SUBSTITUIR para trocar o "." por "," e efetuar a comparação desejada.
Att.
#MichelExcel
Copiar a formatação da célula referenciada
Enviado: 01 Jun 2016 às 14:37
por Parkeless
Felipe,
Acho que entendi seu problema. Existem células pintadas que contém número (com ponto ao invés de vírgula), e ainda com texto dentro dela, por exemplo: "43.9 dBmV".
Talvez dê para fazer com fórmula (com substituir pra mim deu erro, talvez tenha feito algo errado), mas achei mais simples fazer com função personalizada...
Código: Selecionar todosFunction RetornarNum(Valor As String) As Double
Dim ArrayString
Dim Resultado
ArrayString = Split(Valor, " ")
Dim i As Long
On Error Resume Next
'Se tiver espaços, separar a string e achar valor
If UBound(ArrayString) <> 0 Then
For i = 0 To UBound(ArrayString) - 1
Resultado = Application.WorksheetFunction.Substitute(ArrayString(i), ".", ",") * 1
If IsNumeric(Resultado) Then
RetornarNum = Resultado
Exit Function
End If
Next i
Else
'Se não, só trocar o ponto por vírgula
Resultado = Application.WorksheetFunction.Substitute(ArrayString(i), ".", ",") * 1
RetornarNum = Resultado
End If
End Function
Essa fórmula faz uma busca na string e retorna o primeiro valor encontrado, trocando o ponto pela vírgula. Assim "43.9 dBmV" retorna 43,90.
A partir daí, ela lhe permite fazer formatação condicional tranquilamente com esses números-string.
Estou anexando um exemplo da aplicação, já com alguns critérios hipotéticos. Se tiver dificuldade em adaptar para o seu caso, me informe quais são os critérios reais que aplico e envio.
Copiar a formatação da célula referenciada
Enviado: 01 Jun 2016 às 18:59
por Felipetvr
Acredito que o script se adeque melhor no que preciso. Mas não sei inserir ele na planilha, vou anexar ela aqui. Se possível gostaria de entender o que aconteceu. As outras vezes que me ajudou consegui compreender o que foi feito.
Copiar a formatação da célula referenciada
Enviado: 03 Jun 2016 às 10:17
por Parkeless
Felipe,
Desculpe a demora.
Para incluir uma função personalizada, você tem que ir na planilha, teclar Alt + F11, ir em Inserir > Módulo, e colar o código.
Depois, a planilha deve ser salva no formato .xlsm (planilha habilitada para macro).
Segue código comentado e aplicação anexa:
Código: Selecionar todosFunction RetornarNum(Valor As String) As Double
Dim ArrayString
Dim Resultado
ArrayString = Split(Valor, " ") 'A função split separa um texto em vários subtextos, utilizando um critério (como se fosse um texto para colunas). Determino como critério " ", ou seja, um "espaço" em branco.
Dim i As Long
On Error Resume Next
'Se tiver espaços, separar a string e achar valor
If UBound(ArrayString) <> 0 Then 'Se tiver algum espaço no texto, então
For i = 0 To UBound(ArrayString) - 1 'Fazer para todos os subtextos até achar o número
Resultado = Application.WorksheetFunction.Substitute(ArrayString(i), ".", ",") * 1 'Pegar esse subtexto, trocar vírgula por ponto, e multiplicar por 1
If IsNumeric(Resultado) Then 'Se o resultado disso der um número, então
RetornarNum = Resultado 'Fórmula retorna esse número e finaliza
Exit Function
End If
Next i 'Se o resultado não deu um número, ir para o próximo subtexto
Else 'Se não tiver nenhum espaço,
Resultado = Application.WorksheetFunction.Substitute(ArrayString(i), ".", ",") * 1 ' só trocar o ponto por vírgula
RetornarNum = Resultado 'E a fórmula retorna esse número e finaliza
End If
End Function
Re: Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 04:26
por DJunqueira
Uma forma alternativa de resolver seu problema sem utilizar macro ou função (hehe, mas é isso aí, sem nenhuma das duas) é fazendo uma nova consulta em DADOS / NOVA CONSULTA onde vc pode importar e tratar seus dados de onde e como vc quiser antes deles serem colocados na planilha.
No caso da sua planilha eu importei os dados dela mesma e coloquei uma nova tabela em S:Z, substituí todos os pontos por vírgula nas colunas SNR; TX; RX; MER e transformei os números destas colunas de texto p/ número, para isso nas colunas TX e RX eu retirei o texto "dBmV" e o recoloquei virtualmente pela formatação personalizada. Com isso destaquei os números negativos em vermelho.
Agora p/ 'importar' e tratar os seus dados basta apertar o botão atualizar.
A ferramenta do Excel q faz isso tudo é mais conhecida em inglês como POWER QUERY e tem diversos vídeos s/ ela na internet. Vale muito a pena conhecer mais s/ ela, automatiza muita coisa de forma simples, prática e de fácil manutenção.
Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 04:33
por DJunqueira
Esqueci de acrescentar q tb pode ordenar e excluir dados, linhas e colunas.
Re: Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 11:52
por Felipetvr
Parkeless escreveu:Felipe,
Desculpe a demora.
Para incluir uma função personalizada, você tem que ir na planilha, teclar Alt + F11, ir em Inserir > Módulo, e colar o código.
Depois, a planilha deve ser salva no formato .xlsm (planilha habilitada para macro).
Segue código comentado e aplicação anexa:
Código: Selecionar todosFunction RetornarNum(Valor As String) As Double
Dim ArrayString
Dim Resultado
ArrayString = Split(Valor, " ") 'A função split separa um texto em vários subtextos, utilizando um critério (como se fosse um texto para colunas). Determino como critério " ", ou seja, um "espaço" em branco.
Dim i As Long
On Error Resume Next
'Se tiver espaços, separar a string e achar valor
If UBound(ArrayString) <> 0 Then 'Se tiver algum espaço no texto, então
For i = 0 To UBound(ArrayString) - 1 'Fazer para todos os subtextos até achar o número
Resultado = Application.WorksheetFunction.Substitute(ArrayString(i), ".", ",") * 1 'Pegar esse subtexto, trocar vírgula por ponto, e multiplicar por 1
If IsNumeric(Resultado) Then 'Se o resultado disso der um número, então
RetornarNum = Resultado 'Fórmula retorna esse número e finaliza
Exit Function
End If
Next i 'Se o resultado não deu um número, ir para o próximo subtexto
Else 'Se não tiver nenhum espaço,
Resultado = Application.WorksheetFunction.Substitute(ArrayString(i), ".", ",") * 1 ' só trocar o ponto por vírgula
RetornarNum = Resultado 'E a fórmula retorna esse número e finaliza
End If
End Function
Consegui ajustar, funcionou perfeitamente. Só não consegui ajustar 1 condição na formatação condicional.
1ª formatação condicional: =RetornarNum($I5)<40 , Letras em Laranja;
2ª formatação condicional: =RetornarNum($I5)>50 , Letras em Vermelho;
A terceira é condição é ser entre 40 e 50 (letra verde), mas como tenho que chamar a função RetornarNum(), não consegui colocar esses dois critérios juntos.
Re: Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 12:11
por Felipetvr
DJunqueira escreveu:Uma forma alternativa de resolver seu problema sem utilizar macro ou função (hehe, mas é isso aí, sem nenhuma das duas) é fazendo uma nova consulta em DADOS / NOVA CONSULTA onde vc pode importar e tratar seus dados de onde e como vc quiser antes deles serem colocados na planilha.
No caso da sua planilha eu importei os dados dela mesma e coloquei uma nova tabela em S:Z, substituí todos os pontos por vírgula nas colunas SNR; TX; RX; MER e transformei os números destas colunas de texto p/ número, para isso nas colunas TX e RX eu retirei o texto "dBmV" e o recoloquei virtualmente pela formatação personalizada. Com isso destaquei os números negativos em vermelho.
Agora p/ 'importar' e tratar os seus dados basta apertar o botão atualizar.
A ferramenta do Excel q faz isso tudo é mais conhecida em inglês como POWER QUERY e tem diversos vídeos s/ ela na internet. Vale muito a pena conhecer mais s/ ela, automatiza muita coisa de forma simples, prática e de fácil manutenção.
Companheiro, gostei muito da ferramenta, mas não consegui usar. Olhei seu exemplo, mas não encontrei nem a formatação condicional.
É uma ferramenta extremamente útil, já que extraio os dados de outro local.
Poderia dar uma ajuda?
Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 13:19
por Parkeless
"A terceira é condição é ser entre 40 e 50 (letra verde), mas como tenho que chamar a função RetornarNum(), não consegui colocar esses dois critérios juntos. "
Seria algo assim (obs.: não testei):
=e(retornarnum($I5)>=40;retornarnum($I5)<=50)
Mas acredito que só de você deixar pintado as células (sem ser formatação condicional) já dê certo.
Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 16:00
por Felipetvr
Verdade Robson,
"só de você deixar pintado as células (sem ser formatação condicional) já dê certo."
Independente da 3ª formatação condicional funcionar, já resolveu deixando tudo pintado.
Mais uma vez Obrigado pela ajuda!
Re: Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 18:24
por DJunqueira
Companheiro, gostei muito da ferramenta, mas não consegui usar. Olhei seu exemplo, mas não encontrei nem a formatação condicional.
É uma ferramenta extremamente útil, já que extraio os dados de outro local.
Poderia dar uma ajuda?
Sim, posso ajudar. É uma ferramenta nova q veio com o Excel 2016 e o pessoal ainda não está usando muito, mas cai como uma luva p/ o seu caso.
Quanto a formatação, ela não é uma formatação condicional na realidade utilizei formatação de número mesmo, aquela q vc clica com o botão direito do mouse na célula e depois escolhe
Formatar células...
Na planilha q eu enviei eu não ordenei nem fiz nenhuma formatação condicional.
É provável q vc esteja tendo problema por conta do diretório deferente no seu computador p/ planilha.

Copiar a formatação da célula referenciada
Enviado: 06 Jun 2016 às 21:23
por Felipetvr
"É uma ferramenta nova q veio com o Excel 2016"
Numa versão anterior eu só consigo exibir. Não tenho esse recurso?
Copiar a formatação da célula referenciada
Enviado: 07 Jun 2016 às 00:30
por DJunqueira
Infelizmente é isso mesmo, só na versão 2016 p/ usar todo o potencial da ferramenta.
Re: Copiar a formatação da célula referenciada
Enviado: 07 Jun 2016 às 00:54
por Kledison
Boa noite,
no Excel 2013 também é possível usar o Power Query:
Se quiser baixá-lo entre nesse tópico, lá tem um link.
http://gurudoexcel.com/forum/viewtopic. ... uery#p6582
Att
Copiar a formatação da célula referenciada
Enviado: 07 Jun 2016 às 01:07
por DJunqueira
Muito bem Kledison, vejo q vc conseguiu redirecionar o link.

Copiar a formatação da célula referenciada
Enviado: 07 Jun 2016 às 11:58
por Felipetvr
Consegui instalar no Excel 2010. Funcionou!
Muito obrigado DJunqueira e Kledison