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

Macros et VBA Excel Discussion :

[E03] - Modifier les valeurs affichées dans une listbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 53
    Points : 18
    Points
    18
    Par défaut [E03] - Modifier les valeurs affichées dans une listbox
    Bonjour Le Forum,

    L'intitulé du post n'est peut être pas très clair donc je vais préciser.

    J'ai un petit formulaire de recherche qui, quand je tape un mot clé, m'affiche dans une listbox les valeurs trouvées.

    Exemple : je tape chat et j'obtiens actuellement

    Mot Clé >>>>> Race
    chat >>>>>> siamois
    chat >>>>>> persan
    chaton >>>>>> siamois


    Est-il possible d'obtenir plutôt dans la ListBox quelque chose ressemblant à :

    Mot Clé >>>>>> Race
    chat >>>>>> siamois/persan
    chaton >>>>>> siamois

    Sachant que dans la source qui alimente la Listbox les données sont sur deux lignes (comme dans le premier exemple en fait)

    Moi personnellement je ne l'ai jamais vu ni employé donc c'est pour cela que je vous interroge.

    D'avance merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Il manque un élément essentiel pour se pencher sur ce cas :
    Ta listbox est-elle liée à une source de données ou complétée par AddItem ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 53
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Ma listbox est alimenté selon un tableau se trouvant dans une feuille excel selon la macro de Laetitia vu dans ce post :

    http://www.developpez.net/forums/d69...che-mots-cles/

    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
    Private Sub TextBox1_Change()
     
    On Error Resume Next
     
    Application.ScreenUpdating = False
    t = Range("a2:l" & Range("a65536").End(xlUp).Row)
    ListBox1.Clear
    X = 1
    For i = 1 To UBound(t)
    If t(i, 1) Like "*" & TextBox1.Value & "*" Then
    ReDim Preserve ta(1 To 12, 1 To X)
    For k = 1 To 12
    ta(k, X) = t(i, k)
    Next k: X = X + 1: End If: Next i
    If X - 1 = 1 Then
    ListBox1.List = Application.Transpose(ta)
    For t = 1 To Range("a65536").End(xlUp).Row
    If Cells(t, 1) = (ListBox1.List(ListBox1.ListIndex + 1, 0)) Then
    Cells(t, 2).Activate: End If: Next t
    Range(ActiveCell(1, 0), ActiveCell(1, 11)).Select
    ListBox1.Clear: t = Selection: ListBox1.List = t: [a1].Select
    Else
    ListBox1.List = Application.Transpose(ta)
    End If: Erase t, ta: Label6 = X - 1: If TextBox1 = "" Then ListBox1.Clear: Label6 = ""
    Label6.Caption = "nb...  " & ListBox1.ListCount: Beep
     
    End Sub

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Je ne vois aucun AddItem dans le code montré et n'ouvre jamais les xls
    J'en déduis que ta listbox est liée.
    Tu ne peux dans ces conditions en modifier directement les articles une fois ta listbox alimentée.
    Soiit donc, tu fais un "travail" avant son alimentation (donc modification du jeu d'enregistrements), soit tu dresses une seconde liste (non liée, celle-là) à partir de la première.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 53
    Points : 18
    Points
    18
    Par défaut
    Donc si je comprends bien :

    - comme je ne compte pas modifier la feuille de données, je dois passer par une seconde listbox générée "en cascade" par la première mais à laquelle je pourrais appliquer le format que je voudrai.

    Une question cependant :comme je suis obligée de passer par 2 Listbox mais que je ne veux voir apparaitre que le résultat final, est ce qu'il est "courant" de coller une Listbox finale sur la Listbox temp ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 53
    Points : 18
    Points
    18
    Par défaut
    Bonjour à tous,

    Je reviens sur ce post : quelqu'un peut-il m'aiguiller sur comment débuter le code car je n'ai aucune idée de comment m'y prendre.

    Merci

  7. #7
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour couistelle le fil le forum je pense que tu parles de l exemple que je t ais fais je vais regardais a premiere vu pas si simple il faut peut etre tout repenser le code je regarderais ce soir

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Je ne vois aucun AddItem dans le code montré et n'ouvre jamais les xls
    J'en déduis que ta listbox est liée.
    Tu ne peux dans ces conditions en modifier directement les articles une fois ta listbox alimentée.
    Hello ucfoutu, couistelle utilise ListBox1.List = ... et non RowSource
    Pour une explication, regarde ici
    Si tu pouvais apporter une solution pérenne...
    Bonne journée

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour, ousk,

    Vu ...

    Il lui faut alors, au choix et selon ce qui est le plus rapide :

    - soit "travailler" le tableau avant d'en passer le contenu à la listbox
    - soit "travailler" la listbox après passage du tableau

    j'opterais personnellement (mais n'ai pas essayé) pour un truc bâtard :
    - trier le tableau (plutôt que la listbox)
    - travailler ensuite sur la listbox (car il est plus facile d'éliminer des articles de listbox que des articles de tableau)

    Le travail (une fois trié) est simple avec une boucle : si article suivant = article précédent (sur la colonne 2) ===>> article précédent = article précédent & "/" & article suivant
    et on détruit article suivant, et ainsi de suite.

    Encore que ... je crois bien que je ne me servirais pas ainsi d'une listbox et chercherais plutôt l'utilisation (plus rationnelle) d'un TreeView, quitte à passer par une boucle sur mes cellules (tant pis) plutôt que de transformer une plage en tableau. De sorte à m'éviter d'avoir ainsi des "truc/machin/chouette" mal exploitables ...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 53
    Points : 18
    Points
    18
    Par défaut
    Excusez moi les amis,

    Je vais surement dire une grosse bêtise mais je ne vois pas la différence entre le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.List = Application.Transpose(ta)
    de Laetitia

    et le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ListBox1.List = Application.Transpose(Tablo)
    de Ousk

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par couistelle
    Je vais surement dire une grosse bêtise mais
    C'est une grosse bêtise !
    Me remplace, ici, le nom de l'userform contenant la liste. Une précaution quand tu as plusieurs userform chargés. Et comme je ne connais pas le contexte (1 usf ? 2 ? 10 ?) je l'ai utilisé. Ne nuit pas s'il n'y a qu'un usf chargé même s'il est facultatif de l'indiquer dans ce cas là.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 53
    Points : 18
    Points
    18
    Par défaut
    J'ai dit une demi-bêtise alors puisque je n'ai qu'un seul USF mais tu ne pouvais pas le savoir (donc demi !)

    Sinon je cherche toujours pour l'instant j'avance pas trop mais si j'arrive a sortir quelque chose je vous fais signe

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/07/2009, 01h21
  2. Réponses: 3
    Dernier message: 25/09/2008, 10h26
  3. Récupérer les valeurs clique dans une ListBox
    Par zooffy dans le forum ASP.NET
    Réponses: 10
    Dernier message: 22/05/2008, 12h01
  4. Réponses: 4
    Dernier message: 23/04/2007, 12h01
  5. Réponses: 5
    Dernier message: 05/10/2006, 10h18

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