Error en codigo de VBA para traer dia de una fecha?

Tengo el siguiente codigo:

Sub dia()

With Range("AS2").CurrentRegion
filas = .Rows.Count: col = Columns.Count
Range("U2").Resize(filas,1).formula ="=text("&"U2"&";"&""dd""&")"

End With

End Sub

El cual me generar un error, anteriormente utilizaba la formula =TEXTO(A2;"DD") para extraer el dia de una fecha con dos digitos.

1 Respuesta

Respuesta
1

Para obtener solamente el día podrías utilizar la función DAY que sirve para diferentes formatos de fecha.

Por ejemplo:

Range("H2").Formula = "=Day(B2)"

Hola como estas, lo ejecuto de la siguiente forma:

Sub dia()

Range("AS2").Formula = "=Day(U2)"

End Sub

Y no me trae el dia

Otra consulta los datos en fecha de la columna U2 a veces son pocos o bastantes puede variar, pero requiero que se adapte al rango que pegue. Por ejemplo un dia pueden ser 100 fechs , otro dia 1000.

Gracias

En la imagen que te envié se ve claramente que te devuelve el día no importa el formato de fecha.

Ahora, ¿seguro qué lo tuyo es una fecha? ¿No será un texto que parece una fecha? Fijate en qué margen se alinea o muestrame una imagen de esa col.

Con respecto a requiero que se adapte al rango que pegue entiendo que necesitas que esa fórmula se arrastre al resto de tu col AS.

Sub formulando()
'x Elsamatilde
'saber cuál es la última celda en U
x = Range("U" & Rows.Count).End(xlUp).Row
'cualquiera de las 2 instrucciones siguientes dejará la fórmula
Range("AS2").Formula = "=DAY(U2)"
'Range("AS2").FormulaR1C1 = "=DAY(RC[-24])"
'rellenar con esta fórmula hasta el último registro
Range("AS2").AutoFill Destination:=Range("AS2:AS" & x), Type:=xlFillDefault
End Sub

Observa que te dejé 2 tipos de instrucciones. Ambas válidas. Utiliza solo una de las 2.

El resultado de la macro se observará así:

En el video 15 de mi canal trato el tema funciones con VBA. Utilizando 'Formula', 'FormulaR1C1' o el resultado de las mismas.

https://www.youtube.com/watch?v=ZUr-h45bJAw

Sdos!

Gracias matilde por tu valioso aporte, los registros de la columna AS a veces me varian mucho, por ejemplo a veces son 300 registros , otra veces 4000, hay forma de que la macro se adapte a la cantidad de registros que pegue?.

Otra inquietud al extraer el dia por ejemplo 02 me trae 2, por lo tanto utilizaba la formula texto, hay forma de que conserve los dos digitos, cuando trae el cero adelante.

Gracias

Hola Elsa muy valioso tu aporte, acabo de suscribirme a tu canal. Tenia dos preguntas, al extraer el dia por ejemplo 02 me trae 2 y lo necesito con dos digitos; por lo tanto utilizaba la formula texto. Hay forma que me traiga los dos digitos cuando el cero esta adelante.

Otra pregunta, los registros me varian de 300 o 4000, por tanto requiero la macro se adapte a la cantidad de registros que pegue, hay forma de realizar esto?

Disculpa ando un poco nueva y aprendo con ejemplos

Gracias

Seleccioná la col de la fórmula DIA y dale un formato personalizado con 2 ceros.

Y con respecto al límite, se está tomando hasta la última celda con datos en col U, ya que la fórmula toma esa celda en DIA(U2), guardando ese número en la variable x.

'saber cuál es la última celda en U
x = Range("U" & Rows.Count).End(xlUp).Row

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas