Hola,
Tengo una lista desplegable (creada con la opción validación de datos en la celda F5) con una serie de entradas, en concreto, son 7 registros que se pueden seleccionar en la lista, como por ejemplo éstos:
Venta sin financiación
Venta con financiación normal
Venta con financiación especial
Renting sin financiación
Renting con financiación normal
Renting con financiación especial
Mostrar todo
Por otro lado, he creado una macro para cada registro anterior, de manera que me oculte las filas que no aplican. Es decir, por ejemplo, para el registro ‘Venta sin financiación’ de la lista desplegable anterior, he creado la macro 1, la cual, oculta las filas que no aplican; por ejemplo, oculta desde la fila 151 a la 300. Para el registro ‘Venta con financiación’, he creado la macro 2 que oculta las filas que no le corresponden, por ejemplo, desde la fila 108 a la 150 y desde la fila 200 a la 300. Y así, sucesivamente he creado una macro para cada uno de los registros de la lista desplegable.
Las macros funcionan de manera separada pero, para no tener que darle a ejecutar cada vez que quiera ejecutar una de las 7 macros creadas, necesito que cada una de éstas se ejecute cuando se seleccione su registro correspondiente de la lista desplegable; de tal manera que, cuando se seleccione un registro de la lista desplegable, la macro en cuestión se ejecute.
Siguiendo con el ejemplo anterior, si selecciono Venta sin financiación, debería ejecutarse la macro 1, y así con todos los registros de la lista desplegable (es decir, cuando seleccione un registro de la lista, que se ejecute su macro).
No entiendo de programación, y viendo vídeos, he conseguido crear las macros. Pero no sé cómo puedo asignar cada macro a cada registro de la lista desplegable. Sé que hay botones para que se puedan ejecutar las macros, pero necesito que se ejecuten desde la misma lista desplegable.
Por favor, ¿alguien puede ayudarme y decirme qué códigos tengo que poner para que se puedan ejecutar?
He conseguido averiguar cómo hacerlo en Visual Basic, que sería como sigue, pero he pegado esto en LibreOffice, y no me funciona. Supongo que los códigos no serán los mismos.
Por favor, ¿alguien sabe cómo puedo solucionar esto? Muchas gracias.
El código en Visual Basic creo que es así, pero no sé cómo transformar esto en el lenguaje para LibreOffice:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range(“F5”) = “” Then
Else
If Not Intersect(Target, Range(“F5”)) Is Nothing Then
Select Case Range(“F5”)
Case “Mostrar todo”: Mostrar_todo
Case “Venta sin financiación”: Venta_sin_financiacion
Case “Venta con financiación normal”: Venta_con_financiacion_normal
Case “Venta con financiación especial”: Venta_con_financiacion_especial
Case “Renting sin financiación”: Renting_sin_financiacion
Case “Renting con financiación normal”: Renting_con_financiacion_normal
Case “Renting con financiación especial”: Renting_con_financiacion_especial
End Select
End If
End If
End Sub