Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA - Vérifier qu'au moins une case est cochée dans une listbox

Remteyss

XLDnaute Junior
Bonjour le forum,

J'ai une macro qui, lorsque je sélectionne un fichier F, ouvre un userform ou apparaît une listbox contenant l'ensemble des titres de mon tableau sous forme de cases à cocher.
Cependant, avant de passer à l'étape suivante, je souhaite que mon code vérifie qu'au moins une case est cochée. J'ai cherché sur pas mal de sites mais n'ai pas trouvé de réponse.
J'utilise une alternative pour le moment :

VB:
Sub maprocedure
    Dim CounterCheckBox As Integer, i As Integer
  
    CounterCheckbox = 0
    With LB_CheckBox
        For i = 0 To .ListCount - 1
            If .Selected(i) = True Then
                CounterCheckbox = CounterCheckbox + 1
            End If
        Next
    End With
    If CounterCheckbox = 0 Then
        MsgBox "Aucune case n'a été cochée."
        Exit Sub
    End If
End Sub

Cela fonctionne comme je le souhaite mais existe-t-il une fonction VBA permettant de simplifier mon code en une ligne ? De la même manière qu'en interrogeant un range que l'on définit avec .Find (If not monrange is nothing then...) par exemple ?

En vous remerciant
 

fanch55

XLDnaute Barbatruc
Bonsoir,
Malheureusement avec une listbox multiselect, votre code ne peut être simplifié .
Si vous tenez vraiment à une fonction d'une ligne, il faut faire votre propre fonction en sortant le bloc with/End With, ce qui ne vous apportera pas grand chose
Peut-être un petit exit For ( voire même dans ce cas un exit sub un peu malpropre je l'avoue) pour ne pas boucler inutilement si vous ne vous vous servez pas vraiment de CounterCheckBox ...
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour Remteyss
Bonjour fanch55 ,le Forum
peut être avec un truc du genre
VB:
MsgBox = IIf(LB_CheckBox.ListIndex = -1, "false", "true")
Edit :
apparemment pas en Multiselect
jean marie
 
Dernière édition:

Remteyss

XLDnaute Junior
Bonjour,

Merci à vous deux pour vos retours.
Je vais donc créer une fonction perso pour gagner en lisibilité.
@fanch55 le CounterCheckBox ne m'était pas très utile mais finalement je l'utilise

Encore merci à vous, je passe le sujet en "Résolu"
Bonne journée !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…