Macro seleccionar columna aleatoria según fecha

Estoy trabado con algo que probablemente para uds sea muy sencillo.

Estoy haciendo una macro que me seleccione columnas determinadas de una planilla.

Una de esas columnas debe ser la que tenga como titulo la fecha que yo le indique en una celda.

El problema que tengo es que cuando me manejo con fechas, en vba no me reconoce el formato (creo) y no me encuentra el dato a partir del cual tiene que selencionar la columna.

Miren:

Sub Seleccionar_columnas()

Dim strSearch As String
Dim aCell As Range

ult = Range("C5000").End(xlUp).Row

strSearch = Format(Sheets("PY").Range("E2").Value, "dd/mm/yyyy")

Set aCell = Rows(3).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)

Range("C3").Select

Union(Range(Cells(3, 3), Cells(ult, 3)), _
Range(Cells(3, aCell. Column), Cells(ult, aCell. Column))).Select

End Sub

La macro funciona si pongo un dato sencillo como "aqui" pero al poner 01/10/2014 no lo encuentra.

Espero puedan ayudarme.

Gracias.

Sds.

Esteban

Respuesta
2

En mi versión 2007 corre bien, pero el tema de las fechas tiene que ver con la Configuración Regional de Windows.

Por lo tanto si no te la reconoce con ese formato, lo hará con este otro:

strSearch = Format(Sheets("Hoja1"). Range("C1").Value, "mm/dd/yyyy")

Tus datos no cambian, solo el formato que VBA reconocerá para las fechas.

Probalo y me comentás.

Gracias Elsa por la pronta respuesta, pero lamentablemente sigue sin reconocerme el dato como fecha...

Me da bronca porque de este modo la planilla me quedaría perfecta. Puedo hacer que busque otro dato como "xxx" pero si fuese la fecha seria genial.

Gracias nuevamente

Primero definí la variable como fecha ya que tus datos seguramente tienen formato fecha:

Dim strSearch As Date

Y ahora probá con tu instrucción original. Sinó con los mm/dd invertidos.

Sdos!

¡Gracias! Funcionó!!!

Qué 'Bueno' que te sirvió mi respuesta ;(

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas