none
Macro para fazer função de procurar / substituir e deixar como está RRS feed

  • Pergunta

  • Ola,

    Preciso de uma macro no excel que leia valores que pode conter os seguintes exemplos: 123456-7, 123123, 123.456, 123.456-7.

    E que retire:

    o ponto quando houver;

    o traço e o numero que estiver depois dele;

    e coloque a letra M quando tiver 6 numeros e M mais o numero 0 quando tiver 5 numeros, ou seja, sempre deve ter 6 numeros.

    Eu já tenho a macro para tirar o  ponto (segue abaixo), porém não estou conseguindo fazer o resto.

    Sub tiraPonto()
    ActiveSheet.Select
    coluna = 6
    For linha = 1 To 1500
    semponto = ""
    conteudo = Cells(linha, coluna).Value
    tamanho = Len(conteudo)
    For x = 1 To tamanho
    caracter = Mid(conteudo, x, 1)
    If caracter <> Chr(46) Then
    semponto = semponto & caracter
    End If
    Next x
    Cells(linha, coluna).Value = semponto
    Cells(linha, coluna).NumberFormat = "General"
    Next linha
    End Sub

    Alguem poderia me ajudar...

    quarta-feira, 5 de dezembro de 2012 19:51

Respostas

  • Sub fTiraPonto()
        Const cCol = "F"
        
        Dim lRow As Long
        Dim rng As Range
        Dim lInStr As Long
        
        For lRow = 1 To 1500
            Set rng = Cells(lRow, cCol)
            If rng <> "" Then
                rng = Replace(rng, ".", "")
                lInStr = InStr(rng, "-")
                If lInStr > 0 Then
                    rng = Left(rng, lInStr - 1)
                End If
                If Len(rng) = 5 Then
                    rng = "M0" & rng
                Else
                    rng = "M" & rng
                End If
            End If
        Next lRow
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 7 de dezembro de 2012 20:39
    Moderador