Macro - Valor de propiedad no válido
Publicado por Juancho (9 intervenciones) el 05/11/2010 20:07:13
Buenas a Todos,
Tengo un mensaje de error y no he encontrado aún qué lo produce, espero puedan ayudarme a resolver este error. Estoy trabajando con Excel 2007.
Tengo un formulario con 8 comboBox, cada uno de ellos utiliza el evento onchange para abrir un segundo formulario utilizado para completar algunos datos adicionales, cada uno de los 8 comboBox abre el mismo formulario al seleccionar la opción "Eres Cliente", y si en ese segundo formulario oprimo el botón Cancelar (tengo definidos 8 botones también), este formulario se cierra y se regresa al primer formulario, y dependiendo del comboBox que haya disparado el evento on change, a ese comboBox se le cambia el valor a "Seleccione...", esto se hace en el evento onclick del botón Cancelar del segundo formulario y se hace correctamente, el tema es que si yo selecciono cualquier otro campo dentro del primer formulario después de haberse ejecutado lo anterior con cualquier comboBox y su correspondiente botón Cancelar, lo que pasa es que me sale un mensaje de error que dice "Valor de propiedad no válido". no sé por qué sale ese mensaje si en ningún momento el código que tengo genera errores, a continuación coloco el código:
La variable "Activeform" la utilizo para saber cual es el formulario activo, esto con el fin de saber si se deben ejecutar o no las líneas de código del evento onChange, el código de dicho evento se ejecuta si dicha variable tiene el nombre del Formulario 1. Esta variable toma su valor al activarse cada formulario y el valor que toma es el nombre del formulario que se activa.
Formulario 1
Cuando se abre el formulario se cargan las opciones en cada comboBox.
En este formulario, la variable ActiveForm toma el siguiente valor "frmClientes"
Private Sub cmbRESPUESTA_1_Change()
If ActiveForm = "frmClientes" Then
If cmbRESPUESTA_CLIENTE_1.Text = "Eres cliente" Then
frmDATOS_CLIENTE.cmdCancelar1.Visible = True
frmDATOS_CLIENTE.Show
End If
End If
End Sub
.
.
.
Private Sub cmbRESPUESTA_8_Change()
If ActiveForm = "frmClientes" Then
If cmbRESPUESTA_CLIENTE_8.Text = "Eres cliente" Then
frmDATOS_CLIENTE.cmdCancelar8.Visible = True
frmDATOS_CLIENTE.Show
End If
End If
End Sub
Formulario 2
Este formulario es modal. Acá tengo definidos 8 botones porque no sé cómo hacer para referirme dinámicamente a cada uno de ellos dentro una misma función, pór tanto lo que hago en el formulario anterior es mostrar el botón indicado por el combo que cambia mediante el uso de un textbox.
En este formulario, la variable ActiveForm toma el siguiente valor "frmDATOS_CLIENTE"
impidiendo que el código del evento onChange se ejecute
Private Sub cmdCancelar1_Click()
frmClientes.cmbRESPUESTA_CLIENTE_1.Text = "Seleccione..."
frmDATOS_CLIENTE.cmdCancelar1.Visible = False
ActiveForm = "frmClientes" 'Acá le asigno el valor porque el Formulario 1 ya se esta
'mostrando, no se descarga ni se oculta
Unload frmDATOS_CLIENTE
End Sub
.
.
.
Private Sub cmdCancelar8_Click()
ActiveForm = "frmDATOS_CLIENTE"
frmClientes.txtOmitir.Text = 8
frmClientes.cmbRESPUESTA_CLIENTE_8.Text = "Seleccione..."
frmDATOS_CLIENTE.cmdCancelar8.Visible = False
ActiveForm = "frmClientes" 'Acá le asigno el valor porque el Formulario 1 ya se esta
'mostrando, no se descarga ni se oculta
Unload frmDATOS_CLIENTE
End Sub
Tengo un mensaje de error y no he encontrado aún qué lo produce, espero puedan ayudarme a resolver este error. Estoy trabajando con Excel 2007.
Tengo un formulario con 8 comboBox, cada uno de ellos utiliza el evento onchange para abrir un segundo formulario utilizado para completar algunos datos adicionales, cada uno de los 8 comboBox abre el mismo formulario al seleccionar la opción "Eres Cliente", y si en ese segundo formulario oprimo el botón Cancelar (tengo definidos 8 botones también), este formulario se cierra y se regresa al primer formulario, y dependiendo del comboBox que haya disparado el evento on change, a ese comboBox se le cambia el valor a "Seleccione...", esto se hace en el evento onclick del botón Cancelar del segundo formulario y se hace correctamente, el tema es que si yo selecciono cualquier otro campo dentro del primer formulario después de haberse ejecutado lo anterior con cualquier comboBox y su correspondiente botón Cancelar, lo que pasa es que me sale un mensaje de error que dice "Valor de propiedad no válido". no sé por qué sale ese mensaje si en ningún momento el código que tengo genera errores, a continuación coloco el código:
La variable "Activeform" la utilizo para saber cual es el formulario activo, esto con el fin de saber si se deben ejecutar o no las líneas de código del evento onChange, el código de dicho evento se ejecuta si dicha variable tiene el nombre del Formulario 1. Esta variable toma su valor al activarse cada formulario y el valor que toma es el nombre del formulario que se activa.
Formulario 1
Cuando se abre el formulario se cargan las opciones en cada comboBox.
En este formulario, la variable ActiveForm toma el siguiente valor "frmClientes"
Private Sub cmbRESPUESTA_1_Change()
If ActiveForm = "frmClientes" Then
If cmbRESPUESTA_CLIENTE_1.Text = "Eres cliente" Then
frmDATOS_CLIENTE.cmdCancelar1.Visible = True
frmDATOS_CLIENTE.Show
End If
End If
End Sub
.
.
.
Private Sub cmbRESPUESTA_8_Change()
If ActiveForm = "frmClientes" Then
If cmbRESPUESTA_CLIENTE_8.Text = "Eres cliente" Then
frmDATOS_CLIENTE.cmdCancelar8.Visible = True
frmDATOS_CLIENTE.Show
End If
End If
End Sub
Formulario 2
Este formulario es modal. Acá tengo definidos 8 botones porque no sé cómo hacer para referirme dinámicamente a cada uno de ellos dentro una misma función, pór tanto lo que hago en el formulario anterior es mostrar el botón indicado por el combo que cambia mediante el uso de un textbox.
En este formulario, la variable ActiveForm toma el siguiente valor "frmDATOS_CLIENTE"
impidiendo que el código del evento onChange se ejecute
Private Sub cmdCancelar1_Click()
frmClientes.cmbRESPUESTA_CLIENTE_1.Text = "Seleccione..."
frmDATOS_CLIENTE.cmdCancelar1.Visible = False
ActiveForm = "frmClientes" 'Acá le asigno el valor porque el Formulario 1 ya se esta
'mostrando, no se descarga ni se oculta
Unload frmDATOS_CLIENTE
End Sub
.
.
.
Private Sub cmdCancelar8_Click()
ActiveForm = "frmDATOS_CLIENTE"
frmClientes.txtOmitir.Text = 8
frmClientes.cmbRESPUESTA_CLIENTE_8.Text = "Seleccione..."
frmDATOS_CLIENTE.cmdCancelar8.Visible = False
ActiveForm = "frmClientes" 'Acá le asigno el valor porque el Formulario 1 ya se esta
'mostrando, no se descarga ni se oculta
Unload frmDATOS_CLIENTE
End Sub
Valora esta pregunta


0