Insertar guiones en un texto

Tengo una serie de celdas que contienen un rango dé número

520003520

520000325

Y quiero que pueda añadir un 0 cero, delante del 5 primero y dos - guiones en las siguientes posiciones:

05-20-003520

05´20-000325

¿Si alguien me puede proporcionar una macro?

2 Respuestas

Respuesta
1

Si lo quieres con fórmula el resultado en la columna B:

="0"&IZQUIERDA(A2;1)&"-"&EXTRAE(A2;2;2)&"-"&DERECHA(A2;6)


Si lo quieres con macro y el resultado en la columna B:

Sub PonerGuiones()
  With Range("B2:B" & Range("A" & Rows.Count).End(3).Row)
    .Formula = "=""0""&LEFT(A2,1)&""-""&MID(A2,2,2)&""-""&RIGHT(A2,6)"
    .Value = .Value
  End With
End Sub

Si quieres que suceda en la misma columna A:

Sub PonerGuiones_2()
  With Range("A2", Range("A" & Rows.Count).End(3))
    .Value = Evaluate("=IF({1},""0""&LEFT(" & .Address & ",1)&""-""&MID(" & .Address & ",2,2)&""-""&RIGHT(" & .Address & ",6))")
  End With
End Sub

Nota: con esta opción los datos serán reemplazados por los nuevos en la misma columna A, realizar una prueba en una copia de tu hoja.


Escribe tus comentarios.

Respuesta
1

No necesitas una macro para eso, a menos que haya "algo más" detrás de tu pregunta, pero con la información que das, tan simple como colocar un formato a la columna o celda. El formato seria el siguiente: 0#-##-######

Video demo:

PARTE 1: Demo 1.mp4

PARTE 2: Demo 2.mp4

Andy

Tengo entendido que si lo hago por formato, el número sigue siendo 520003520, con lo cual luego no lo podría utilizar como un texto?

es correcta  my apreciación?

de todas formas muchísimas gracias 

Ah deseas tratarlo como texto, debí entender mal. No sé cómo hacerlo y tampoco recomiendo intentarlo. Esperemos la respuesta de alguien más. Lo siento

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas