ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Código VBA para retirar dois caracteres de um número

Dúvidas gerais sobre Excel
Marco_Bertolani
Colaborador
Colaborador
Mensagens: 49
Registrado em: Ter Nov 13, 2012 6:44 pm

Código VBA para retirar dois caracteres de um número

Mensagem por Marco_Bertolani » Qui Jul 25, 2013 10:27 am

Olá,

Tenho uma planilha com 5000 linhas com números que iniciam com dois zeros e possuem mais 18 caracteres (ex: 00343567542788905412). Preciso de um código VBA para retirar os dois zeros da coluna inteira, ou seja, das 5000 linhas, e deixar somente os 18 caracteres seguintes (ex: 343567542788905412). Alguém pode me ajudar?

Abs!

Marco.



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 2830
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Código VBA para retirar dois caracteres de um número

Mensagem por webmaster » Qui Jul 25, 2013 11:29 am

Marco,

Não é preciso VBA, se for o caso. Tente esta fórmula:

Código: Selecionar todos

=TIRAR(SUBSTITUIR(ARRUMAR(SUBSTITUIR(A1 & CARACT(9);"0";" "));" ";"0"))
Testei aqui com número com vários zeros a esquerda e funcionou. Só haverá problemas se os números tiverem muitos zeros à direita.

Abraços


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Nei Stolberg
Colaborador
Colaborador
Mensagens: 14
Registrado em: Ter Jul 02, 2013 4:25 pm

Re: Código VBA para retirar dois caracteres de um número

Mensagem por Nei Stolberg » Qui Jul 25, 2013 11:35 am

Olá amigo,

Se os números tiverem sempre as mesmas quantidades de caracteres, creio que isso pode ajudar:

Sub RetirarZeros()

L = 1
Do
If Sheets("Plan1").Cells(L, 1).Value <> "" Then
NovoValor = Mid(Sheets("Plan1").Cells(L, 1).Value, 3, 20)
Sheets("Plan1").Cells(L, 1).Value = NovoValor
L = L + 1
Else
Parar = 1
End If
Loop Until Parar = 1

End Sub

Valeu..
Nei.
Editado pela última vez por Nei Stolberg em Qui Jul 25, 2013 2:27 pm, em um total de 1 vez.



Avatar do usuário
webmaster
Administrador
Mensagens: 2830
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Código VBA para retirar dois caracteres de um número

Mensagem por webmaster » Qui Jul 25, 2013 12:03 pm

Marco,

Cheguei num código aqui que deve resolver:

Código: Selecionar todos

Public Function RemoverZerosEsquerda(ByVal textoCelula As String) As String
    'converte em array
    Dim caracteresCelula() As String
    caracteresCelula = Split(StrConv(textoCelula, vbUnicode), Chr$(0))
    ReDim Preserve caracteresCelula(UBound(caracteresCelula) - 1)
    'conta quantos zeros têm no começo
    Dim zeros As Integer
    zeros = 0
    For Each c In caracteresCelula
        If c = "0" Then
            zeros = zeros + 1
        Else
            'quando não achar mais, pára
            Exit For
        End If
    Next c
    
    RemoverZerosEsquerda = Right(textoCelula, Len(textoCelula) - zeros)
End Function
Abraços


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Marco_Bertolani
Colaborador
Colaborador
Mensagens: 49
Registrado em: Ter Nov 13, 2012 6:44 pm

Re: Código VBA para retirar dois caracteres de um número

Mensagem por Marco_Bertolani » Qui Jul 25, 2013 2:27 pm

Perfeito!!! Grato!!!

Nei Stolberg escreveu:Olá amigo,

Se os números tiverem sempre as mesmas quantidades de caracteres, creio que isso pode ajudar:

Sub RetirarZeros()

L = 1
Do
If Sheets("Plan1").Cells(L, 1).Value <> "" Then
NovoValor = Mid(Sheets("Plan1").Cells(L, 1).Value, 3, 20)
Sheets("Plan1").Cells(L, 1).Value = NovoValor
L = L + 1
Else
Parar = 1
End If
Loop Until Parar = 1

End Sub

Valeu..
Nei.



Marco_Bertolani
Colaborador
Colaborador
Mensagens: 49
Registrado em: Ter Nov 13, 2012 6:44 pm

Re: Código VBA para retirar dois caracteres de um número

Mensagem por Marco_Bertolani » Qui Jul 25, 2013 2:29 pm

Muito obrigado!!!!!!!!!!
webmaster escreveu:Marco,

Cheguei num código aqui que deve resolver:

Código: Selecionar todos

Public Function RemoverZerosEsquerda(ByVal textoCelula As String) As String
    'converte em array
    Dim caracteresCelula() As String
    caracteresCelula = Split(StrConv(textoCelula, vbUnicode), Chr$(0))
    ReDim Preserve caracteresCelula(UBound(caracteresCelula) - 1)
    'conta quantos zeros têm no começo
    Dim zeros As Integer
    zeros = 0
    For Each c In caracteresCelula
        If c = "0" Then
            zeros = zeros + 1
        Else
            'quando não achar mais, pára
            Exit For
        End If
    Next c
    
    RemoverZerosEsquerda = Right(textoCelula, Len(textoCelula) - zeros)
End Function
Abraços



Marco_Bertolani
Colaborador
Colaborador
Mensagens: 49
Registrado em: Ter Nov 13, 2012 6:44 pm

Re: Código VBA para retirar dois caracteres de um número

Mensagem por Marco_Bertolani » Qui Jul 25, 2013 2:34 pm

Obrigado!!!!!!!!!!

webmaster escreveu:Marco,

Não é preciso VBA, se for o caso. Tente esta fórmula:

Código: Selecionar todos

=TIRAR(SUBSTITUIR(ARRUMAR(SUBSTITUIR(A1 & CARACT(9);"0";" "));" ";"0"))
Testei aqui com número com vários zeros a esquerda e funcionou. Só haverá problemas se os números tiverem muitos zeros à direita.

Abraços



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder