- Este tópico contém 4 respostas, 2 utilizadores e foi actualizado pela última vez há 12 anos, 8 meses por jorgerod.
-
AutorArtigos
-
-
20 de Maio de 2012 às 17:50 #1089AlbinoParticipante
boas.
tenho um fivheiro em excel (uma agenda de contactos) na qual tenho dois formulários, um para introdução de dados e outro para procurar.
no formulario procurar pretendia que ao serem apresentados os valores introduzidos estes me aparecerem com uma determinada máscara.
o actual como foi adaptado de uma agenda brasileira a máscara para o telefóne aparece assim: (00)000-000
o que eu pretendia era que me devolve-se a mascara assim: 000 000 000
o código da adaptação brazuca é o seguinte:private sub textboxtel_residencial_keypress(byval keyascii as msforms.returninteger)
dim strvalid as string
strvalid = “0123456789”
if instr(strvalid, chr(keyascii)) = 0 then
keyascii = 0else
‘as duas instruções seguintes fazem com que a formatação do numero fique no estilo: (12)345-678
if len(textboxtel_residencial) = 2 then textboxtel_residencial = “(” & mid(textboxtel_residencial, 1, 2) & “)”
if len(textboxtel_residencial) = 8 then textboxtel_residencial = textboxtel_residencial & “-”
if len(textboxtel_residencial) = 13 then textboxtel_celular.setfocusend if
end sub
tentei coma instrução que vi na net mas sem exito
alguem me poderia ajudar neste dilema…?
obrigado
-
20 de Maio de 2012 às 19:57 #1873jorgerodAdministrador
albino,
eu, para este tipo de situações, vou pelo mais “fácil”. assim, o código que costumo utilizar é o seguinte, o qual podes adaptar à tua maneira:
private sub telemovel_exit(byval cancel as msforms.returnboolean)
with telemovel
telemovel = format(telemovel, “[<=999999999]### ### ###;(###) ### ### ###")
end with
end subfica bem.
-
20 de Maio de 2012 às 22:19 #1874AlbinoParticipante
boas
jorgerod
tentei adaptar assim:private sub textbox7_exit(byval cancel as msforms.returnboolean)
with textbox7
textbox7 = format(textbox7, “[<=999999999]### ### ###;(###) ### ### ###")
end with
end subuma vez que o nome da textbox é "textbox7" , mas não deu resultado o formato devolvido é 000000000
resolvi a questão alterando o código original para:
private sub textbox7_keypress(byval keyascii as msforms.returninteger)
dim strvalid as string
strvalid = "0123456789"
if instr(strvalid, chr(keyascii)) = 0 then
keyascii = 0else
if len(textbox7) = 3 then textbox7 = mid(textbox7, 1, 3) & " "
if len(textbox7) = 7 then textbox7 = textbox7 & " "
if len(textbox7) = 11 then textbox8.setfocusend if
end sub
obrigado na mesma e fica bem
abraço -
20 de Maio de 2012 às 23:08 #1875jorgerodAdministrador
albino,
podes experimentar, para ver se funciona, desta maneira?
private sub textbox7_exit(byval cancel as msforms.returnboolean)
with textbox7
textbox7 = vba.format(textbox7, “[<=999999999]### ### ###;(###) ### ### ###")
end with
end subobrigado e fica bem.
-
22 de Maio de 2012 às 12:25 #1090AlbinoParticipante
boas
jorgerod
funcionou, aliás não era de esperar outra coisa.
pelo que observei faltava-me “vba.format”esta forma sempre é mais fácil que a dos brazucas, tem menos código.
obrigado
abraço
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.