Seleccionar celda mediante condición año en VBA

Y feliz año.

Hice la semana pasada un Excel, en el que integré un condicional en función del año para que, si este coincidía con el actual, me fuera a la celda que correspondiera con el año. Cual es mi sorpresa que ahora descubro que no me funciona, y ya no sé si cuando lo hice todo iba correctamente.

El código que tengo es este. Dudo de si no tengo algún problema con las variables. He probado multitud de opciones, y ninguna da como resultado el que quiero.

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    'Worksheets("Metas").Select
    If Year(Date) = Cells(1, 9) Then
    For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(i, "A") = Date Then
            If Cells(i, "B") = "" Then
            Application.Goto (Cells(i, "A")), True
            Cells(i, "B").Select
            End If
            If Cells(i, "B") <> "" Then
            Application.Goto (Cells(i, "A")), True
            Cells(i, "D").Select
            End If
            If Cells(i, "C") = 1 Then
            Application.Goto (Cells(i, "A")), True
            Cells(i, "E").Select
            End If
            If Cells(i, "C") = 2 Then
            Application.Goto (Cells(i, "A")), True
            Cells(i, "F").Select
            End If
            If Cells(i, "C") = 3 Then
            Application.Goto (Cells(i, "A")), True
            Cells(i, "G").Select
            End If
        End If
    Next
    Else
    Application.Goto Range("A1"), True
    End If
End Sub

¿Me podéis orientar para solucionarlo?

2 Respuestas

Respuesta
1

El archivo, por si lo necesitáis, es este:

Excel

Respuesta
1

Creo que tienes muchos "Select" y muchos "Goto" que, desde mi punto de vista, quizá no sean necesarios pero, yendo al punto/pregunta dos cosas:

- Si guardaste el archivo con la hoja "Objetivos" activa, al abrirlo dará error ya que en el evento "Open" del libro, tus datos están solo como rangos y ordenados de para la hoja "Metas", al no encontrar dichos datos salta un error. Sugiero quitar el apostrofe de la línea:

' Worksheets("Metas").Select

Ese apostrofe convierte en comentario al línea impidiendo seleccionar dicha hoja (aunque, repito, yo prefiero no usar "Select").

Segundo, hoy es el primer día del año (01 de enero) y tu "For" comienza su recorrido en la línea 4 (02 de enero) por lo que nunca encontrará este día.  Cambialo a 3 y listo.

Salu2

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas