Excel Macros : Como dar Valor a un TXTBOX si CHECKBOX es correcto

Buenos días.

Estoy intentando que al marcar un checkbox, este muestre el resultado de un valor en un textbox correspondiente. Me explico :

La idea es que me muestre en cada textbox el valor de "1800" entre la suma de los Checkbox marcados.

Por ahora solo he conseguido que me sume los checkbox, pero como puedo enlazar el textbox con el checkbox.

Hasta ahora este es el codigo que tengo :

Dim chb As MSForms.CheckBox
Dim txb As MSForms.TextBox
Dim obj As Object


On Error Resume Next
For Each obj In Me.Controls
   Set chb = Nothing
   Set chb = obj
      If chb Is Nothing Then GoTo siga1
         If chb.Value = True Then
         MES = MES + 1
         MsgBox ("cnb = " & Cmb.Tag)
     End If
siga1:
Next
MsgBox ("SON : " & MES)

Set obj = Nothing
Set chb = Nothing
Set txb = Nothing

Muchas gracias por anticipado

1 Respuesta

Respuesta
1

Te anexo 3 opciones, cada una depende de cómo tienes nombrados los texbox, utiliza la que más te agrade.

Si entendí bien es, si está marcado el checkbox de la izquierda en el textbox de la derecha debe poner la cantidad de 1800.


Opción 1

Private Sub CommandButton1_Click()
'Por.Dante Amor
    For i = 1 To 12
        If Me.Controls("CheckBox" & i) Then
            Me.Controls("TextBox" & i) = 1800
        Else
            Me.Controls("TextBox" & i) = ""
        End If
    Next
End Sub

Opción 2

Private Sub CommandButton2_Click()
'Por.Dante Amor
    For Each ctrl In Me.Controls
        If TypeName(ctrl) = "CheckBox" Then
            If ctrl Then
                n = Mid(ctrl.Name, 9)
                Me.Controls("TextBox" & n) = 1800
            Else
                n = Mid(ctrl.Name, 9)
                Me.Controls("TextBox" & n) = ""
            End If
        End If
    Next
End Sub

Opción 3

Private Sub CommandButton3_Click()
'Por.Dante Amor
    If CheckBox1 Then TextBox1 = 1800 Else TextBox1 = ""
    If CheckBox2 Then TextBox2 = 1800 Else TextBox2 = ""
    If CheckBox3 Then TextBox3 = 1800 Else TextBox3 = ""
    If CheckBox4 Then TextBox4 = 1800 Else TextBox4 = ""
    If CheckBox5 Then TextBox5 = 1800 Else TextBox5 = ""
    If CheckBox6 Then TextBox6 = 1800 Else TextBox6 = ""
    If CheckBox7 Then TextBox7 = 1800 Else TextBox7 = ""
    If CheckBox8 Then TextBox8 = 1800 Else TextBox8 = ""
    If CheckBox9 Then TextBox9 = 1800 Else TextBox9 = ""
    If CheckBox10 Then TextBox10 = 1800 Else TextBox10 = ""
    If CheckBox11 Then TextBox11 = 1800 Else TextBox11 = ""
    If CheckBox12 Then TextBox12 = 1800 Else TextBox12 = ""
End Sub

Te anexo mi archivo para que veas el funcionamiento.

click en el siguiente enlace: Archivo

https://www.dropbox.com/s/rzu0360jco45las/compendio%20check%20text.xlsm?dl=0 


Avísame si tienes alguna duda.

Saludos. Dante Amor

Recuerda valorar la respuesta

Muchas gracias... se me había ocurrido el primer ejemplo, pero en el if le había puesto un =true.

Otra vez, muchas gracias. Tanto por una solución tan eficaz como rápida. ;P

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas