Macro leer cadena

Buen día a todos!

Expertos tengo el siguiente problema, tengo en la columna B, datos numéricos por ejemplo

2126458047
2435515024
2213516020
1999868027
2200474035
2436037010
2176230023
2436151019
1895073029

3024524
2436180018
98823899228
98824061943
98823910348
98824004125
98823970292
98823887140
98823940386

El máximo de caracteres son 12, algunos vienen con menos, lo que me gustaría hacer es que en el antepenúltimo numero agregue un guion y ajuste los caracteres hasta que sean 13 (esto incluye el guion), con ceros al principio... Quedando asi:

0212645804-7
0243551502-4
0221351602-0
0199986802-7
0220047403-5
0243603701-0
0217623002-3
0243615101-9
0189507302-9

0000302452-4
0243618001-8
9882389922-8
9882406194-3
9882391034-8
9882400412-5
9882397029-2
9882388714-0
9882394038-6

Muchas gracias por su tiempo y ayuda.

1 Respuesta

Respuesta
1

Tomo tu encargo y te preparo la solución

Un momento

Te mando mi solución y estas son las instrucciones:

-Posiciónate encima de la primera celda de esa columna y después ejecuta esta macro

Sub ejemplo()
'por luismondelo
Do While ActiveCell.Value <> ""
largo = Len(ActiveCell)
resta = 12 - largo
ActiveCell.NumberFormat = "@"
ActiveCell.Value = String(resta, "0") & ActiveCell.Value
For x = 1 To 13
extrae = Mid(ActiveCell, x, 1)
If x = 12 Then
lista = lista & "-" & extrae
GoTo salto
End If
lista = lista & extrae
Next
salto:
ActiveCell.Value = lista
lista = ""
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Luis muchas gracias por tu respuesta es justo lo que necesitaba, en horabuena.

Gracias por el tiempo invertido!! :) Quedo mas que satisfecha con la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas