Buscar por VBA una fecha y situar el cursos allí

Estoy buscando la manera de hacer lo siguiente:

Tengo en la columna A un listado de fechas, desde el 1 de noviembre hasta el 31 del mismo mes. Quiero que, al abrir el archivo Excel, o al activar la hoja (esto da igual porque el código es el mismo), busque la celda que coincide con la fecha actual y sitúe el cursor en la celda de la misma fila pero una celda a la derecha.

El código para situar el cursor ya lo tengo sacado, pero no doy con lo de buscar.

2 Respuestas

Respuesta
1

Diego: No soy un experto en Excel, aunque de tanto en tanto miro algunas cosas.

Creo que si miras éste enlace, te puede solucionar tu problema.

https://www.gerencie.com/desplazar-celda-activa-hacia-la-derecha.html 

Un saludo >> Jacinto

Sí, eso lo tengo hecho. Lo que no doy es con lo de buscar que he explicado. Muchas gracias de todas formas.

Diego: Mira éste otro enlace que creo te ayudará.

http://www.excel-avanzado.com/11907/como-buscar-un-valor-en-un-rango-de-celdas-en-vba.html 

En la parte de abajo he visto que adjuntan un Ejemplo. Un saludo >> Jacinto

Respuesta
1

Pon el siguiente código en los eventos de tu libro

Private Sub Workbook_Open()
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    Set b = h.Columns("A").Find(Date, lookat:=xlWhole)
    If Not b Is Nothing Then
        h.Select
        b.Offset(0, 1).Select
    End If
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Hola, Dante. Muchas gracias.

Me da error un error 424 al integrarlo en lo que tenía para la hoja. Este es el código:

Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Application.Goto Range("A1"), True
    Set b = h.Columns("A").Find(Date, lookat:=xlWhole)
    If Not b Is Nothing Then
    b.Offset(0, 1).Select
    End If
End Sub

Creo que el fallo ha venido al quitar lo de la hoja.

Por otra parte, este es el código que tengo para cuando abro el Excel, ¿cómo lo puedo integrar aquí?

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Worksheets("Tomando menta poleo").Activate
    Application.Goto Range("A1"), True
    Range("B" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Select
End Sub

Así quedaría para la hoja

Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    'Application.Goto Range("A1"), True
    Set b = Columns("A").Find(Date, lookat:=xlWhole)
    If Not b Is Nothing Then
        b.Offset(0, 1).Select
    End If
End Sub

Integrado en  los eventos de tu libro:

Private Sub Workbook_Open()
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Worksheets("Tomando menta poleo").Activate
    Application.Goto Range("A1"), True
    Range("B" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Select
    '
    Set h = Sheets("Hoja1")
    Set b = h.Columns("A").Find(Date, lookat:=xlWhole)
    If Not b Is Nothing Then
        h.Select
        b.Offset(0, 1).Select
    End If
End Sub

Solamente cambia "Hoja1" por el nombre de tu hoja donde quieres que busque la fecha

Sal u dos

No puedo descartar que no busque la fecha, pero no va a la celda inmediatamente a la derecha donde está la fecha que coincide con la fecha actual.

No entendí lo que escribiste.

Cuál macro no te funciona. Probé ambas macros tal y como te las puse y me funcionan.

¿Cuál macro quieres que te corrija?

Te parece si nos enfocamos en la macro cuando se activa la hoja.

Prueba con esta macro, no modifiques la macro, porque no sé qué cambios le haces y no podremos avanzar.

Private Sub Worksheet_Activate()
    Set b = Columns("A").Find(Date, lookat:=xlWhole)
    If Not b Is Nothing Then
        b.Offset(0, 1).Select
    End If
End Sub

En la columna A tienes fechas o textos o fórmulas?

Cambia el formato de las celdas a Fecha

Vuelve a probar

Aquí está el archivo para que veas lo que tengo hecho

https://www.dropbox.com/s/jbjm9nd74lfll0d/Dante.xlsm?dl=0 

No puedo descargar el archivo

Pero no me has dicho, con cuál macro tienes problemas. ¿Ya realizaste mis recomendaciones?

Envíame un correo y me adjuntas el archivo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “zelarra errona

A ver, ahí tienes las dos macros que te he mencionado antes. Sí que he cambiado a formato fecha los encabezados, pero sigue sin funcionar.

¿Me enviaste le archivo por correo?

Sí, ya te lo he enviado. Gracias.

Van las nuevas macros

Private Sub Workbook_Open()
'Por.Dante Amor
    '
    Worksheets("Tomando menta poleo").Activate
    For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(i, "A") = Date Then
            Cells(i, "B").Select
        End If
    Next
End Sub


Private Sub Worksheet_Activate()
    For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(i, "A") = Date Then
            Cells(i, "B").Select
        End If
    Next
End Sub

sal u dos

Perfecto. Sencillísimo. Muchas gracias. Funciona a la perfección. Ya te he votado. Una lástima que no se pueda poner más nota. De doce. Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas