MANEIRA MAIS FACIL ...
 
Notifications
Clear all

MANEIRA MAIS FACIL DE ENTRAR DADOS DE HORAS????

29 Posts
2 Usuários
0 Reactions
9,178 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ola...

Eu quero fazer o seguinte:

1. digitar uma hora no formato HHMM e excel preencher automaticamente o formato HH:MM, sem precisar digitar os dois pontos??

eu conseguir fazer isso personalizando o formato para 00":"00, entretanto agora ao digitar, por exemplo, 878 o excel preenche a celula com 8:78 e eu quero restringir isso para valores de hora validos, alem disso ao usar as funcoes esquerda e direita para separar os valores de hora e minuto para tentar fazer alguma formatacao condicional ou validacao quando eh uma hora no formato 630, por exemplo, ao usar a funcao esquerda ele retorna no valor 63 e nao 06...

 
Postado : 07/03/2011 12:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu utilizo uma rotina em VBA para poder Digitar Horarios sem digitar os "2" pontos, veja se ajuda, coloquei as Funções HORA e MINUTO para retornar os mesmos, não sei se é bem isto que precissa, estou de saida agora, qq coisa retorne.

"Anexo atualizado em 20/09/11"
Horas sem 2 pontos VBA

Com certeza alguem postara uma ajuda sem VBA, mas por hora segue a minha sugestão.

[]s

 
Postado : 07/03/2011 1:05 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Obrigado...

Essa sao em VBA eu jah tinha visto...

mas se eu precisar da solucao em diversas colunas vou ter que colocar uma instrucao if para cada grupo de colunas???

If Application.Intersect(Target, Range("C2:C32")) Is Nothing Then

 
Postado : 08/03/2011 6:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

ei mauro??? vc eh daqui de Sao Jose dos Pinhais????

 
Postado : 08/03/2011 6:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

ei mauro??? vc eh daqui de Sao Jose dos Pinhais????

Sim, moro em SJP.
Quanto a sua pergunta, eu adaptei somente para uma coluna, pois não informou se iria utilizar em mais colunas, na versão original que uso, é para controle de HE e utilizo esta rotina em 4 Colunas da seguinte forma, com formula no Range "G":
If Application.Intersect(Target, Range("C9:F39")) Is Nothing Then

Podemos ainda, dependendo da utilização, fazer como sugeiru, usar Condições IFs, ou nos Ranges ou para as COLUNAS, tipo :
If Target.Column = 1 Then, mas isso dependeria de outras implementações na Rotina.

Espero que ajude, qq duvida poste novamente.

Em tempo, relendo melhor sua duvida, a intensão não é somente a questão dos "2" pontos, mas tambem verificar se a hora digitada é Valida, tenho uma outra aplicação em que faço esta verificação, mas é uma rotina em um UserForm, vou ver se readapto a mesma para uso direto na planilha e depois posto.

[]s

 
Postado : 08/03/2011 8:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

eu consegui criar uma formula que valida os dados permitindo somente que entre horas reais.. mas ainda vou ter que tomar cuidado com os dados pois vao estar na base decimal e nao em base 60..

=SE((NÚM.CARACT(A4)=4);E((VALOR(DIREITA(A4;2))<=59);VALOR(A4)>0;(VALOR(ESQUERDA(A4;2)))<=23);SE((NÚM.CARACT(A4)=3);E((VALOR(DIREITA(A4;2)))<=59);VALOR(A4)>0))

agora eu jah consigo com que o excel preencha o ":" e tambem com que somente permita horas no intervalo de 0 a 23 e minutos no intervalo de 0 a 59, mas para ficar legal mesmo a mascara tinha que preencher os vazios com 00 quando eu digitasse somente os minutos, por exemplo se eu digitasse 32 a celula vai ficar :32 e o bom mesmo era que ficasse 00:32 e ainda eu tenho que aumentar um pouco a formula para que nao aceite soh os minutos maiores de 60

 
Postado : 08/03/2011 9:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Se você estiver utilizando a formatação que indicou anteriormente - 00":"00, no teste que fiz com o uso de sua formula, se eu digitar :
33 o resultado é 00:33 (A formula da Verdadeiro)
65 o resultado é 00:65 (A formula da Verdadeiro)
55 o resultado é 00:55 (A formula da Verdadeiro)

