¿Como hacer macro para que excel abra una hoja en la primera fila X donde en la columna Y no ponga "ok"?

Se trata de abrir el archivo excel y que directamente nos lleve a la primera fila donde en una cierta columna (igual para todas las filas) no ponga "ok"

Muchas gracias

1 respuesta

Respuesta
1

Debes incorporar esta macro en el objeto ThisWorkbook, que tienes en el explorador de proyectos, a la izquierda en el editor de VisualBasic. Es una macro que se ejecutará al abrir el libro.

Private Sub Workbook_Open()
Dim hoja As Worksheet
For Each hoja In ThisWorkbook.Sheets
    If LCase(hoja.Cells(1, "A")) <> "ok" Then
        hoja.Activate
        Exit For
    End If
Next
End Sub

Y se abrirá directamente en la primera hoja cuya celda A1 sea distinta de OK

Para que se otra la celda donde pone

Cells(1, "A")

Pones la fila y columna correspondiente.

Y eso es todo, espero que te sirva y lo hayas entendido. Si no es así, pregúntame, y si yha está bien, no olvides puntuar.

Hola Valero,
El algoritmo no me funciona....tenia buena pinta.
Vuelvo a explicar lo que necesito por si no ha quedado claro...(lo siento)

Tengo una lista de tareas (muy larga) cuando se terminan en una columna de la tabla pongo ok (directamente sin usar ="ok"). Como la lista es tan larga quiero que cuando se abra el excel se abra seleccionando la primera casilla Ax done la casilla Yx no exista el ok.
Gracias

Por cierto aprovechando que veo que eres un experto en el tema. 
Hay solución para la otra pregunta que tengo sin respuesta.
Muchas gracias!

Además (a pesar de haberlo intentando sin éxito en un archivo nuevo para comprobar si el fallo provenía de ahí) quiero combinar en el "ThisWorbook" este algoritmo para cerrar excel después de un tiempo determinado. En otras palabras: la combinación del algorimto que estamos tratando en esta conversación y el que expongo a continuación.
Saludos!

Private Sub Workbook_Open()
'Por.DAM
    Application.OnTime Now + TimeValue("00:00:05"), "cerrar"
End Sub

Ahora no puedo contestar tengo cosas que atender. ¿Pero entonces dices que es una sola hoja y quieres que al abrir se seleccione una celda de esa hoja?

Es que yo entendi que era un libro con muchas hojas y en determinada casilla ponías un ok y querías abrir la primera hoja que no tuviera ok. Como ves son cosas muy distintas.

Nada más que termine lo que tengo que hacer dentro de alguna hora me pongo con lo tuyo.

Pues la táctica es la misma, debes insertar esta macro en en el objeto ThisWorkbook del editor de VisualBasic. Incluyo la otra macro que dices, supongo que funcionará bien

Private Sub Workbook_Open()
'ValeroASM
Dim i As Integer
i = 1
While LCase(Cells(i, "Y")) = "ok"
    i = i + 1
Wend
Cells(i, "A").Select
'Por.DAM
Application.OnTime Now + TimeValue("00:00:05"), "cerrar"
End Sub

Y eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas