¿Cómo hago para que al seleccionar una opción de un cuadro de Excel vaya a la hoja del mismo nombre?

Hola, como puedo hacer para que cuando selecciono en el cuadro combinado una opción, se vaya a la hoja con el mismo nombre..
Gracias

1 respuesta

Respuesta
1
Me pregunto qué tipo de cuadro combinado utilizas.
Podría ser un control activeX, también conocido como Combobox o la versión más simple y práctica que es utilizar una lista desplegable en celda que se crea con la opción Datos |
Validación (opción: Lista)
Asumí que usaste esta última opción, que te permite dejar en la misma celda el valor elegido.
En realidad, lo complicado es detectar que seleccionaste otra opción de la lista desplegable. Si hubieras usado el otro método, habría que modificar el código para que lea la celda que contiene el nombre de hoja.
El único evento capaz de detectar tal cambio es el cálculo de la hoja (Worksheet_Calculate) para lo cual es necesario que exista por lo menos una celda con fórmulas en la hoja. Si así no fuera, coloca una cualquiera. Por ejemplo: =B5
Precisamente, supondré que en esa celda (B5) estará tu lista desplegable y, por tanto, el nombre que indica la hoja donde deberá ir.
De todos modos encontrarás una variable al principio de la macro que te permitirá cambiar la dirección a la celda donde realmente tengas la selección de lista.
Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y busca
la hoja donde quieres que esto ocurra (donde harás la selección de datos). Da doble click sobre ella.
Copia el código siguiente y pégalo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Worksheet_Calculate()
Static NumAnt
'José, cambia el contenido de esta variable, por la celda donde tiene la lista de validación:
Selcell = "B5"
'------------- gracias.
With ActiveCell
If .Address(False, False) = Selcell Then
If .Value <> NumAnt Then
NumAnt = .Value
On Error Resume Next
Set SheetEx = ActiveWorkbook.Sheets(NumAnt)
If Err <> 0 Then
MsgBox "La hoja " & NumAnt & Chr(10) & "NO existe en este libro " & Chr(10) & "Creala y luego podras seleccionarla", vbInformation, "HOJA INEXISTENTE"
Exit Sub
Else
On Error GoTo 0
SheetEx.Select
End If
Set SheetEx = Nothing
End If
End If
End With
End Sub
Cierra el Editor y graba el archivo.
Cada vez que la hoja se recalcule, esta macro controla que la celda indicada esté seleccionada y comparará su valor actual con uno que guarda en memoria. Con esto, sabrá si hubo un cambio en la selección. Luego hará un control adicional de existencia de tal hoja para evitar un posible error en tiempo de ejecución. Si existe te llevará a ella. Caso contrario te mostrará un mensaje.
Espero que esto ayude a resolver tu problema. Si así fuera, agradeceré un comentario y que la finalices.
(Recuerda que mantener cierto número de respuestas pendientes impide que otros usuarios puedan consultarme)
En caso contrario, puedes preguntarme nuevamente
aclarando qué entendí mal o qué faltó.
He notado que estoy inhabilitado para recibir preguntas, probablemente porque tenga muchas preguntas sin finalizar.
Por favor, no te ofendas, pero entre ellas, está ésta, la tuya que contesté el mismo día que la planteaste... ¿Serías tan amable de finalizarla para que otros puedan consultarme?
Me proeguntaba si esta respuesta te fue útil.
Un abrazo!
Fernando
Suele suceder que este sitio, falla en avisar a los usuarios que su pregunta ya obtuvo respuesta.
Lo cierto es que esta pregunta pendiente, junto a la de muchos otros usuarios más, impide que me hagan más preguntas por haber llegado a un límite.
Estimo que mi respuesta debería haber resuelto tu problema. Por ello, te pido que finalices esta pregunta (con algún comentario y revisando la puntuación asignar) o, eventualmente, me vuelvas a preguntar si te hubiese quedado alguna duda.
Cordialemente
Fernando
Otros usuarios no pueden consultarme porque tengo muchas preguntas sin finalizar.
¿Podrías evaluar la solución que te dí y cerrar esa pregunta?
Ídem
Insisto en que es necesario, por respeto a otros usuarios, que finalices esta pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas