Busqué las preguntas existentes y encontré preguntas y respuestas similares, pero ninguna que cumpliera con mis requisitos.
Tengo una hoja de cálculo en la que deseo poder hacer clic en los enlaces de una hoja de cálculo para ir a la segunda, colocando el valor de la celda en la que se hizo clic en un campo de la segunda.
Por ejemplo, la primera hoja de la columna A contendrá las unidades IT
, Finance
yNetworks
Hacer clic en cualquiera de estos campos debería llevar al usuario a la segunda hoja llamada "Subunidad" colocando el valor de la celda en A1 donde luego puedo escribir declaraciones if para completar la lista de subunidades, por ejemplo, al hacer clic en se IT
colocaría IT
en la celda A1. y luego a través de las declaraciones if en A3-A5 las harían como
Security, Support, Development
Luego, reutilizaría un código VB similar para que si alguien hace clic en el nombre de una subunidad, lo lleve a una tercera hoja que mostrará los detalles de la subunidad.
Espero que tenga sentido,
Soy muy nuevo en VBA, así que indique dónde debo colocar el código (por ejemplo, en la pestaña, haciendo clic derecho, ver código o en algún lugar diferente).
Respuesta1
En la Hoja 1 presione ALT+F11
para obtener el editor VB. Copie y pegue este código como módulo estándar.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "Range " & Target.Address & " was double clicked"
On Error Resume Next
Dim xRg As Range
Set xRg = Application.Selection
Range("A80").Copy Sheet2.Range("A80")
Application.Goto Worksheets("Sheet2").Range("A80"), True
End Sub
Cómo funciona:
- Escriba algunos datos en Celda
A80
y haga doble clic en la celda. - Aparece el cuadro de Mensaje para confirmar en qué celda se ha hecho clic.
- Presiona
OK
el botón. - Excel mostrará
Copy & Paste
el contenidoA80
y colocará el puntero de la celda en la celdaA80
de la hoja 2.
NÓTESE BIEN
- Ajuste las referencias de celda y el nombre de la hoja en el código según sea necesario.
- Puede consultar Rango de celdas a
Copy & Paste
. - Para hacerlo, edite esta línea,,
Range("A80:A85").Copy Sheet2.Range("A80")