OVH Cloud OVH Cloud

Choix dans une listbox

14 réponses
Avatar
Christophe B.
Bonjour,

Voilà. J'ai une listbox où les entrées ont été placées avec la commande
additem. Dans toutes ces entrées, j'en ai une qui est "Tous" (exemple, pour
des mois, jan, fev... et tous). Comment faire lorsque je clique sur "tous"
pour déselectionner les autres (pour que "tous "soit le seul élément
sélectionné)?

Merci!

Christophe.B

10 réponses

1 2
Avatar
AV
Comment faire lorsque je clique sur "tous"
pour déselectionner les autres (pour que "tous "soit le seul élément
sélectionné)?


Vérifier la propriété Multiselect de la ListBox (si celle-ci est issue de la
boite Controle)
La mettre à 0

AV

Avatar
Christophe B.
Je me suis mal exprimé.... :)
Je veux pouvoir:

- Sélectionner plusieurs éléments (janv ET fev ET mars etc...)
OU
- Sélectionner l'élément 'tous'
dans une listbox du type

tous
jan
fev
mar
avr
mai
juin
juil
.
.
.

"AV" wrote:

Comment faire lorsque je clique sur "tous"
pour déselectionner les autres (pour que "tous "soit le seul élément
sélectionné)?


Vérifier la propriété Multiselect de la ListBox (si celle-ci est issue de la
boite Controle)
La mettre à 0

AV






Avatar
AV
Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV
Avatar
Christophe B.
Elle est dans une userform. et j'ai set le multiselect à 2

"AV" wrote:

Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV





Avatar
MichDenis
Bonjour Christophe,

Essaie ceci :

'------------------------
Private Sub CommandButton1_Click()
Dim t as integer, s as integer, a as integer
With Me.ListBox1
t = .ListCount - 1
s = Application.WorksheetFunction.Match("Tous", .List, 1) - 1
If .Selected(s) Then
For a = 0 To t
If a <> s Then
.Selected(a) = False
End If
Next
End If
End With

End Sub
'------------------------


Salutations!



"Christophe B." a écrit dans le message de news:

Elle est dans une userform. et j'ai set le multiselect à 2

"AV" wrote:

Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV





Avatar
Christophe B.
J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......

"MichDenis" wrote:

Bonjour Christophe,

Essaie ceci :

'------------------------
Private Sub CommandButton1_Click()
Dim t as integer, s as integer, a as integer
With Me.ListBox1
t = .ListCount - 1
s = Application.WorksheetFunction.Match("Tous", .List, 1) - 1
If .Selected(s) Then
For a = 0 To t
If a <> s Then
.Selected(a) = False
End If
Next
End If
End With

End Sub
'------------------------


Salutations!



"Christophe B." a écrit dans le message de news:

Elle est dans une userform. et j'ai set le multiselect à 2

"AV" wrote:

Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV










Avatar
MichDenis
Bonjour Christophe,

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......


Effectivement, si "Tous" ne fait pas parti de la liste de ton LisBox, La fonction "Match()" ne trouve pas et renvoie une
erreur. Comme la variable S est défini comme étant une variable de type Integer, il y a un "type mismatch"

Dans la procédure, je n'avais pas mis de gestion d'erreur, car je suppose que "Tous" fait vraiment parti de ta listbox.
Tu dois respecter la casse en ce qui concerne "Tous" (écrit de la même façon)

Utilise plutôt cette ligne : Seul le 1 est modifié pour le 0
s = Application.WorksheetFunction.Match("Tous", .List, 0) - 1


Salutations!




"Christophe B." a écrit dans le message de news:

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......

"MichDenis" wrote:

Bonjour Christophe,

Essaie ceci :

'------------------------
Private Sub CommandButton1_Click()
Dim t as integer, s as integer, a as integer
With Me.ListBox1
t = .ListCount - 1
s = Application.WorksheetFunction.Match("Tous", .List, 1) - 1
If .Selected(s) Then
For a = 0 To t
If a <> s Then
.Selected(a) = False
End If
Next
End If
End With

End Sub
'------------------------


Salutations!



"Christophe B." a écrit dans le message de news:

Elle est dans une userform. et j'ai set le multiselect à 2

"AV" wrote:

Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV










Avatar
Christophe B.
Toujours pareil...

Tant pis, je m'en passerai!

Encore merci :)

Christophe.B

"MichDenis" wrote:

Bonjour Christophe,

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......


Effectivement, si "Tous" ne fait pas parti de la liste de ton LisBox, La fonction "Match()" ne trouve pas et renvoie une
erreur. Comme la variable S est défini comme étant une variable de type Integer, il y a un "type mismatch"

