Páginas

miércoles, 18 de junio de 2014

VBA Excel: Eliminar texto no deseado delante de otro texto

Los números de pedido pueden ser "000218XXXXXXX" o "WTXXXXX" o "00PXXXX" 

Sin embargo a veces me envían "Pedido 000218XXXXXXX" o "PL No. wtXXXXX"

Como eliminar ese texto no deseado "PL No. " delante de los numeros de pedido:

Sub validation()

Dim pl As String
Dim Position As Integer
Dim i As Integer
Dim opciones(1 To 5) As String


'PROCESO PARA ELIMINAR EL TEXTO NO DESEADO DELANTE DEL NUMERO DE PEDIDO.

'las posibles opciones con las que comienzan mis numeros de pedido:

opciones(1) = "000"
opciones(2) = "005"
opciones(3) = "00Y"
opciones(4) = "00P"
opciones(5) = "WT"


ThisWorkbook.ActiveSheet.Range("d4").NumberFormat = "@" 'convierte a formato de texto
i = 1  'ser'a el contador de las opciones

For i = 1 To 5 'hacemos un loop por todas las opciones
    Do
        pl = UCase(ThisWorkbook.ActiveSheet.Range("d4").Value)  'asigna el valor de la celda a la variable
        Position = InStr(pl, opciones(i))            'busca la posicion de la opcion en la variable
        If Position > 1 Then                          'si la posicion no es uno:
            pl = Right(pl, (Len(pl) - 1))             'extrae desde la derecha la longitud menos uno
            ThisWorkbook.ActiveSheet.Range("d4").Value = pl    'asigna a la celda el nuevo valor
        End If
    Loop Until Position < 2      'repite hasta que la posicion sea menor a 2
    If Position = 1 Then 'si la posicion es 1, ya estan borraos los espacios y sale del for loop
        Exit For
    End If
Next                  'si la posicion es 0, no encontro la opcion, por lo que pasa a testear la siguiente opcion

End Sub

No hay comentarios:

Publicar un comentario