URGENTE - Problemas con checkbox

19/03/2007 - 17:06 por Luis | Informe spam
Necesito de ayuda URGENTE por favor!!

He intentado hacer lo siguiente: cada vez que doy click en un check,
si este toma el valor de verdadero que se escriba 1 en cierta celda,
si toma el valor de falso que se escriba 0 en la misma. He tratado con
los siguientes procedimientos pero me sale error. Qué estoy haciendo
mal?? Cómo hago que la variable de ingreso a la función ActivaPersonas
sea un checkbox como tal y no el Valor del mismo????? Es posible
utilizar objetos (checkbox, textbox,etc) como parámetros de
procedimientos??

En el Formulario:

Private Sub chk4_Click()
ActivaPersonas frmEdades.chk4
End Sub

Y en Módulo1:

Sub ActivaPersonas(Chk As CheckBox)

Select Case Chk
Case frmEdades.chk4
If frmEdades.chk4.Value = True Then
Worksheets("Hoja4").Cells(5, 1) = 1
Else
Worksheets("Hoja4").Cells(5, 1) = 0
End If
Case frmEdades.chk9
If frmEdades.chk9.Value = True Then
Worksheets("Hoja4").Cells(6, 1) = 1
Else
Worksheets("Hoja4").Cells(6, 1) = 0
End If
End Select

End Sub

Ahhhh cabe indicar que en realidad son 14 cheks por lo cual se
imaginarán lo extenso del código, he puesto únicamente dos GRACIAS
nuevamente!!

Preguntas similare

Leer las respuestas

#1 Abraham
19/03/2007 - 17:20 | Informe spam
Juraria que ya te respondimos, veo que no te satisfiso ninguna de
nuestras respuestas... :(

http://foros.emagister.com/tema-urg...397785.htm

Abraham
Respuesta Responder a este mensaje
#2 Luis
19/03/2007 - 17:38 | Informe spam
Gracias Abraham por tú ayuda... la verdad buscaba otras opiniones a mi
inquietud principal: "¿Es posible
utilizar objetos (checkbox, textbox,etc) como parámetros de
procedimientos??

Les agradezco nuevamente!!
Respuesta Responder a este mensaje
#3 Héctor Miguel
20/03/2007 - 07:28 | Informe spam
hola, Luis !

Necesito de ayuda URGENTE por favor!!
He intentado hacer lo siguiente: cada vez que doy click en un check, si este toma el valor de verdadero que se escriba 1 en cierta celda
si toma el valor de falso que se escriba 0 en la misma. He tratado con los siguientes procedimientos pero me sale error.
Que estoy haciendo mal?? Como hago que la variable de ingreso a la funcion ActivaPersonas sea un checkbox como tal
y no el Valor del mismo????? Es posible utilizar objetos (checkbox, textbox,etc) como parametros de procedimientos??



1) si el procedimiento 'principal' [ActivaPersonas] se encuentra en un modulo 'estandar/general/normal/...'
-> significa que puede ser llamado desde cualquier otro procedimiento y desde cualquier otro modulo [luego entonces]...
-> necesitarias tambien 'identificar' desde cual modulo/formulario/control/... ha sido 'llamado' este procedimiento 'principal' :D

2) tampoco 'respondiste' a la propuesta del correo 'personal' donde consultabas lo mismo y te hice algunas 'sugerencias' -???-

3) de la 'forma' como estas conduciendo tus pruebas [y por los comentarios del punto 1] te vas a tardar 'un poquitin mas' :))

4) con la funcion 'CallByName' [disponible desde la version xl-2000] podrias identificar los elementos del punto 1...
ademas de que puedes aprovechar la toma de mas informacion desde la coleccion de objetos UserForms de VBA ;)
te paso un ejemplo al final del presente... el 'como' pudieras adaptarlo a tus necesidades 'reales' [probablemente]...
-> dependera de si no te han servido/funcionado/... [o no has intentado] las propuestas a tu correo personal -?-

si cualquier duda [o informacion adicional]... comentas ?
saudos,
hector.

-> para hacer +/- 'facil' la toma de datos de cual modulo/formulario/control/procedimiento/... esta haciendo la llamada...
utilizaremos algunas variables 'publicas' y haremos el modulo 'normal' como privado :))
-> el codigo que tendrias que asignar a cada control va a ser [practicamente] lo mismo para todos ;)

a) en un modulo de codigo 'normal' ...

Option Private Module
Public UF As Object, frmName As String, ctrlName As String, _
ctrlType As String, ctrlValue
Sub Info_de_formulario()
For Each UF In VBA.UserForms
If UF.Name = frmName Then _
ctrlType = TypeName(UF.Controls(ctrlName)): _
ctrlValue = CallByName(UF.Controls(ctrlName), "value", VbGet): _
Exit For
Next
MsgBox "Se ha activado este procedimiento..." & vbCr & _
"desde el formulario: " & frmName & vbCr & _
"el control activo es: " & ctrlName & vbCr & _
"el control es de tipo: " & ctrlType & vbCr & _
"y tiene un valor de: " & ctrlValue
End Sub

b) las instrucciones para cada control en el formulario [p.e. en tus CheckBoxes]...

Private Sub CheckBox1_Click()
frmName = Me.Name
ctrlName = ActiveControl.Name
Info_de_formulario
End Sub

__ el resto de la consulta __
En el Formulario:
Private Sub chk4_Click()
ActivaPersonas frmEdades.chk4
End Sub
Y en Módulo1:
Sub ActivaPersonas(Chk As CheckBox)
Select Case Chk
Case frmEdades.chk4
If frmEdades.chk4.Value = True Then
Worksheets("Hoja4").Cells(5, 1) = 1
Else
Worksheets("Hoja4").Cells(5, 1) = 0
End If
Case frmEdades.chk9
If frmEdades.chk9.Value = True Then
Worksheets("Hoja4").Cells(6, 1) = 1
Else
Worksheets("Hoja4").Cells(6, 1) = 0
End If
End Select
End Sub
Ahhhh cabe indicar que en realidad son 14 cheks por lo cual se imaginarán lo extenso del codigo, he puesto unicamente dos
GRACIAS nuevamente!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida