USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Mascara automatica
Abimael
SÇAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 21/11/2007 12:11 hs            
Pessoal, resolvi tentar eu mesmo desenvolver o script que eu quero, ficou legal, porem se digitar rápido a pontuação não funciona direito, também quando eu tentei colocar um código para somente digitar números não funcionou, se alguém puder dar uma olhada no código e ver o que pode ser melhorado eu agradeceria.


Dim ContaDinDin As Long
Dim Monetario As String
Dim GuardaDim As String
Private Function Pontuacao()

     Select Case ContaDinDin
     Case 1
        Monetario = "0,0" & Text1.Text
        Text1.Text = Monetario
        Text1.SelStart = 4
     Case 2
        Text1.Text = "0," & Mid(Text1.Text, 4, 2)
        Text1.SelStart = 4
     Case 3
        Monetario = Right(Text1.Text, 3)  'Pega os tres ultimos numeros
        Text1.Text = Left(Monetario, 1) & "," & Right(Monetario, 2) 'Pega o primeiro numero +,+os dois ultimos
         Text1.SelStart = 4
     Case 4
        Monetario = Left(Text1.Text, 1) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 2) & "," & Right(Monetario, 2)
        Text1.SelStart = 5
     Case 5
        Monetario = Left(Text1.Text, 2) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 3) & "," & Right(Monetario, 2)
        Text1.SelStart = 6
     Case 6
        Monetario = Left(Text1.Text, 3) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 1) & "." & Mid(Monetario, 2, 3) & "," & Right(Monetario, 2)
        Text1.SelStart = 8
     Case 7
        Monetario = Left(Text1.Text, 1) & Mid(Text1.Text, 3, 3) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 2) & "." & Mid(Monetario, 3, 3) & "," & Right(Monetario, 2)
        Text1.SelStart = 9
     Case 8
        Monetario = Left(Text1.Text, 2) & Mid(Text1.Text, 4, 3) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 3) & "." & Mid(Monetario, 4, 3) & "," & Right(Monetario, 2)
        Text1.SelStart = 10
     Case 9
        Monetario = Left(Text1.Text, 3) & Mid(Text1.Text, 5, 3) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 1) & "." & Mid(Monetario, 2, 3) & "." & Mid(Monetario, 5, 3) & "," & Right(Monetario, 2)
        
       Text1.SelStart = 12
       ' Text3.Text = Text1.Text
     Case 10
        Monetario = Left(Text1.Text, 1) & Mid(Text1.Text, 3, 3) & Mid(Text1.Text, 7, 3) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 2) & "." & Mid(Monetario, 3, 3) & "." & Mid(Monetario, 6, 3) & "," & Right(Monetario, 2)
        Text1.SelStart = 13
     Case 11
        Monetario = Left(Text1.Text, 2) & Mid(Text1.Text, 4, 3) & Mid(Text1.Text, 8, 3) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 3) & "." & Mid(Monetario, 4, 3) & "." & Mid(Monetario, 7, 3) & "," & Right(Monetario, 2)
        Text1.SelStart = 14
    Case 12
        Monetario = Left(Text1.Text, 3) & Mid(Text1.Text, 5, 3) & Mid(Text1.Text, 9, 3) & Right(Text1.Text, 3)
        Text1.Text = Left(Monetario, 1) & "." & Mid(Monetario, 2, 3) & "." & Mid(Monetario, 5, 3) & "." & Mid(Monetario, 8, 3) & "," & Right(Monetario, 2)
        Text1.SelStart = 16
     End Select
  
End Function

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
    ContaDinDin = ContaDinDin + 1
    Pontuacao
End Sub
 
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 21/11/2007 14:34 hs            
Será que esta dica te ajudaria ao menos para dar um caminho colega?? Emoções
 
   
Abimael
não registrado
ENUNCIADA !
Postada em 21/11/2007 15:00 hs   

Já tinha visto este código, o problema é que este código só pontua os centavos, gostaria que também fosse pontuado a milhar e assim por diante.

   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 21/11/2007 15:07 hs            
Vc pode usar também a opção de digitar só números e ao sair do foco formatar:
 
Private Sub text1_lostfocus()
 
   text1 = format(ccur(text1),"##0,##0.#0")
 
End Sub
 
Serve?
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 21/11/2007 17:18 hs            
Aí!! Era só modificar a dica :)
 
Testa deste jeito:
 
If Not IsNumeric(Chr(KeyAscii)) Then
    KeyAscii = 0
Else
    If Len(TextBox1) > 1 Then
        TextBox1 = Replace(TextBox1, ",", "")
        TextBox1 = Left(TextBox1, Len(TextBox1) - 1) & "," & Right(TextBox1, 1)
        If Len(TextBox1) > 5 Then
            TextBox1 = Format(TextBox1, "##0,##0.0")
        Else
            TextBox1 = Format(TextBox1, "#0.0")
        End If
        TextBox1.SelStart = Len(TextBox1)
    End If
   
End If
 
at+
   
Abimael
SÇAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 22/11/2007 10:11 hs            

Cara Perfeito!!!!!!! Se não sabe quanto tempo eu perdi fazendo este código inútil, valeu mesmo!

   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página