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

4 réponses

1 2
Avatar
MichDenis
Le mot "TOUS" doit être ÉCRIT DE LA MÊME FAÇON partout dans tes procédures.


Salutations!



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

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




















Avatar
Christophe B.
Justement, j'ai vérifié... Ca ne vient pas de là... :(

"MichDenis" wrote:

Le mot "TOUS" doit être ÉCRIT DE LA MÊME FAÇON partout dans tes procédures.


Salutations!



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

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

























Avatar
MichDenis
Je ne peux plus rien faire pour toi ! à part d'un autre fichier exemple !!! Tu ne as déjà un.


Salutations!


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

Justement, j'ai vérifié... Ca ne vient pas de là... :(

"MichDenis" wrote:

Le mot "TOUS" doit être ÉCRIT DE LA MÊME FAÇON partout dans tes procédures.


Salutations!



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

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

























Avatar
Christophe B.
C'est déjà bien gentil d'avoir tant essayé!!!!

Thanks a lot!!! :))

"MichDenis" wrote:

Je ne peux plus rien faire pour toi ! à part d'un autre fichier exemple !!! Tu ne as déjà un.


Salutations!


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

Justement, j'ai vérifié... Ca ne vient pas de là... :(

"MichDenis" wrote:

Le mot "TOUS" doit être ÉCRIT DE LA MÊME FAÇON partout dans tes procédures.


Salutations!



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

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