Probleme booleen

Bonjour le forum,

Meilleurs voeux à tous,

Voilà je vien de faire un petit userform, avec une listbox a choix multiple, avec en option une CheckBox qui me permet de tout selectionner.

Mais j'ai un petit conflit, si je coche la CheckBox la valeur de ListBox1.ListIndex= -1 et mon message d'erreur " Selectionner au moin un nom" apparait systématiquement, sans prendre en compte que tout les items de la listbox sont bien cochés

Private Cocher As Boolean
Private Sub UserForm_Initialize()
ListBox1.List() = [Liste_nom].Resize(, 3).Value
ListBox1.ListIndex = -1
End Sub
Private Sub CheckBox1_Click()
Static Cocher As Boolean
Cocher = Not Cocher
For i = ListBox1.ListCount - 1 To 0 Step -1
ListBox1.Selected(i) = Cocher
Next i
End Sub
Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer, i As Integer, j As Integer, x As Integer
Application.ScreenUpdating = False
b = TextBox1.Value
i = Sheets.Count
If Sheets.Count = 3 Then Sheets(3).Delete

Sheets("Modèle").Copy After:=Sheets(2)
    If ListBox1.ListIndex > -1 Or Cocher = True Then
        With Me.ListBox1
            For j = 0 To .ListCount - 1
                If .Selected(j) = True Then
                    With Sheets(3)
                    [Nom].Value = ListBox1.List(j, 1)
                    [Prenom].Value = ListBox1.List(j, 2)
                    Unload Me
                    For a = 1 To b
                    Sheets(3).PrintOut Preview:=True
                    Next a
                    End With
                End If
            Next j
        End With
        Else
    MsgBox ("Selectionner au moin un nom")
    End If
Sheets(3).Delete
Application.ScreenUpdating = True
End Sub

j'ai essayer de déclarer le fait que ma checkbox soit cocher en booleen mais la valeur reste toujours false

Je vous laisse mon fichier et mon code, si vous avez une piste,

Bonsoir Edlede

Tu déclares à 2 endroits la variable "Cocher".

Supprime la déclaration dans la procédure "CheckBox1_Click", ça devrait aller mieux:

Private Sub CheckBox1_Click()
'Static Cocher As Boolean
Cocher = Not Cocher
For i = ListBox1.ListCount - 1 To 0 Step -1
ListBox1.Selected(i) = Cocher
Next i
End Sub

Bonjour,

A tester

Private Sub CheckBox1_Click()
'Static Cocher As Boolean
'Cocher = Not Cocher
For i = ListBox1.ListCount - 1 To 0 Step -1
ListBox1.Selected(i) = True 'Cocher
Next i
End Sub

Cordialement

Bonsoir merci à vous deux pour votre réponse si rapide effectivement c'est une erreur de débutant je n'ai pas besoin a priori de le déclaré dans ma Sub je teste cela dans la soirée merci

Merci, j'aurai jamais pensée que mon problème viendrait de là!

ddetp88 je garde la solution de GVIALLES pour cette astucieuse idée qui permet de cochet et decochet l'ensemble de la liste

j'ai vraiment des trous dans mon apprentissage vb encore merci, je prend du plomb dans l'aile grâce à vous.

Bonne Soirée

Rechercher des sujets similaires à "probleme booleen"