Private Sub Worksheet_Change(ByVal Target As Range)

Me podrían ayudar a utilizar este código o alguno similar

1 Respuesta

Respuesta
1

¿Q quieres hacer en ese evento?

Pasa lo siguiente:

Tengo un combobox con una cierta lista de datos. Lo que deseo es que a la hora de seleccionar un dato del combobox una macro se ejecute automáticamente. Sin embargo he navegado por varios foros y la respuesta es la misma es usando la función mencionada en la pregunta.

Cuando utilizo esta función mi excel no me permite correrla ni tan siquiera probarla usando F8. Cuando la ingreso en la hoja del visual y intento correrla suena un click como de error.

Por eso preguntaba si es algún error en mi excel o es es que algún parámetro que no lo reconoce.

Uso microsoft 2010.

También he leído que que el problema puede venir por la seguridad de los macros en opciones, pero sin embargo yo ejecuto macros sin ningún problema.

Habría que diferenciar si el combobox que utilizas es un control activex o no. Si es activex deberías de utilizar el evento change pero del propio combobox. Si el combobox esta insertado como un control de formulario, este debe estar vinculado a una celda y entonces si tendrías que usar worksheet_change.

Debes usar un punto de interrupción en el evento y luego f8 para ir probando linea a linea.

Hola Experto,

Gracias por tu pronto respuesta.

Mira estaba usando un un control Activex pero no me funciona.

De verdad me sirviria cualquiera siempre y cuando funcione.

Tambien he usado el form controls, pero con este caso la celda link cell me le asigna numeros y yo lo tengo es texto.

No quiero usar los userform por que se me vuelve un poco complicado.

Que puedo hacer en este caso

Experto,

Si tuvieras un correo donde te la pueda enviar. Tal vez la podrías ver y darme una ayuda.

Usar un control active x es la mejor opción.

[email protected]

Puedes enviarme ahi tu libro con la consulta.

He revisado tu libro, veo que has utilizado el Combobox1_Change

Esta correcto, para verificar el código paso a paso primero debes poner un punto de interrupción en Combobox1_Change (sino sabes que es un punto de interrupción usa la ayuda, pues es algo muy útil), y una vez se interrumpe el código en ese punto ya puedes utilizar el F8 para ir paso a paso por el código.

Borra el código de Combobox1_Change de Thisworkbook, pues ese código debes estar solamente en la hoja donde se encuentra el combobox, yo uso excel 2007 y no me da error, pero tal vez en 2010 si te de error, el caso es que verifico tu código paso a paso y todo se ejecuta correctamente, no me da ningún error.

Por otro lado, y es un fallo tremendo, utilizas la instrucción:

application.screenupdating = false, que impide que aparezcan los cambios en la hoja, pero si una vez ejecutado el código no vuelves a establecer:

application.screenupdating = true

No veras los cambios en la pantalla, y excel tendrá un funcionamiento errático y extraño.

Tal vez tu problema este ahí, vuelve a establecer screenupdating en true, en la ventana Inmediato o en tu código y ejecutalo, si utilizas screenupdating = false al principio de un evento, OBLIGATORIAMENTE deberás utilizar screenupdating = true al final de ese evento.

Cuando me envíes un libro, también avisame en la pregunta, para que vuelva a estar activa, sino no se a que pregunta se corresponde el libro, pues atiendo varias consultas a la vez.

Muchas gracias por lo del screenupdating true.

Ya pase la programación a la hoja donde esta el combobox. Lo había puesto en el "This woorkbook" intentando solucionar el problema.

Vieras que es muy extraño, el error que me ha dado es que en la primera selección la macro corre perfecta, pero cuando selecciono un segundo elemento del combobox y empieza a correr la macro, en un punto la macro se detiene con error, revisando lo que veo es que la macro que el llama hace referencia a otra hoja diferente llamada validations, pero la macro no pasa a esta hoja.

He intentado varias opciones como lo puedes ver en el libro donde a "Países" al final de la programación la nombro como "Países = 0" intentando que al comenzar de nuevo no guarde ningún valor pero no me funciona.

Pero si asignas un 0 a países ya le estas asignando un valor, pon:

Países = ""

Ya lo hice y de igual manera la macro se pega en el segundo intento es decir al seleccionar otro elemento del combobox, entonces lo que hago es detenerla y volverla a correr entonces si funciona, pero donde vuelvo a seleccionar se vuelve a pegar, si vas viendo el paso a paso hay un punto donde el private sub no me termina la macro y se devuelve al principio del private sub.

Enviame otra vez el libro tal cual lo tienes ahora y te lo compruebo, que parece un fallo sencillo de arreglar

Ya te la envié.

Muchas gracias por tu apoyo.

Ya te lo he enviado de nuevo, cuando lo compruebes puntúa y cierra la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas