effectuer un test de conditions sur une listbox

  • Initiateur de la discussion Initiateur de la discussion daniel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

daniel

Guest
Bonsoir à tous (et toutes) les pros du forum...

Je réclame votre aide, une fois encore... Voilà : dans une listbox, j'ai plusieurs entrées (ex : terme 1, terme 2, terme 3). Je voudrais effectuer une action SI la liste contient le terme 2. En langage "humain" ça donnerait : "si la liste contient le terme 2, alors effectuer telle action".

Comment puis-je m'y prendre ?

Merci de votre aide et passez une bonne soirée

Daniel
 
Merci de ton aide,

hélas, ce n'est pas ça mon problème...En effet, je cherche à effectuer une action si un terme est présent dans une listbox, pas une combo box (déroulante).

Mais merci quand même d'avoir pris le temps de me répondre et de bien m'avoir fait rire avec tes commentaires dans le code VBA lol

Daniel
 
Bonjour Daniel, Peper-Eliot, le Forum


Essaie ceci :

Un UserForm, une ListBox1, un CommandButton1, une feuille avec Toto1 à Toto10 de A1 à A10...

Option Explicit
Option Compare Text

Private Sub UserForm_Initialize()
Dim MyArray
MyArray = Sheets(1).Range("A1:A10")
Me.ListBox1.List = MyArray '<<< C'est pour remplir la listBox, mais elle pourrait être remplie par additem ou autre...
End Sub

Private Sub CommandButton1_Click()
Dim i As Byte
Dim TaVar As String

TaVar = "Toto4"

For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.List(i, 0) = TaVar Then
Action
Exit For
End If
Next
End Sub

Sub Action()
MsgBox "Ceci est l'action"
End Sub


Bonne Journée
@+Thierry
 
ca marche !

Vraiment, un grand merci Thierry !

J'ai encore plein de choses à régler dans mon code, mais ça m'enlève une épine du pied... J'ai regardé ton code, et je dois bien avouer que je n'y aurais pas pensé tout seul...Mais bon, j'apprends, j'apprends...

Encore merci pour ton aide

Daniel
 
Bonjour le forum
Bonjour Thierry

Je viens de tester ton code et bing tout comme pour insérer une photo dans un USF ça ne fonctionne pas. Le MSGBOX s'affiche à chaque sélection que ce soit Toto4 ou n'importe lequel saisi ? Détiens tu la solution miracle.
@ ++ Eric C
 
Bonjour Eric, Daniel, Peper-Eliot, le Forum

Pour Eric,
Je n'avais pas vu ta question et je m'en excuse, vraiment beaucoup de boulot prioritaire et pas trop de temps pour le Forum.

Par contre si j'avais vu cette question, je t'aurais immédiatement répondu, "Eric, s'il te plait, relis la question de Daniel"...

Hors le code que tu tentes d'utiliser est strictement fait pour répondre à cette question. Il retournera la macro "Action" si "Toto4" est bien incrémenté et contenu dans la ListBox1 et rien d'autre ! D'ailleurs Daniel a été très satisfait de cette solution.

Pour que celà puisse se faire Sur un Test sur la Séléction il faudrait si prendre comme ceci : A noter que ce code serait surtout valable pour une ListBox MultiSelect

Option Explicit
Option Compare Text

Private Sub UserForm_Initialize()
Dim MyArray
MyArray = Sheets(1).Range("A1:A10")
With Me.ListBox1
.List = MyArray '<<< C'est pour remplir la listBox, mais elle pourrait être remplie par additem ou autre...
.MultiSelect = fmMultiSelectMulti
End With
End Sub

Private Sub CommandButton1_Click()
Dim i As Byte
Dim TaVar As String

TaVar = "Toto4"

For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then
If Me.ListBox1.List(i, 0) = TaVar Then
Action
Exit For
End If
End If
Next
End Sub

Sub Action()
MsgBox "Ceci est l'action"
End Sub

Donc voilà, si tu fais ceci, Eric, tu devrais avoir le code qu'il te faut, mais je vais faire une petite remarque, car finalement parfois en essayant d'adapter coûte que coûte quelque chose d'existant inventé pour un besoin bien précis on finit par dire "çà ne fonctionne pas" et pire !!! on finit par passer à coté de la solution toute simple (car j'ai dans ma petite idée que tu travailles en ListBox Simple Sélection) et il n'y a aucun miracle là dedans

Option Explicit
Option Compare Text

Private Sub UserForm_Initialize()
Dim MyArray
MyArray = Sheets(1).Range("A1:A10")
Me.ListBox1.List = MyArray '<<< C'est pour remplir la listBox, mais elle pourrait être remplie par additem ou autre...
End Sub

Private Sub CommandButton1_Click()
Dim i As Byte
Dim TaVar As String

TaVar = "Toto4"

If Me.ListBox1.ListIndex = -1 Then Exit Sub
If Me.ListBox1 = TaVar Then Action
End Sub

Sub Action()
MsgBox "Ceci est l'action"
End Sub

Et pour le "Bing" Photo dans l'USF je ne sais pas de quoi tu parles, pourrais-tu mettre le lien ?

Bon Lundi de Repos à tous et Toutes
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour