Macro para hacer un Userform con checkbox varios

Usuarios de todoexpertos,, de antemano gracias por las respuestas que han compartido, he aprendido mucho con el código que han subido ahora tengo un nuevo problema que espero me puedan ayudar de nuevo.

Tengo un user form con 59 Checkbox, ya esta todo programado y funciona muy bien, el problema surgió cuando agregue el checkbox "TODOS", la idea es que cuando seleccone este me marque todos los 56 checkbox pero que no tome en cuenta el checkboxtodos, checkboxvideo, checkboxadjunto estos dos últimos si son necesarios yo los escojo, les pongo el código que tengo que no me funciona.

Private Sub CheckBoxtodos_Click()
Dim chbt As CheckBox
If Me.CheckBoxtodos.Value = True Then
    For Each chbt In CorreoXdepa
        If chbt <> Me.CheckBoxAAD Then
            If chbt <> Me.CheckBoxlkvideo Then
                If chbt <> Me.CheckBoxtodos Then
                    chbt.Value = True
                End If
            End If
        End If
    Next chbt
Else
    For Each chbt In CorreoXdepa
        If chbt <> Me.CheckBoxAAD Then
            If chbt <> Me.CheckBoxlkvideo Then
                If chbt <> Me.CheckBoxtodos Then
                    chbt.Value = False
                End If
            End If
        End If
    Next chbt
End If
End Sub

1 Respuesta

Respuesta
1

Te anexo el código.

Nota: Los nombres de los checkbox "checkboxtodos", "checkboxvideo", "checkboxadjunto", los puse en minúsculas, ya que también estoy poniendo en minúsculas el nombre: LCase(ctrl. Name), de esa forma puede coincidir el nombre. Es decir, no importa como lo tengas en tu formulario, la macro lo revisa.

Private Sub CheckBoxtodos_Click()
'Por.Dante Amor
    For Each ctrl In Controls
        If TypeName(ctrl) = "CheckBox" Then
            Select Case LCase(ctrl.Name)
                Case "checkboxtodos", "checkboxvideo", "checkboxadjunto"
                Case Else: ctrl.Value = CheckBoxtodos.Value
            End Select
        End If
    Next
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
La pregunta no admite más respuestas

Más respuestas relacionadas