Dans la procédure, je n'avais pas mis de gestion d'erreur, car je suppose que "Tous" fait vraiment parti de ta listbox.
Tu dois respecter la casse en ce qui concerne "Tous" (écrit de la même façon)

Utilise plutôt cette ligne : Seul le 1 est modifié pour le 0
s = Application.WorksheetFunction.Match("Tous", .List, 0) - 1


Salutations!




"Christophe B." a écrit dans le message de news:

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......

"MichDenis" wrote:

Bonjour Christophe,

Essaie ceci :

'------------------------
Private Sub CommandButton1_Click()
Dim t as integer, s as integer, a as integer
With Me.ListBox1
t = .ListCount - 1
s = Application.WorksheetFunction.Match("Tous", .List, 1) - 1
If .Selected(s) Then
For a = 0 To t
If a <> s Then
.Selected(a) = False
End If
Next
End If
End With

End Sub
'------------------------


Salutations!



"Christophe B." a écrit dans le message de news:

Elle est dans une userform. et j'ai set le multiselect à 2

"AV" wrote:

Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV















Avatar
MichDenis
Tu as un fichier exemple là : http://cjoint.com/?cqpunxDE8D


Salutations!


"Christophe B." a écrit dans le message de news:

Toujours pareil...

Tant pis, je m'en passerai!

Encore merci :)

Christophe.B

"MichDenis" wrote:

Bonjour Christophe,

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......


Effectivement, si "Tous" ne fait pas parti de la liste de ton LisBox, La fonction "Match()" ne trouve pas et renvoie
une
erreur. Comme la variable S est défini comme étant une variable de type Integer, il y a un "type mismatch"

Dans la procédure, je n'avais pas mis de gestion d'erreur, car je suppose que "Tous" fait vraiment parti de ta
listbox.
Tu dois respecter la casse en ce qui concerne "Tous" (écrit de la même façon)

Utilise plutôt cette ligne : Seul le 1 est modifié pour le 0
s = Application.WorksheetFunction.Match("Tous", .List, 0) - 1


Salutations!




"Christophe B." a écrit dans le message de news:

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......

"MichDenis" wrote:

Bonjour Christophe,

Essaie ceci :

'------------------------
Private Sub CommandButton1_Click()
Dim t as integer, s as integer, a as integer
With Me.ListBox1
t = .ListCount - 1
s = Application.WorksheetFunction.Match("Tous", .List, 1) - 1
If .Selected(s) Then
For a = 0 To t
If a <> s Then
.Selected(a) = False
End If
Next
End If
End With

End Sub
'------------------------


Salutations!



"Christophe B." a écrit dans le message de news:

Elle est dans une userform. et j'ai set le multiselect à 2

"AV" wrote:

Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV















Avatar
Christophe B.
J'ai encore le même pb... Je me demande si ca ne vient pas du fait que mes
entrées soient placées dans la listbox avec la fonction ".additem"...


"MichDenis" wrote:

Tu as un fichier exemple là : http://cjoint.com/?cqpunxDE8D


Salutations!


"Christophe B." a écrit dans le message de news:

Toujours pareil...

Tant pis, je m'en passerai!

Encore merci :)

Christophe.B

"MichDenis" wrote:

Bonjour Christophe,

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......


Effectivement, si "Tous" ne fait pas parti de la liste de ton LisBox, La fonction "Match()" ne trouve pas et renvoie
une
erreur. Comme la variable S est défini comme étant une variable de type Integer, il y a un "type mismatch"

Dans la procédure, je n'avais pas mis de gestion d'erreur, car je suppose que "Tous" fait vraiment parti de ta
listbox.
Tu dois respecter la casse en ce qui concerne "Tous" (écrit de la même façon)

Utilise plutôt cette ligne : Seul le 1 est modifié pour le 0
s = Application.WorksheetFunction.Match("Tous", .List, 0) - 1


Salutations!




"Christophe B." a écrit dans le message de news:

J'ai un "type mismatch" à la ligne application.worksheetfunction.match.......

"MichDenis" wrote:

Bonjour Christophe,

Essaie ceci :

'------------------------
Private Sub CommandButton1_Click()
Dim t as integer, s as integer, a as integer
With Me.ListBox1
t = .ListCount - 1
s = Application.WorksheetFunction.Match("Tous", .List, 1) - 1
If .Selected(s) Then
For a = 0 To t
If a <> s Then
.Selected(a) = False
End If
Next
End If
End With

End Sub
'------------------------


Salutations!



"Christophe B." a écrit dans le message de news:

Elle est dans une userform. et j'ai set le multiselect à 2

"AV" wrote:

Ta listbox est issue de quelle barre d'outils ?
Sur la feuille ? Ailleurs ?

AV




















1 2