Ir ao conteúdo

Excel vba excel - separar numeros de letras


Ir à solução Resolvido por Visitante,

Posts recomendados

Postado

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?

Postado

Boa Tarde Ricardo,

 

É que eu queria "automatizar" esse processo sem ter que fazer algo do tipo.

Então teria que ser pro macro mesmo..quando eu colocar o valor na coluna A , ele fizesse esse processo e retornasse na coluna B.

Postado

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?

 

Postado

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
Postado

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!

 

 

 

  • Solução
Postado
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

 

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!