Problème de msgBox

chanu

XLDnaute Junior
Bonjour le forum,
J'ai un petit soucis d'écriture dans une listbox et je n'ai pas trouvé de sujet similaire.
Voici mon code :
If lstChantier.ListIndex = -1 Then
MsgBox ("Veuillez sélectionner un chantier au minimum")
Exit Sub ' pour sortir de la macro
ElseIf lstVille.ListIndex = -1 Then
MsgBox ("Veuillez sélectionner un chantier au minimum")
Exit Sub ' pour sortir de la macro
ElseIf lstBat.ListIndex = -1 Then
MsgBox ("Veuillez sélectionner un chantier au minimum")
Exit Sub ' pour sortir de la macro
Else: Call Filtre_Chantiers
End If

Ce code est activé par un bouton de commande.
Voilà mon souci c'est que le msgBox ne s'affiche que pour la lstChantier et je voudrais qu'il s'affiche également pour les deux autres.

Je suis sûr que ça vient du ElseIf, mais je ne vois pas quoi mettre, désolé pour cette demande aussi nul. ;:)(
 

kjin

XLDnaute Barbatruc
Re : Problème de msgBox

Bonjour,
Code:
If lstChantier.ListIndex = -1 Then
MsgBox ("Veuillez sélectionner un chantier au minimum")
Exit Sub ' pour sortir de la macro
End If
If lstVille.ListIndex = -1 Then
MsgBox ("Veuillez sélectionner une ville au minimum")
Exit Sub ' pour sortir de la macro
end if
If lstBat.ListIndex = -1 Then
MsgBox ("Veuillez sélectionner un Bat au minimum")
Exit Sub ' pour sortir de la macro
End If
Filtre_Chantiers
A+
kjin
 

chanu

XLDnaute Junior
Re : Problème de msgBox

Bonjour kjin,
j'ai essayé ta solution j'arrive au même résultat qu'avec mon code, en fait ce que je voudrais c'est que si je sélectionne rien sur ces trois listes le msgbox apparaisse sinon mon filtre appelé ici Filtre_Chantiers
 
C

Compte Supprimé 979

Guest
Re : Problème de msgBox

Bonjour Chanu, Kajin,

Peut-être comme ça ;)
Code:
If lstChantier.ListIndex = -1 and lstVille.ListIndex = -1  and lstBat.ListIndex = -1 Then
MsgBox ("Veuillez sélectionner : un chantier, une ville ou un Bat au minimum")
Exit Sub ' pour sortir de la macro
End If
Filtre_Chantiers

A+
 

kjin

XLDnaute Barbatruc
Re : Problème de msgBox

re,
il faut dans ce cas boucler sur tes listbox'es) pour vérifier qu'au moins un item est sélectionné dans l'une d'elles (si j'ai pigé cette fois !)
Code:
'...
Dim ctl As Control
flag = False
For Each ctl In Me.Controls
    If TypeName(ctl) = "ListBox" Then
        If ctl.Value <> "" Then
        flag = True
        Exit For
        End If
    End If
Next
If flag = False Then MsgBox "blabla"
'...
A+
kjin
 

kjin

XLDnaute Barbatruc
Re : Problème de msgBox

Re,
Si j'ai bien compris (?!?), tu souhaites afficher un message si dans les 3 listbox aucun item n'est sélectionné, donc qu'au moins un item soit sélectionner dans au moins une listbox pour éviter le message !
Si c'est ça, c'est ce que fait la macro; sinon je ne sais pas et sans fichier...
A+
kjin
 

Pièces jointes

  • Chanu.xls
    23.5 KB · Affichages: 43
  • Chanu.xls
    23.5 KB · Affichages: 49
  • Chanu.xls
    23.5 KB · Affichages: 46

chanu

XLDnaute Junior
Re : Problème de msgBox

Bonjour,
après plusieurs essais j'ai trouvé ce qui cloche, ton code est bon sauf que dans mon cas j'ai des multisélections dans code.
Et du coup je n'arrive pas à adapter ton code
 

Pièces jointes

  • Chanu(1).xls
    45 KB · Affichages: 46

kjin

XLDnaute Barbatruc
Re : Problème de msgBox

Bonjour,
Dans ce cas pas d'autre solution à mon sens que de boucler sur tous les items des listbox
Code:
Private Sub CommandButton1_Click()
Dim ctl As Control
Flag = False
For Each ctl In Me.Controls
    If TypeName(ctl) = "ListBox" Then
        For i = 0 To ctl.ListCount - 1
            If ctl.Selected(i) = True Then
                Flag = True
                Exit For
            End If
        Next
    End If
Next
If Flag = False Then MsgBox "blabla"
End Sub
A+
kjin
 

chanu

XLDnaute Junior
Re : Problème de msgBox

Je te remercie j'ai utilisé ce code :
Code:
        Dim ctl As Control
        Flag = False
        For Each ctl In Me.Controls
            If TypeName(ctl) = "ListBox" Then
                For i = 0 To lstChantier.ListIndex
                    If lstChantier.Selected(i) = True Then
                        Flag = True
                        Exit For
                    End If
                Next
            End If
        Next
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz