effectuer un test de conditions sur une listbox

  • Initiateur de la discussion daniel
  • Date de début
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
 
P

peper-eliot

Guest
Bonjour le forum,

Salut daniel

Allez, un petit fichier d'exemple vraiment bête, mais qui m'a bien fait rire...

Mais bon, il parait que c'est agréable d'apprendre en riant... alors

@+ peper-eliot
 

Pièces jointes

  • ComboBox-toute-bete.zip
    12.3 KB · Affichages: 25
D

daniel

Guest
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
 
@

@+Thierry

Guest
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
 
D

daniel

Guest
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
 
E

Eric C

Guest
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
 
@

@+Thierry

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
312 789
Messages
2 092 121
Membres
105 222
dernier inscrit
Pujeth_72