Notifications
Clear all

Formatação condicional

7 Posts
1 Usuários
0 Reactions
1,995 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tenho uma planilha onde utilizo formatação condicional,
ex.: CPF deve conter 11 números, se digitar 12 números o campo fica em vermelho.O usuário deve corrigir todos os campos em vermelho, após todas correções ele clica no botão que gera um arquivo TXT.,
como posso fazer para esse botão só ficar disponivel quando todos os campos forem corrigidos, ou seja nenhum campo estiver em vermelho.

Agradeço a ateção

 
Postado : 15/02/2011 12:33 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Esta formatação condicional que acusa caracteres>11 não garante a integridade do CPF digitado.

Sugiro uma solução que efetivamente VALIDE o algoritmo do CPF ao invés de controlar somente o tamanho do número.

Assumindo que o cpf digitado esteja em A1 e que a célula esteja formatada como texto, cole isso na formatação condicional:

=CONCATENAR(SE(MOD(EXT.TEXTO(A1;1;1)*10+EXT.TEXTO(A1;2;1)*9+EXT.TEXTO(A1;3;1)*8+EXT.TEXTO(A1;4;1)*7+EXT.TEXTO(A1;5;1)*6+EXT.TEXTO(A1;6;1)*5+EXT.TEXTO(A1;7;1)*4+EXT.TEXTO(A1;8;1)*3+EXT.TEXTO(A1;9;1)*2;11)<2;0;11-MOD(EXT.TEXTO(A1;1;1)*10+EXT.TEXTO(A1;2;1)*9+EXT.TEXTO(A1;3;1)*8+EXT.TEXTO(A1;4;1)*7+EXT.TEXTO(A1;5;1)*6+EXT.TEXTO(A1;6;1)*5+EXT.TEXTO(A1;7;1)*4+EXT.TEXTO(A1;8;1)*3+EXT.TEXTO(A1;9;1)*2;11));SE(MOD(EXT.TEXTO(A1;1;1)*11+EXT.TEXTO(A1;2;1)*10+EXT.TEXTO(A1;3;1)*9+EXT.TEXTO(A1;4;1)*8+EXT.TEXTO(A1;5;1)*7+EXT.TEXTO(A1;6;1)*6+EXT.TEXTO(A1;7;1)*5+EXT.TEXTO(A1;8;1)*4+EXT.TEXTO(A1;9;1)*3+EXT.TEXTO(A1;10;1)*2;11)<2;0;11-MOD(EXT.TEXTO(A1;1;1)*11+EXT.TEXTO(A1;2;1)*10+EXT.TEXTO(A1;3;1)*9+EXT.TEXTO(A1;4;1)*8+EXT.TEXTO(A1;5;1)*7+EXT.TEXTO(A1;6;1)*6+EXT.TEXTO(A1;7;1)*5+EXT.TEXTO(A1;8;1)*4+EXT.TEXTO(A1;9;1)*3+EXT.TEXTO(A1;10;1)*2;11)))<>DIREITA(A1;2)

Experimente. Me avise se funciona.

Abs,

 
Postado : 17/02/2011 11:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Já ia esquecendo...

Para brecar a macro se houver inconsistência, coloque na linha 1 de qq coluna (Z, por exemplo) a seguinte fórmula e ARRASTE:

=SE(CONCATENAR(SE(MOD(EXT.TEXTO(A1;1;1)*10+EXT.TEXTO(A1;2;1)*9+EXT.TEXTO(A1;3;1)*8+EXT.TEXTO(A1;4;1)*7+EXT.TEXTO(A1;5;1)*6+EXT.TEXTO(A1;6;1)*5+EXT.TEXTO(A1;7;1)*4+EXT.TEXTO(A1;8;1)*3+EXT.TEXTO(A1;9;1)*2;11)<2;0;11-MOD(EXT.TEXTO(A1;1;1)*10+EXT.TEXTO(A1;2;1)*9+EXT.TEXTO(A1;3;1)*8+EXT.TEXTO(A1;4;1)*7+EXT.TEXTO(A1;5;1)*6+EXT.TEXTO(A1;6;1)*5+EXT.TEXTO(A1;7;1)*4+EXT.TEXTO(A1;8;1)*3+EXT.TEXTO(A1;9;1)*2;11));SE(MOD(EXT.TEXTO(A1;1;1)*11+EXT.TEXTO(A1;2;1)*10+EXT.TEXTO(A1;3;1)*9+EXT.TEXTO(A1;4;1)*8+EXT.TEXTO(A1;5;1)*7+EXT.TEXTO(A1;6;1)*6+EXT.TEXTO(A1;7;1)*5+EXT.TEXTO(A1;8;1)*4+EXT.TEXTO(A1;9;1)*3+EXT.TEXTO(A1;10;1)*2;11)<2;0;11-MOD(EXT.TEXTO(A1;1;1)*11+EXT.TEXTO(A1;2;1)*10+EXT.TEXTO(A1;3;1)*9+EXT.TEXTO(A1;4;1)*8+EXT.TEXTO(A1;5;1)*7+EXT.TEXTO(A1;6;1)*6+EXT.TEXTO(A1;7;1)*5+EXT.TEXTO(A1;8;1)*4+EXT.TEXTO(A1;9;1)*3+EXT.TEXTO(A1;10;1)*2;11)))=DIREITA(A1;2);0;1)

No VBA estabeleça: Quando o resultado da soma da Coluna Z for maior que zero, faça nada, senão RODAR MACRO.

 
Postado : 17/02/2011 11:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

da uma olhada:
viewtopic.php?f=21&t=1205

 
Postado : 18/02/2011 6:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Agradeço a todos ,porém acredito que não fui clara...

Essa planilha contém varias informações nome/endereco/departamento/cargo/data de aniversário/cpf/rg e etc...
cada campo deve ter um determinado número de caracteres, caso o usuário digite um numero maior de caracteres a celula fica em vermelho...

Obs.: Só preciso validar o tamanho do campo

Problema:
Existe um botão que gera um arquivo em TXT de acordo com um layout, esse botão só pode estar disponivel para acionar a macro quando nenhuma celula estiver em vermelho, caso contrario ele fica desabilitado.

Desde já agradeço a todos

 
Postado : 18/02/2011 8:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

regicdp, a mim você foi claro, apenas postei o link caso lhe sirva de complemento a planilha. Não olhei o outro caso pois já mexe com VBA (que não é bem minha especialidade).

Mas segue um exemplo do que precisa.

basta acrescentar as condições de quantidade de caracteres a apenas uma célula e colocar o código referente a essa célula.

Qualquer coisa da o grito.

 
Postado : 18/02/2011 10:38 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ola amigo
De uma olhada nesta planilha.

Qualquer dúvida me fala...
abraços

 
Postado : 20/06/2011 2:07 pm