Contenido celda texto a fecha con macro

Hola.

Tengo un hoja que contiene fechas bajadas desde un sistema ERP. Resulta que el informe me arroja las fechas al parecer como texto separadas por "/ " .Lo que tengo que hacer es siempre es un pegado especial multiplicado por 1. Y que si que me resulta(dejándolo como quiero en este formato(01-01-1900). Sin embargo intente hacerlo con una macrograbación y sólo me cambio los formatos de fecha para los días menores a 12 y me cambia el orden pasando los días a meses y los meses a días y para los números mayores a 12 me deja el formato original. No entiendo si lo hago de forma manual resulta, pero si lo ejecuto con la macro no. (adjunto las imágenes)

Sub formatofecha()
Sheets("hoja1").Select
Range("L1").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("L1").Select
    Selection.Copy
    Range("F2:F25").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.NumberFormat = "dd/mm/yyyy;@"
End Sub
    

Respuesta
1

Prueba con esta macro, lo que hace es cambiar una por una cada celda a una fecha

Sub formatofecha()
'Por.Dante Amor
    Dim fec As Date
    For Each c In Range("F2:F25")
        fec = c
        c.Value = fec
    Next
    Range("F2:F25").NumberFormat = "dd/mm/yyyy;@"
End Sub

Gracias. Bajo las condiciones que les plantie si funciona la macro. Sin embargo me tope con este problema, por lo que la macro se cae al llegar a esa celda. ¿Esta vacía pero con formato de / . Se podrá hacer algo con eso?

Cambia la macro por esta

Sub formatofecha()
'Por.Dante Amor
    Dim fec As Date
    For Each c In Range("F2:F25")
        If IsDate(c) Then
            fec = c
            c.Value = fec
        End If
    Next
    Range("F2:F25").NumberFormat = "dd/mm/yyyy;@"
End Sub

1 respuesta más de otro experto

Respuesta
1

Andyur (y Dante)

También podrías intentar con la siguiente línea:

Range("F2:F25").TextToColumns Destination:=Range("F2"), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlDMYFormat)

Gracias. Bajo las condiciones que les plantie si funciona la macro. Sin embargo me tope con este problema, por lo que la macro se cae al llegar a esa celda. ¿Esta vacía pero con formato de / . Se podrá hacer algo con eso?

Lo que te pasé (aquí te lo reitero):

Sub Texto_a_Fecha()
Range("f2:f25").TextToColumns Destination:=Range("f2"), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlDMYFormat)
End Sub

no genera ningún tipo de error.

En todo caso, deberías decidir tú que hacer con eso...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas