Buenas de nuevo,
Necesitaría un código en vb que me ejecute una macro que ya rengo hecha en mi hoja de excel, o sea:
Tengo enn una celda C7, una lista desplegable con los posibles valores 1,2,3 entonces lo que quiero es que cuando selecciono el valor 1 me active mi macro1, cuando seleccione 2 me active mi macro 2 y lo mosmo con el 3.-
Gracias.
Por partes.
Hay tres maneras de poner un desplegable en una celda. La primera es mediante validación de datos.
Si lo has hecho así, lo que tienes que hacer es interceptar el evento Worksheet_Change. Dentro del código, debes comprobar si la celda modificada es la C7, o la que quieras controlar. Y si es así, continuar.
La segunda manera es incrustar un control de formulario. Es la manera más sencilla, pues lo único que tienes que hacer es pulsar sobre él con botón derecho y elegir "Asignar macro". Automáticamente te lleva a la ventana de código y te crea la macro donde debes poner el código que quieres que se ejecute utilizando la selección.
La tercera es incrustando un control ActiveX. En este caso, pincha con botón derecho sobre el control, selecciona "ver código" y te pasa a la ventana de código en el lugar donde debes insertar el código que quieres que se ejecute.
Un saludo
P.D. He releído tu pregunta, y creo que me lie yo solo.
En el lugar donde te he comentado debes poner la orden que ejecute tu macro. Supongamos que se llaman macro1, macro2 y macro3. Sería algo así:
select case cells(7,3).value
case 1
macro1
case 2
macro2
case 3
macro3
case else
exit sub
end select
Buenas de nuevo cron. creo que estoy haciendo algo mal, porque he copiado tu código y lo he pegado en mi modulo de vb para excel, el caso es que cuando desplego mi lista y selecciono bien 1,2 o 3 que son las posibilidades que tengo, no me ejecuta ninguna de mis macros.
Bueno, lo primero es saber cómo has puesto el desplegable. Como te dije, hay tres maneras, y cada una es diferente.
Hola Cron,
la lista que yo trngo hecha es desde datos--validacion de datos--en permitir selecciono lista----y selecciono el rango de mi lista 1,2,3
Entonces lo tienes que poner en
Private Sub Worksheet_Change(ByVal Target As Range)
end Sub
Dentro de la hoja en cuestión.
Ahí pones un código que compruebe si ha cambiado la celda que tú necesitas. Por ejemplo algo así:
If target= range("C7") then
end if
Y dentro de este if-then colocas el código que te puse.
Saludos