Ir ao conteúdo
  • Cadastre-se

Excel vba excel - separar numeros de letras


Ir à solução Resolvido por Visitante,

Posts recomendados

Bom Dia!

Gostaria da ajuda dos senhores

Sou leigo em programação, e estou pesquisando como separar números,carácter e letras de uma mesma célula.

Gostaria que a macro retornasse numero + carácter sem a letra conforme coluna B do exemplo abaixo

Exemplo:

 

                   A                             B

1           0.001 TB                   0.001

2           0,02 LT                      0,02

100       0,100 XD                   0,100

120       1.00000 T                  1.00000

 

Minha planilha possui "N" números de linhas e a macro teria que fazer isso em todas as linhas que tivesse algum valor

 

|Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

Boa Noite @Patropi

 

Muito obrigado por perder um pouco do seu tempo me ajudando!

Esqueci de mencionar que em alguns casos, a coluna A não terá letra.

Segue exemplo atualizado:

 

                  A                             B

1           0.001 TB                   0.001

2           0,02 LT                      0,02

3           1.00000                     1.00000

100       0,100 XD                   0,100

105       2,00000                     2,00000

120       1.00000 T                  1.00000

 

Então a sua formula talvez teria que ser ajustada, porque quando eu coloco só números a formula da erro " #VALOR!"

Teria como fazer isso por formula?

 

Muito Obrigado!

Valeu e uma ótima semana!

 

adicionado 21 minutos depois
Em 09/11/2019 às 11:15, jailton.pires disse:

Bom Dia!

Gostaria da ajuda dos senhores

Sou leigo em programação, e estou pesquisando como separar números,carácter e letras de uma mesma célula.

Gostaria que a macro retornasse numero + carácter sem a letra conforme coluna B do exemplo abaixo

Exemplo:

 

                 

                   A                             B

1           0.001 TB                   0.001

2           0,02 LT                      0,02

3           1.00000                     1.00000

100       0,100 XD                   0,100

105       2,00000                     2,00000

120       1.00000 T                  1.00000

 

Minha planilha possui "N" números de linhas e a macro teria que fazer isso em todas as linhas que tivesse algum valor

Obs: Em alguns casos, só existira números na Coluna A.

|Alguém pode me ajudar?

 

Link para o comentário
Compartilhar em outros sites

Boa tarde, @jailton.pires

 

Pode-se usar uma função personalizada para "limpar" o texto extraindo apenas os algarismos e o ponto ou a vírgula. Num módulo normal do VBA, insira o seguinte código:

 

Dim rgx As Object
Const ER = "(\d+)([\.,]\d+)?"
Function LimpaNúm(NúmBruto As String) As String
  Application.Volatile
  If rgx Is Nothing Then Set rgx = CreateObject("VBScript.RegExp")
  rgx.Pattern = ER
  If rgx.Test(NúmBruto) Then
    With rgx.Execute(NúmBruto)(0)
     LimpaNúm = .SubMatches(0) & .SubMatches(1)
    End With
  End If
End Function

Agora na planilha, use a UDF acima como se fosse uma fórmula normal do Excel. Por exemplo, se seus números estiverem na coluna A, na coluna B em B1 coloque a fórmula abaixo e depois arraste:

=LimpaNúm(A1)

 

Dúvida Jailton - Clube do Hardware.zip

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Boa Noite @Edson Luiz Branco

 

Muitíssimo obrigado pela ajuda,era isso mesmo que estava precisando!

Teria como o senhor me ajudar em mais uma coisa?se não for pedir muito!

Gostaria que de alguma forma, procurasse todos os zeros da direita para a esquerda na coluna A, e quando encontrasse um numero inteiro, parasse e retornasse conforme coluna B.

 

 

                  A                             B

1           1,000000                     1

2           2,000000                     2

3           0,002000                  0,002

100       239,000000                239

105       41,000000                   41

120       0,560000                     0,56

150       0,023700                  0,0237

 

Muito Obrigado e ótimo feriado!

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Solução
Em 14/11/2019 às 23:07, jailton.pires disse:

Gostaria que de alguma forma, procurasse todos os zeros da direita para a esquerda na coluna A, e quando encontrasse um numero inteiro, parasse e retornasse conforme coluna B.

 

Segue uma ideia. Veja se aproveita.

Na UDF do Mestre @Edson Luiz Branco acrescente a linha em vermelho conforme abaixo.

     LimpaNúm = .submatches(0) & .submatches(1)
     If InStr(LimpaNúm, ".") = 0 Then LimpaNúm = LimpaNúm * 1
    End With

 

Link para o comentário
Compartilhar em outros sites

\Bom Dia @osvaldomp ,

 

Perfeito!!!Funcionou exatamente como queria..

Pretendo estudar linguagem de programação e quem sabe algum dia ficar bom igual a vocês rs..

 

Muitíssimo obrigado @osvaldomp e ao @Edson Luiz Branco pela força!

 

Um ótimo fim de semana!

Abraço! 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!