VBA INSTRUCCIONES IF ANIDADAS |
Responder |
Autor | |
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3849 |
Tema: VBA INSTRUCCIONES IF ANIDADAS Enviado: 07/Mayo/2020 a las 22:34 |
Pues algo similar a
Range("A3").Formula = "=IF($A$2=""España"",""Ole"", ""Buuuuuuu"")" Ten en cuenta que desde VBA se funciona en inglés, por lo que tanto el comando (if en lugar de si) como los separadores (coma en lugar de punto y coma) deben ir de acuerdo a la configuración en inglés Un saludo.
|
|
El Búho es un pajarraco
|
|
Fran2k
Nuevo Unido: 06/Mayo/2020 Localización: España Estado: Sin conexión Puntos: 0 |
Enviado: 07/Mayo/2020 a las 13:55 |
Buenos días,
Gracias por tu ayuda. Y si cuando cambie el valor de la celda A2, en vez de borrarme la celda A3 quiero que me la recalcule siendo el contenido de A3 una fórmula+lista desplegable del tipo =SI($A$2="España";"ole";$C$1:$C$5), ¿qué debo poner? |
|
Fran
|
|
Jordi-Albert
Colaborador Unido: 06/Abril/2006 Localización: Alemania Estado: Sin conexión Puntos: 4323 |
Enviado: 07/Mayo/2020 a las 05:34 |
Si el error es como dice Luis, añadd
Application.enableEvents =False Al inicio de la función y Application.EnableEvents = True al final |
|
Nota: Jordi-Albert es, todo él, un nombre. Mi nombre
|
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3849 |
Enviado: 07/Mayo/2020 a las 01:00 |
Buenas
Asi a ojo lo que tienes es: Si cambia un dato en la hoja ejecuta esta funcion, donde se cambia un dato en la hoka... por lo cual se ejecuta la funcion, que cambia un dato en la hoja, por lo que se ejecuta la funcion.... y asi hasta saturar la memoria,de ahi el error que te da. En otras palabras, en cuanto haces un cambio en la hoja generas un bucle infinito que satura la memoria. Prueba algo asi If Target.Value = Range("A1").Value And Range("A2").Value <> "" Then Range("A2").Value = "" End If If Target.Value = Range("A2").Value And Range("A3").Value <> "" Then Range("A3").Value = "" End If Con eso que he hecho evitas cambiar lo que ya esta cambiado, por lo que no se llama otra vez la funcion Por ciert, tienes que comparar siempre value, como te he annadido Un saludo. Luis
|
|
El Búho es un pajarraco
|
|
Fran2k
Nuevo Unido: 06/Mayo/2020 Localización: España Estado: Sin conexión Puntos: 0 |
Enviado: 06/Mayo/2020 a las 15:04 |
Buenos días a todos,
Necesito hacer un Excel con funciones en VBA y no tengo mucha experiencia… a ver si alguien me puede echar un cable. Os pongo en situación resumiendo al máximo: tengo tres celdas A1, A2 y A3, todas ellas son celdas con listas desplegables. Los valores de la lista desplegable de A2 dependen del valor que haya elegido en A1. Del mismo modo, los valores de la lista desplegable de A3 dependen del valor que haya elegido en A2. Además, necesito que al cambiar el valor seleccionado en la celda A1 me borre el dato seleccionado en las celdas A2 y A3. Hasta aquí lo he conseguido hacer. Ahora bien, también quiero que al cambiar el valor seleccionado en la celda A2 me borre el dato seleccionado en la celda A3, y esto no soy capaz de conseguirlo. He puesto la secuencia de comandos siguiente: Private Sub Worksheet_Change(ByVal Target As Range) If Target = Range("A1") Then Range("A2").Value = "" End If If Target = Range("A2") Then Range("A3").Value = "" End If End Sub Y me da el siguiente error: “Se ha producido el error “28” en tiempo de ejecución: Espacio de pila insuficiente.” ¿alguien sabe cómo solucionarlo y me puede echar una mano?. Muchas gracias. Un saludo. Editado por Fran2k - 06/Mayo/2020 a las 15:09 |
|
Fran
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |