IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Afficher une liste dans ma listbox après avoir selectionné un élement


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Educateur
    Inscrit en
    Avril 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Educateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Afficher une liste dans ma listbox après avoir selectionné un élement
    Salut à tous et merci de m'aider encore une fois.
    j'ai un USF dans lequel il y a une listbox. Je souhaiterais afficher par exemple la liste des élèves d'une classe après avoir selectionné la classe dans une combobox.
    Je joint mon fichier pour plus de precision.
    Merci à tous
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 137
    Points : 9 971
    Points
    9 971
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faut modifier le nom de la feuille en fonction du nom de ta feuille réelle
    ça ne fonctionnera qu'à la condition que ton tableau réel a bien :

    - le prénom en colonne B
    - le nom en colonne C
    - la classe en colonne D

    sinon il faudra adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub CommandButton1_Click()
     
    If Me.ComboBox1.ListIndex = -1 Or Me.ComboBox1 = "" Then
        MsgBox ("Veuillez choisir une classe pour en afficher la liste des élèves")
        Exit Sub
    End If
     
    With Sheets("A")
        For i = 2 To .UsedRange.Rows.Count
            If .Cells(i, 4) = Me.ComboBox1.Value Then
                Me.ListBox1.AddItem .Cells(i, 2) & " " & .Cells(i, 3)
            End If
        Next i
    End With
     
    If Me.ListBox1.ListCount = 0 Then
        MsgBox "Aucun Elève trouvé"
    End If
     
    End Sub

  3. #3
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 816
    Points : 2 954
    Points
    2 954
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Un petit exemple :

    1- soit les noms des classes en Feuil1 ligne1, de A à F
    2- Soit les noms des élèves correspondants, dans les colonnes, sous les noms des classes, à partir de la ligne 2 (de A2 à Ax, de B2 à Bx, etc)

    Comment procéder :
    1- nommer les plages de cellules comme ceci :
    (avec le gestionnaire de noms ou le menu Edition/Noms/Définir)
    A1:F1 : nommer Classes
    A2:Ax : nommer à l'identique avec le nom de la classe en A1
    B2:Bx : nommer à l'identique avec le nom de la classe en B1
    C2:Cx : nommer à l'identique avec le nom de la classe en C1
    etc

    2- le code dans l'userform devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
     
    Private Sub ComboBox1_Click()
    If ComboBox1 <> "" Then
        With ListBox1
            .Clear
            .List = Application.Transpose(Range(ComboBox1))
        End With
    End If
    End Sub
     
    Private Sub UserForm_Initialize()
    ComboBox1.List = Application.Transpose(Range("Classes"))
    End Sub
    Un exemple : http://cjoint.com/?EEhp67LK5Rk

  4. #4
    Membre à l'essai
    Homme Profil pro
    Educateur
    Inscrit en
    Avril 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Educateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Merci à vous
    Salut à vous tous,
    je vais commencer à répondre à Joe.levrai.
    Joe.levrai, je m'excuse énormément auprès de vous. Votre code est bon , je dirais même très bon mais je n'ai pas su poser mon problème, encore une fois pardon. Le problème est que lorsque je sélectionne une classe, c'est les élèves de la liste de la classe qui doivent afficher par ordre alphabétique dans la listbox.
    Merci Joe.levrai. Je vous ramène le fichier après avoir entré le code pour appréciation.


    Quand à Pijaku,
    merci aussi à toi, je vais de ce pas essayer d'adapter ton code à ma réalité et vous tenir informer de la suite des événements.

    Très respectueusement à vous deux.
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 137
    Points : 9 971
    Points
    9 971
    Billets dans le blog
    5
    Par défaut
    J'ai peur de mal comprendre , résumons :

    - ta combobox va contenir la liste des classes
    - quand on choisi une classe dans la combobox, on appuie sur le bouton
    - la liste des élèves rattachés à la classe doit apparaître dans la listbox

    ==> c'est ce que fais mon code, c'est juste que dans ton fichier exemple, tu n'as pas mis le code que tu as écris et qui crée la liste des classes dans ton combobox


    si c'est l'inverse, c'est pas compliqué à changer, confirme moi exactement ce que tu souhaites

  6. #6
    Membre à l'essai
    Homme Profil pro
    Educateur
    Inscrit en
    Avril 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Educateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Exemple revu
    Merci Joe.levrai

    Voici le problème.
    J'ai refais mon exemple.
    - ma combobox1 puise sa ressource dans la deuxième feuille nommée feuil1
    - Lorsque ma combobox1 sélectionne une classe, quand j'appuie sur le bouton :"Afficher la liste", les élèves de cette classe doivent afficher par ordre alphabétique dans ma listbox1.
    NB: Je joint le fichier.
    Merci
    Fichiers attachés Fichiers attachés

  7. #7
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 137
    Points : 9 971
    Points
    9 971
    Billets dans le blog
    5
    Par défaut
    Voici le code modifié, avec tri alphabétique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim j As Integer
    Dim strtemp
     
    If Me.ComboBox1.ListIndex = -1 Or Me.ComboBox1 = "" Then
        MsgBox ("Veuillez choisir une classe pour en afficher la liste des élèves")
        Exit Sub
    End If
     
    With Sheets("A")
        For i = 2 To .UsedRange.Rows.Count
            If .Cells(i, 4) = Me.ComboBox1.Value Then
                Me.ListBox1.AddItem .Cells(i, 2) & " " & .Cells(i, 3)
            End If
        Next i
    End With
     
    With Me.ListBox1
     
        If .ListCount = 0 Then
            MsgBox "Aucun Elève trouvé"
        Else
            For i = 0 To .ListCount - 1
                For j = 0 To .ListCount - 1
                    If .List(i) < .List(j) Then
                        strtemp = .List(i)
                        .List(i) = .List(j)
                        .List(j) = strtemp
                    End If
                Next j
            Next i
        End If
    End With
     
    End Sub
    ATTENTION : le nom des classes doit être écris de manière identique dans les deux feuilles (celle où est situé ton tableau et celle où est située la liste des classes)

    Là dans ton fichier, le numéro de classe comportait un espace dans ta liste, et pas d'espace dans ton tableau

  8. #8
    Membre à l'essai
    Homme Profil pro
    Educateur
    Inscrit en
    Avril 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Educateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Joli
    Ahaaa,
    l'Africain que je suis avec mes grosses narines, je n'ai même fais attention à toutes ces erreurs. Grand merci à toi Joe.levrai. Tu viens de m'enlever une grosse épine de la gorge.
    Ton code marche parfaitement. il marche tellement bien que suis heureux de montrer mon petit travail de débutant à tous mes amis.
    Encore une fois grand merci à toi et merci à tous ceux qui ont pris de leurs temps pour m'assister.
    Aucun des codes que j'ai reçu ne sera négligé de ma part, vous pouvez me faire confiance pour cela. 20/20 à vous tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Comment afficher une liste dans ListBox ou ComboBox
    Par chikitin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2010, 14h09
  2. [Debutant] Afficher une List dans une JSF
    Par zaoueche dans le forum JSF
    Réponses: 4
    Dernier message: 23/11/2007, 16h38
  3. [WSS 3.0] Afficher une liste dans un sous site
    Par Paul69 dans le forum SharePoint
    Réponses: 3
    Dernier message: 16/09/2007, 12h09
  4. Réponses: 24
    Dernier message: 09/07/2007, 13h08
  5. [VB]Afficher une liste dans une boite de dialogue
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/04/2006, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo