Diferencias entre SelectionChange y Change
Quisiera que me ayudaran con lo siguiente: En una hoja de excel tengo una serie de celdas programadas en VB para excel de tal manera que si modifico una celda las otras se cambian o bloquean.
Por ejemplo:
Tengo una lista desplegable (De validación de datos) y allí tres letras (A, B y C). Cuando escojo A la idea es que se cambien cosas en la hoja, al igual que B y C.
Pero tengo el siguiente problema:
Cuando escojo A (en la lista desplegable) no se cambia nada HASTA que selecciono otra celda (es decir, me cambia es porque tengo SelectionChange) porque mientras me quede parado siempre en la misma celda (que es donde es la lista) pues las cosas no se van a cambiar.
Ahora si uso Change (Private Sub Worksheet_Change(ByVal Target As Range) se me queda dando loops infinitos porque con el cambio de la celda de la lista, se cambian cosas en la página que a su vez se interpretan como cambios y siguen dando loops infinitamente hasta que se traba el computador.
La solución (Que no se estructurarla pero creo saber cómo es) es de alguna manera que el computador sepa cuándo es por cambio humano el valor de las celdas y cuando por programación para que de esa manera no de loops infinitos.
No se, llevo días en estas !
Por ejemplo:
Tengo una lista desplegable (De validación de datos) y allí tres letras (A, B y C). Cuando escojo A la idea es que se cambien cosas en la hoja, al igual que B y C.
Pero tengo el siguiente problema:
Cuando escojo A (en la lista desplegable) no se cambia nada HASTA que selecciono otra celda (es decir, me cambia es porque tengo SelectionChange) porque mientras me quede parado siempre en la misma celda (que es donde es la lista) pues las cosas no se van a cambiar.
Ahora si uso Change (Private Sub Worksheet_Change(ByVal Target As Range) se me queda dando loops infinitos porque con el cambio de la celda de la lista, se cambian cosas en la página que a su vez se interpretan como cambios y siguen dando loops infinitamente hasta que se traba el computador.
La solución (Que no se estructurarla pero creo saber cómo es) es de alguna manera que el computador sepa cuándo es por cambio humano el valor de las celdas y cuando por programación para que de esa manera no de loops infinitos.
No se, llevo días en estas !
Respuesta de Elsa Matilde
1