UserForm, selection de mots clés via listbox!

Provence Vintage

XLDnaute Occasionnel
Bonjour le Forum,

Je suis en train de monter un UserForm avec 5 ListBox;
La première me permet de choisir une valeur, qui conditionnera les 4 autres listes, les choix sont reportés dans des cellules!

Deux possibilitées de recherche liste1 ou liste2, je ne sais pas laquelle permet d'écrire le plus facilement le code!

Pouvez vous me filer un coup de main pour écrire le code de la première ListBox, conditionnant les autres, et celui de la deuxième (conditionné par la 1)
Ci-joint ex fichier xl!

Merci à tous
 

Pièces jointes

  • chercherdansliste.xls
    33 KB · Affichages: 259
Dernière édition:

EricD01

XLDnaute Junior
Re : UserForm, selection de mots clés via listbox!

Salut...

J'ai fait le fichier çi-dessous qui remplit, dans une UserForm, la Listbox2 en fonction d'un choix effectué dans une Listbox 1...

Mais pour la suite ré explique moi parce que je n'ai pas très bien compris...

@ plus...
 

Pièces jointes

  • chercherdansliste.zip
    16 KB · Affichages: 140

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : UserForm, selection de mots clés via listbox!

Bonjour,

Code:
Private Sub UserForm_Initialize()
  Me.ListBox1.List = Application.Transpose(Range("choix1"))
End Sub

Private Sub ListBox1_Click()
  choix = Me.ListBox1.ListIndex
  Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
End Sub



JB
http://boisgontierjacques.free.fr
 

Pièces jointes

  • chercherdansliste(1).xls
    44.5 KB · Affichages: 212

Provence Vintage

XLDnaute Occasionnel
Re : UserForm, selection de mots clés via listbox!

Bonjour BOISGONTIER, EricD01, le Fil

Super, j'avance...
Je vous renvoi le fichier,
je cherche à faire encore:
1) Enregistrer mes sélections (click) de mes listbox dans les cellules appropriées de la feuille "Activitéidentité"
2) Pouvoir créer via un textbox, en fonction de la sélection d'un domaine d'activité, un nouveau mot clé, et l'enregistré dans la colonne appopriée de la la liste
3) un bouton sortie ou valider, pour faire + propre!
Merci pour le coup de main
 

Pièces jointes

  • chercherdansliste resultatforum.zip
    17.9 KB · Affichages: 78
  • chercherdansliste resultatforum.zip
    17.9 KB · Affichages: 88
  • chercherdansliste resultatforum.zip
    17.9 KB · Affichages: 93

Provence Vintage

XLDnaute Occasionnel
Re : UserForm, selection de mots clés via listbox!

Le Fil, j'ai éssayé ça, mais ça ne marche pas du tout...


Private Sub ListBox1_Click()
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Sheets("Activitéidentité").Range ("I8")
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Sheets("Activitéidentité").Range("I10").Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Sheets("Activitéidentité").Range("I12").Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Sheets("Activitéidentité").Range("I14").Value
End Sub
 

EricD01

XLDnaute Junior
Re : UserForm, selection de mots clés via listbox!

Salut à toi...

J'ai fait en sorte que chaque choix sélectionné dans tes différentes zones de liste remplissent les cellules appropriées dans la feuille activitéidentité...

J'attends que tu m'expliques pour le reste...

J'attends aussi avec impatience la version on ne peut plus instructive pour moi de BOISGONTIER...

@ plus...
 

Pièces jointes

  • chercherdansliste resultatforum.zip
    17.3 KB · Affichages: 119
  • chercherdansliste resultatforum.zip
    17.3 KB · Affichages: 115
  • chercherdansliste resultatforum.zip
    17.3 KB · Affichages: 116

Provence Vintage

XLDnaute Occasionnel
Re : UserForm, selection de mots clés via listbox!

Salut Eric D01, le fil,

Le but est:
consulter dans un domaine d'activité, les mots clés et les sélectionner, pour ensuite les enregistrer dans une base de données; ça est ok!
Par contre, à la consultation, si le mot clé recherché n'a pas encore été crée;
pouvoir l'enregistrer dans les listes, en fonction d'un domaine d'activité sélectionner:
Je crois donc qu'il faut que je rajoute une listBox et un textbox!
Merci
 

Provence Vintage

XLDnaute Occasionnel
Re : UserForm, selection de mots clés via listbox!

Salut le fil,

je l'ai recopié dans mon fichier global excel, mais là pour le coup rien ne se passe!!!!
l'usf s'affiche, mais rien de plus!
pouvez-vous me venir en aide!
Voici le code:
Option Explicit
Private Declare Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub CommandButton1_Click()

Sheets("DomaineActivité").Select

Range("B2").FormulaR1C1 = ListBox1.List(ListBox1.ListIndex)
Range("B3").FormulaR1C1 = ListBox3.List(ListBox3.ListIndex)
Range("B4").FormulaR1C1 = ListBox5.List(ListBox5.ListIndex)
Range("B5").FormulaR1C1 = ListBox2.List(ListBox2.ListIndex)
Range("B6").FormulaR1C1 = ListBox4.List(ListBox4.ListIndex)


Me.Hide
End Sub



Private Sub UserForm_Activate()

ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear

ListBox1.ListIndex = -1
End Sub

Private Sub NouvelleFiche1_Initialize()

Me.ListBox1.List = Application.Transpose(Range("choix1"))

End Sub

Private Sub ListBox1_Click()
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value

End Sub
 

Provence Vintage

XLDnaute Occasionnel
Re : UserForm, selection de mots clés via listbox!

ledzepfred, le Fil,

sur l'image tu vois:
Ma listbox1 qui est la variable: choix d'un domaine d'activité;

de là dépendent les 4 autres listbox qui vont chercher en fonction de la première les valeurs dans les colonnes:C,D,E,F,G,H

Le hic c que quand je clic sur la ListBox1, sur une des valeurs, les autres listbox m'affichent bien les valeurs que je souhaite trouver, mais celà se répercute également dans la listbox1!
je me suis planté dans le code, mais où!!!?
 

Pièces jointes

  • listbox.zip
    35.8 KB · Affichages: 133
  • listbox.zip
    35.8 KB · Affichages: 126
  • listbox.zip
    35.8 KB · Affichages: 132

skoobi

XLDnaute Barbatruc
Re : UserForm, selection de mots clés via listbox!

Bonsoir le fil,

je me suis planté dans le code, mais où!!!?
ici pour "Case 0" (à enlever) et faire de même pour tout les "Case":

Code:
Case 0
        ListBox2.Clear
        ListBox3.Clear
        ListBox4.Clear
        ListBox5.Clear
        Range("C2").Activate
          Do While ActiveCell <> ""
[COLOR=Red][B]'            ListBox1.AddItem ActiveCell.Value[/B][/COLOR]
ActiveCell.Offset(1, 0).Activate
choix = Me.ListBox1.ListIndex
  Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
  Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
  Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
  Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
  
          Loop

Bon WE à vous.
 

EricD01

XLDnaute Junior
Re : UserForm, selection de mots clés via listbox!

Salut à toi...

Ta listbox1 se remplissait parceque ça lui était demandé dans la macro...je te joins la macro et je t'ai mis en gras les lignes en trop...

Private Sub ListBox1_Click()

Sheets("Liste1").Select

Select Case ListBox1.ListIndex

Case 0
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
Range("C2").Activate
Do While ActiveCell <> ""
ListBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value

Loop


Case 1
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
Range("D2").Activate
Do While ActiveCell <> ""
ListBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Loop


Case 2
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
Range("E2").Activate
Do While ActiveCell <> ""
ListBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Loop

Case 3
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
Range("F2").Activate
Do While ActiveCell <> ""
ListBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Loop



Case 4
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
Range("G2").Activate
Do While ActiveCell <> ""
ListBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Loop



Case 5
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
Range("H2").Activate
Do While ActiveCell <> ""
ListBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
choix = Me.ListBox1.ListIndex
Me.ListBox2.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox3.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox4.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Me.ListBox5.List = [choix2].Offset(, choix).Resize(Application.CountA([choix2].Offset(, choix))).Value
Loop



End Select

End Sub

Par la boucle DO...LOOP et de par la ligne en gras cela avait pour effet de remplir ta listbox1 autant de fois qu'il était trouvé d'éléments dans les différentes colonnes de ta feuille: liste1


Bye et à plus...
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
423

Statistiques des forums

Discussions
312 508
Messages
2 089 136
Membres
104 043
dernier inscrit
SpideyCodeWarrior