Desplegable como ventana emergente en excel

Me gustaría saber si hay manera de que en cualquier celda pinche con el botón derecho o pulse alguna tecla y me salga un desplegable o una ventana aparte con varias opciones y que al pinchar alguna de ellas ese dato se coloque en la celda donde había pinchado

1 respuesta

Respuesta
1

Creo que podrás hacerlo con "Validación de datos"

Esta función pone un deplegable en la propia celda tal que así:

Además tiene bastantes opciones interesantes, como lanzar un mensaje de error si el usuario intenta introducir un valor que no es válido.

Si no la has utilizado nunca en este video explican bastante bien como funciona:

Cómo utilizar la validación de datos con excel

Es de una versión vieja de excel pero sigue funcionando igual.

Si necesitas algo más complejo o si tienes algún problema implementando avísame.

Lo primero gracias por responder, eso se hacerlo lo que pasa que tengo en una hoja unos 500 desplegables que en realidad tienen los mismos datos y me ha ralentizado muchísimo la hoja tanto que casi no se puede trabajar con ella, por eso mi idea era si de alguna manera cada vez que necesite colocar un dato de ese desplegable en cualquier celda hay alguna manera que me salga en plan ventana emergente o alguna otra manera para no tener que estar buscando el dato que necesito en otra hoja

Puedes utilizar un formulario con un combobox, que viene siendo lo mismo pero en una ventana emergente.

Para crear el formulario es muy fácil, abres el editor de vba, y haces botón derecho "insertar formulario"

Luego eliges en el cuadro de herramientas el combobox ( cuadro combinado ) y lo dibujas sobre el formulario

Debería quedarte con este aspecto:

Ahora deberás crear:

  1. Una macro que abra el userform
  2. Una macro que cargue los valores del desplegable
  3. Por ultimo una que escriba sobre tu celda

La macro para abrirlo es super sencilla:

Sub AbrirFormulario()
UserForm1.Show
End Sub

La macro para cargar valores, te copio una que encontré en exceltotal, te dejo también el enlace donde explican en detalle como cargar catos en un combobox

Ojo, esta macro la debes crear en el propio formulario, para abrir el código del formulario haces clic derecho y "ver codigo"

Private Sub UserForm_Initialize()
Dim rango, celda As Range
Set rango = Worksheets("Ejemplo1").Range("A1:A7")
For Each celda In rango
    ComboBox1.AddItem celda.Value
Next celda
End Sub

El enlace -->  ExcelTotal: Cargar datos en un combo box

Por último puedes crear una macro para escribir en la celda activa el valor que hayas elegido en el combobox, por ejemplo una forma sería que se escriba automáticamente en cuanto lo hayas seleccionado.

Para esto vas de nuevo al userform, click derecho y esta vez eliges "ver objeto"

Luego clic derecho en el combobox y "ver código"

Y ahí en el código del combo box introduces el código:

Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1.Value
UserForm1.Hide
End Sub

Pruebalo a ver que tal te funciona, en teoría debería consumir menos recursos que la validación de datos.

Cualquier duda comentamos.

Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas