Permita-me te enviar essa macro pra você analisar e usar, se te for de um bom nível: Me avise que você pegou que depois eu apago se precisar, obrigado. Option Explicit Option Base 1 '========= Início da validação para somente números, ponto e vírgula no campo "TextBox1", 'ao digitar o ponto, o mesmo é substituído pela vírgula. ========= 'Crie um UserForm com duas TextBox, uma delas deve ter o nome de "TextBox1". 'Cole o código abaixo no escopo do seu UserForm. Se colar num módulo ou fora do escopo do UserForm. 'use o atalho Ctrl+U e substitua "TextBox1" por "UserForm1.TextBox1" se o nome do seu UserForm for "UserForm1". 'O código abaixo filtra os dados de entrada na "TextBox1" somente para números 'com conversão do ponto digitado no início para vírgula e conversão, também da vírgula para "0," 'sempre que digitar logo de início, um ponto ou uma vírgula, a digitação se torna "0,". 'Bloqueio da vírgula para ser digitada só uma vez. 'Possibilidade de deslocar a vírgula para a esquerda, exceto para a extrema esquerda. 'É possível colar números com vírgulas ou pontos, a macro filtra e tira as vírgulas ou pontos à direita, 'um número assim: "468.59.1245,456" se torna assim: "468,591245456". 'Limpa a vírgula do final do número se o último dígito for a vírgula ou ponto, ao sair do campo. 'Muito em breve, irei desenvolver novos recursos para essa sub-rotina para fazer cálculos de equações 'como essa: "((4^3-5)^0.5)-(43/3-8*pi)" que dá 18.4806 ou essa: "4pol" que dá 101.6mm 'para ser digitado no "TextBox" e ele já calcular. Até mesmo "2+2" que dá 4. rsrsrs 'Bom proveito Galera. 'Eugênio Private Sub TextBox1_Change() TextBox1 = Replace(TextBox1, ".", ",") If TextBox1 = "," Then TextBox1 = "0," End If If Len(TextBox1) > 1 And TextBox1 "0," And Left(TextBox1, 1) = "," Then TextBox1 = Replace(TextBox1, Left(TextBox1, 1), "", 1, 1) End If
Dim ProxCaractEnt As Integer Dim CarAtualEnt As String Dim CompTotalEnt As Integer Dim ProxCaractMatriz As Integer Dim MatrizMaior As Integer Dim Virgula As String Dim Sobra As String Dim EntValidas As Variant EntValidas = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ",") 'Se quiser ativar mais algum caractere, é só colocá-lo na matriz.
Melhor canal de VBA do brasil
Muito bem explicado Nascimento..... Abraços!
Muito obrigada por compartilhar seu conhecimento, eu estava precisando de um vídeo como esse. Você é 10!❤
Muito obrigado Maria pelo seu apoio😊
Muito obrigado pelo vídeo 👍
Não vejo a hora de comprar teu curso completo, só esperando sair tudo
TOP Mestre
Nossa tava procurando isso hoje por conta dos seus projetos aqui no RUclips hehe Que bela coincidência:-). Obrigado por compartilhar com a gente
Mais um conteúdo top
Maratonando seus vídeos agora + LIKE na certa, muito bom o conteúdo ! Valeu Obrigado !
Olá
Muito bom o seu trabalho, parabéns, Sempre que posso assisto seus vídeos.
Parabéns, excelente
Excelente conteúdo!!!
Sou seu fã
Gracias.
O RUclips não está mais me notificando, lamentável. Eu vi o vídeo porque entrei no canal.
Bom dia professor Nascimento, vai ter promoção do curso na Black Friday?
Bom dia Fernando, já está rolando. Aqui o link: vetorialtreinamentos.com.br/curso-programando-o-excel-com-vba/
Permita-me te enviar essa macro pra você analisar e usar, se te for de um bom nível:
Me avise que você pegou que depois eu apago se precisar, obrigado.
Option Explicit
Option Base 1
'========= Início da validação para somente números, ponto e vírgula no campo "TextBox1",
'ao digitar o ponto, o mesmo é substituído pela vírgula. =========
'Crie um UserForm com duas TextBox, uma delas deve ter o nome de "TextBox1".
'Cole o código abaixo no escopo do seu UserForm. Se colar num módulo ou fora do escopo do UserForm.
'use o atalho Ctrl+U e substitua "TextBox1" por "UserForm1.TextBox1" se o nome do seu UserForm for "UserForm1".
'O código abaixo filtra os dados de entrada na "TextBox1" somente para números
'com conversão do ponto digitado no início para vírgula e conversão, também da vírgula para "0,"
'sempre que digitar logo de início, um ponto ou uma vírgula, a digitação se torna "0,".
'Bloqueio da vírgula para ser digitada só uma vez.
'Possibilidade de deslocar a vírgula para a esquerda, exceto para a extrema esquerda.
'É possível colar números com vírgulas ou pontos, a macro filtra e tira as vírgulas ou pontos à direita,
'um número assim: "468.59.1245,456" se torna assim: "468,591245456".
'Limpa a vírgula do final do número se o último dígito for a vírgula ou ponto, ao sair do campo.
'Muito em breve, irei desenvolver novos recursos para essa sub-rotina para fazer cálculos de equações
'como essa: "((4^3-5)^0.5)-(43/3-8*pi)" que dá 18.4806 ou essa: "4pol" que dá 101.6mm
'para ser digitado no "TextBox" e ele já calcular. Até mesmo "2+2" que dá 4. rsrsrs
'Bom proveito Galera.
'Eugênio
Private Sub TextBox1_Change()
TextBox1 = Replace(TextBox1, ".", ",")
If TextBox1 = "," Then
TextBox1 = "0,"
End If
If Len(TextBox1) > 1 And TextBox1 "0," And Left(TextBox1, 1) = "," Then
TextBox1 = Replace(TextBox1, Left(TextBox1, 1), "", 1, 1)
End If
Dim ProxCaractEnt As Integer
Dim CarAtualEnt As String
Dim CompTotalEnt As Integer
Dim ProxCaractMatriz As Integer
Dim MatrizMaior As Integer
Dim Virgula As String
Dim Sobra As String
Dim EntValidas As Variant
EntValidas = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ",") 'Se quiser ativar mais algum caractere, é só colocá-lo na matriz.
Blz Eugenio, obrigado!
@@DevNascimento
Funcionou?