Macro para buscar fechas en formato día/mes/año

Tengo una pequeña macro con la cual lo que quiero es buscar una fecha en la columna A y que me indique en que fila esta. La fecha puede variar según lo que se le coloque en cierta celda, pero al buscar dicha fecha la macro me arroja un error.

Su fechas ()
Sheets("Datos").Select
fecha=cells(1,1)
Sheets("Costo").Select
Cells.Find(What:="24/12/2016", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End Sub

Las fechas que se encuentran en la columna A para este caso son estas:

21/12/2016
22/12/2016
23/12/2016
24/12/2016
25/12/2016
26/12/2016
27/12/2016
28/12/2016
29/12/2016
30/12/2016
31/12/2016
1/01/2017
2/01/2017
3/01/2017
4/01/2017
5/01/2017
6/01/2017
7/01/2017
8/01/2017
9/01/2017

Pero al buscar por ejemplo 24/12/2016 la macro me arroja un error.

1 Respuesta

Respuesta
1

Intenta de este modo:

Cells.Find(What:=Cdate("24/12/2016"), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False). Activate

Ahora, tu macro, en las primeras líneas guarda una fecha en una variable. Suponiendo que allí tenés la fecha que necesitas buscar intenta entonces de este modo:

Sub fechas()
Sheets("Datos").Select
fecha = Cells(1, 1)
Sheets("Costos").Select
Cells.Find(What:=fecha, After:=ActiveCell, LookIn:=xlFormulas, _

Y por último, es aconsejable utilizar la siguiente estructura al realizar una búsqueda, ya que te permite controlar y decidir qué hacer en caso de error:

Sheets("Costos").Select
Set busco = Cells.Find(What:=CDate("24/12/2016"), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not busco Is Nothing Then
    'lo que debe ejecutarse al encontrar el registro
    busco.Select
Else
    MsgBox "No se encuentra la fecha en hoja Costos"
End If

Probalo y no olvides regresar aquí a valorar la respuesta (opciones: excelente o buena)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas