Página 1 de 1
Código VBA para retirar dois caracteres de um número
Enviado: Qui Jul 25, 2013 10:27 am
por Marco_Bertolani
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.
Re: Código VBA para retirar dois caracteres de um número
Enviado: Qui Jul 25, 2013 11:29 am
por webmaster
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
Re: Código VBA para retirar dois caracteres de um número
Enviado: Qui Jul 25, 2013 11:35 am
por Nei Stolberg
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.
Re: Código VBA para retirar dois caracteres de um número
Enviado: Qui Jul 25, 2013 12:03 pm
por webmaster
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
Re: Código VBA para retirar dois caracteres de um número
Enviado: Qui Jul 25, 2013 2:27 pm
por Marco_Bertolani
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.
Re: Código VBA para retirar dois caracteres de um número
Enviado: Qui Jul 25, 2013 2:29 pm
por Marco_Bertolani
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
Re: Código VBA para retirar dois caracteres de um número
Enviado: Qui Jul 25, 2013 2:34 pm
por Marco_Bertolani
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