Mas e se digitar:
2400 o resultado é 24:00 (A formula da falso)
0 ou 0000 o resultado é 00:00 (A formula da falso)

Ou seja se for usar estes valores com a formatação em alguma conta, não terá os resultados corretos, por exemplo 00:65 + 00:55 é = a 02:00 e da forma que está fazendo o resultado é 01:20.

Sendo assim, se for isso mesmo que pretende, ok, mas se não, dependeria de saber exatamente a finalidade para podermos chegar a uma solução aceitável.

[]s

 
Postado : 08/03/2011 9:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

=SE((NÚM.CARACT(A4)=4);E((VALOR(DIREITA(A4;2))<=59);VALOR(A4)>0;(VALOR(ESQUERDA(A4;2)))<=23);SE((NÚM.CARACT(A4)<=3);E((VALOR(DIREITA(A4;2)))<=59);VALOR(A4)>0))

A formula corrigida...

mas ainda fica o problema de preencher a mascara com o formato 00:00 quando eu lançar somente os minutos...

 
Postado : 08/03/2011 9:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

eita..

eu tava usando a mascara ##":"## , quando eu passei para a mascara 00":"00.. o problema de preencher os zeros ta resolvido...

agora realmente o formato da celula está como GERAL e nào como HORA... entáo tá na base 10 e nao 60.. na hora de fazer qualquer calculo com hora eu tenho que mudar a base.. mas isso vai ficar pro proximo post.. hehehe..

 
Postado : 08/03/2011 9:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

droga..

ainda ta errado.. se eu digitar um numero maior que 4 caracteres e ainda aceita.. tenho que restringir isso..

 
Postado : 08/03/2011 10:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

[Editado]
Estava postando no mesmo momento em postou novamente, mas de uma olhada, e se possível, anexe um exemplo com dados fictcios e com as explicações da finalidade, irá facilitar na ajuda.

SJP, acho que não estou captando sua questão.

A formula que postou, somente verifica a Condição Verdadeira ou Falso, independente de é Horas ou Numeros Decimais.
Quanto a questão da Mascara, tambem estou em duvida ao que quer.
De uma olhada neste exemplo e veja que as mascaras são retornadas conforme definido no formato das mesmas e veja tambem os Resultados das formulas, a anterior e a atual.

"Anexo atualizado em 20/09/11"
Horas sem 2 pontos

[]s

 
Postado : 08/03/2011 10:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

SEGUE O ARQUIVO...

 
Postado : 08/03/2011 10:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

TINHA UM DESGRACADO DE UM PARENTESES FORA DO LUGAR

=SE((NÚM.CARACT(A4)=4);E((VALOR(DIREITA(A4;2))<=59);VALOR(A4)>0;(VALOR(ESQUERDA(A4;2)))<=23);SE((NÚM.CARACT(A4)<=3);E((VALOR(DIREITA(A4;2)))<=59;VALOR(A4)>0)))

 
Postado : 08/03/2011 10:30 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

AFF...

preferi usar a solucao em VBA... A solucao pela validacao da entrada funcionou... mas para realizar operacoes matematicas o negocio complicou novamente.. com mais tempo eu tento novamente...

 
Postado : 08/03/2011 1:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bem pessoal eu consegui assim:

Criei uma tabela no Word e digitei os dados,

após digitar tudoi com Virgulas usei o localizar e substituir para substituir 07,30 por 07:30.

copiei a tabela agora substituida e colei o excel. as formulas funcionam normalmente.

É uma gambiarra mas resolveu.

espero ter ajudado.

abraços.

 
Postado : 01/04/2011 4:34 pm
Página 1 / 2