Macro para cambiar fecha a ISO

Tengo el siguiente formulario

Donde en la columna B2 introdusco la fecha de ingreso.

Y en la columna B16 ingreso la fecha de nacimiento

Como podrán ver el formato de las fechas lo tengo personalizado para que genere con puntos al completar el formulario y al presionar el botón guardar la macro me lleva los datos a otra hoja que se llama BDC RAW DATA

Como pueden ver la macro funciona perfectamente pero necesito cambiar las fechas en la columna B y en la Columna P donde en la columna B se guardan las fechas de ingreso y en la columna P se guardan las fechas de nacimiento.

Necesito transformar las fechas en formato ISO por ejemplo 20.08.2017 a 20082017 sin puntos en las columnas B y P una vez que le de click al botón guardar en la hoja formulario.

OJO: la macro funciona perfectamente solo necesito que me pueda cambiar el formato de las fechas en la macro. Ya que la hoja bdc raw data no debe tener fórmulas en la hoja.

Agradezco su ayuda con este caso.

1 respuesta

Respuesta
1

Este es un ejemplo de como se haría con macros

Sub cambia_formato()
Set datos = Worksheets("bdc raw data").Range("b4").CurrentRegion
colreg = Range("b1").Column
colnac = Range("p1").Column
With datos
    For i = 4 To .Rows.Count
        fechanac = .Cells(i, colreg)
        fechareg = .Cells(i, colnac)
        .Cells(i, colreg) = WorksheetFunction.Text(fechanac, "ddmmyyyy")
        .Cells(i, colnac) = WorksheetFunction.Text(fechareg, "ddmmyyyy")
    Next i
    .Columns(colreg).NumberFormat = "0"
    .Columns(colnac).NumberFormat = "0"
End With
End Sub

y esta seria la pantalla resultado

Pon tu macro me esta pasando lo mismo que con otra persona con un requerimiento exactamente igual estoy especulando con la solución por algo que falta en ambnas explicaciones, ¿quieres qué cambie todas las columnas de la hoja destino? ¿O simplemente quieres que al oprimir guardar se escriba la información ya con el cambio iso en la hoja destino?, de ser afirmativa la segunda respuesta mejor sube la macro.

la instruccion para cmabiar a iso es variable=worksheetfunction.text(celda, "ddmmyyyy")

¡Gracias! amigo eres un genio muy agradecido por tu aporte , te agregare a mis contactos para futuras consultas

amigo una pregunta funciona perfecto, pero necesito que me coloque el 0 en el inicio al ingresar 01/08/2017 el primer 0 no lo coloca como lo modifico? lo demas si lo coloca.

Cambia las dos ultimas líneas por estas

.Columns(colreg).NumberFormat = "00000000"
.Columns(colnac).NumberFormat = "00000000"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas