Affichez la liste lieé au bonton d'option dans une ListBox

ARNAUD ZIRIPE

XLDnaute Occasionnel
Bonjour à Tous
Je me tourne vers vous afin de m'aider à résoudre un problème.
Le problème est le suivant:
J'ai une Base de données dans la feuille ("Feuil1").
J'ai 6 boutons d'options nommés (CP1, CP2, CE1, CE2, CM1, CM2) et une ComboBox1 qui contient (compo Décembre, Compo Février, Compo Avril et Compo Mai).
j'ai également une ListeBox1
l'idée ici est qu'en cliquant sur l'un des boutons d'options, apparaissent dans la ListBox1 la liste tous les élèves appartenant à la classe choisie.
petite précision: dans la base de donnée("Feuil1) , Matricule= colonne "A", Nom=colonne "C", Prénom=colonne"D".
en suite vient le tour de la Combobox1
En choisissant l'une des compos, apparaissent en face ce la liste toujours dans
la listbox1 les Infos de la colonne "E" si c'est pour compo Décembre qui est choisi
"F" pour compo Février
"G"Pour compo Avril
"H"pour compo Mai
J'ai utilisé cette macro que voici pour le filtre avec les boutons d'option. ça marche bien dans la base mais pour le reste ce compliqué pour moi.
Private Sub OptionButton1_Click()
ActiveSheet.Range("$A$1:$AX$1087").AutoFilter Field:=4, Criteria1:="=CP1", _
Operator:=xlOr, Criteria2:="="
End Sub


Private Sub OptionButton2_Click()
ActiveSheet.Range("$A$1:$AX$1087").AutoFilter Field:=4, Criteria1:="=CP2", _
Operator:=xlOr, Criteria2:="="
End Sub

Private Sub OptionButton3_Click()
ActiveSheet.Range("$A$1:$AX$1087").AutoFilter Field:=4, Criteria1:="=CE1", _
Operator:=xlOr, Criteria2:="="
End Sub

Private Sub OptionButton4_Click()
ActiveSheet.Range("$A$1:$AX$1087").AutoFilter Field:=4, Criteria1:="=CE2", _
Operator:=xlOr, Criteria2:="="
End Sub

Private Sub OptionButton5_Click()
ActiveSheet.Range("$A$1:$AX$1087").AutoFilter Field:=4, Criteria1:="=CM1", _
Operator:=xlOr, Criteria2:="="
End Sub

Private Sub OptionButton6_Click()
ActiveSheet.Range("$A$1:$AX$1087").AutoFilter Field:=4, Criteria1:="=CM2", _
Operator:=xlOr, Criteria2:="="
End Sub

Merci de bien vouloir m'aider car ce compliqué pour moi
 
Dernière édition:

ARNAUD ZIRIPE

XLDnaute Occasionnel
Bonjour chers tous j'ai pu trouvé un début de solution.
J'ai trouvé ce code sur le site de boisgontier jacques et j'ai essayé de l'adapté et ça marche bien.
voici le code:
Private Sub OptionButton1_Click()
RemplitCombo "CP1"
End Sub
Private Sub OptionButton2_Click()
RemplitCombo "CP2"
End Sub
Private Sub OptionButton3_Click()
RemplitCombo "CE1"
End Sub
Private Sub OptionButton4_Click()
RemplitCombo "CE2"
End Sub
Private Sub OptionButton5_Click()
RemplitCombo "CM1"
End Sub
Private Sub OptionButton6_Click()
RemplitCombo "CM2"
End Sub
Private Sub OptionButton7_Click()
RemplitCombo "*"
End Sub
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Compo Décembre"
ComboBox1.AddItem "Compo Février"
ComboBox1.AddItem "Compo Avril"
ComboBox1.AddItem "Compo Mai"
RemplitCombo "*"
End Sub
Sub RemplitCombo(Sexe)
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If c.Offset(0, 1) Like Sexe Then
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
End If
Next c
Me.ListBox1.List = MonDico.items
Me.ListBox1.ListIndex = 0
End Sub
j'ai donc remplacé le premier code par celui-ci
Mais il reste que que n'apparait dans le textbox1 une seule colonne alors que j'aurais souhaité dans un premier moment avoir dans le textbox1 les colonnes "A","C" et "D" et c'est en cliquant sur le type de compo dans la Combobox
que la colonne de cette compo apparait à la droite des autres déjà présentent dans le Textbox. Je joint le fichier exemple.

Merci de bien vouloir m'aider car j'en ai besoin.
 

Pièces jointes

  • afficher choix de bt option dans listbox.xlsm
    19.2 KB · Affichages: 18

ARNAUD ZIRIPE

XLDnaute Occasionnel
Bonjour,
Code:
Private Sub UserForm_Initialize()
  Me.ComboBox1.List = Application.Transpose([mois].Value)
  Me.ComboBox1.ListIndex = 0
End Sub

Sub RemplitListBox(Sexe)
  m = Application.Match(Me.ComboBox1, [mois], 0)
  Dim Tbl()
  n = 0
  For Each c In Range([A2], [A65000].End(xlUp))
    If c.Offset(0, 1) Like Sexe Then
       n = n + 1: ReDim Preserve Tbl(1 To 2, 1 To n)
       ligne = c.Row - 1
       note = Application.Index([Notes], ligne, m)
       Tbl(1, n) = c: Tbl(2, n) = note
     End If
  Next c
  If n > 0 Then Me.ListBox1.Column = Tbl
  Me.ListBox1.ListIndex = 0
End Sub

Private Sub ComboBox1_click()
   For Each b In Frame1.Controls
     If b Then tmp = b.Caption
   Next b
   If tmp = "Tous" Then tmp = "*"
   If tmp <> "" Then RemplitListBox tmp
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub OptionButton1_Click()
  RemplitListBox "CP1"
End Sub

Private Sub OptionButton2_Click()
  RemplitListBox "CP2"
End Sub

Private Sub OptionButton3_Click()
  RemplitListBox "CE1"
End Sub
Private Sub OptionButton4_Click()
  RemplitListBox "CE2"
End Sub
Private Sub OptionButton5_Click()
  RemplitListBox "CM1"
End Sub
Private Sub OptionButton6_Click()
  RemplitListBox "CM2"
End Sub

Private Sub OptionButton7_Click()
  RemplitListBox "*"
End Sub


Bisson
Bonsoir Bisson je te remercie énormément pour ce formidable boulot
car tu viens de m'aider dans l"avancée de mon travail
Merci.
 

ARNAUD ZIRIPE

XLDnaute Occasionnel
Bonsoir le forum
Bonsoir Bisson
Bonsoir ChTi160
Ce lien n'existe plus
il m'affiche: "Erreur d'exécution'70': Permission refusée".
j'ai beau essayé mais rien.
C'est pour quoi je vous envoie mon projet pour que vous y jetiez un œil.
J'y ai aussi ajouté d'autres difficultés que je rencontre.
Vous trouverez des infos dans la feuille 2 du projet
Merci pou votre aide.
 

Pièces jointes

  • Eprimaire.xlsm
    143.7 KB · Affichages: 22

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib