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 :

ListBox indexé multisélection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2009
    Messages : 117
    Par défaut ListBox indexé multisélection
    Bonjour,

    J'ai créer une listBox dans le but de filtrer les éléments d'une feuille excel. Je remplie cette ListBox avec une plage de cellule que j'applique dans les propriété de la ListBox. de plus j'utilise la fonction MultiCritere pour des sélections multiples.

    Comment il faut faire pour indexer la liste. Le but étant de maintenir la sélection de la liste après le filtre.

    et comment délectionner les éléments de façon efficace sans les détruires.

    j'ai réussi a faire le tout, mais en ajoutant une colonne dans ma ListBox. Je crois qu'il y a une méthode plus simple que la mienne pour le faire et de plus, ma méthode a une faille énorme si je ne sais pas la taille de ma ListBox.



    Je peux joindre mon exemple si cela peut vous être utile. pour l'instant, je vous joint une partie de mon code.

    Merci de votre aide.

    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
    37
    38
    39
     
    Private Sub CommandButton1_Click()
     
    Dim MyArray(12) As String
    Dim InString() As String
    Dim i, j, x As Integer
     
    For i = 0 To Me.ListBox1.ListCount - 1
     
    If Me.ListBox1.Selected(i) = True Then
    MyArray(i) = ListBox1.Column(1, i)
    Else
    MyArray(i) = 0
    End If
     
    Next i
    'Debug.Print ListBox1.List(i)
    InString = Filter(MyArray, 0, False)
     
     ActiveSheet.Range("$D$1:$F$15").AutoFilter Field:=2, Criteria1:=InString, Operator:=xlFilterValues
     
    InString = Filter(MyArray, 0, False)
    For i = 0 To UBound(InString)
    Debug.Print InString(i)
     
    Next i
     
    For i = 0 To 11
      For j = 0 To 11
     
      If MyArray(i) Like ListBox1.Column(1, j) Then
        x = ListBox1.Column(0, j) - 1
        ListBox1.Selected(x) = True
      End If
     
       Next j
    Next i
     
    End Sub

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2009
    Messages : 117
    Par défaut
    J'ai trouver une solution envisageable que j'ai partager dans un autre post.

    conservation sélections après activation.

    merci!

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

Discussions similaires

  1. asp.net C# Listbox index=-1
    Par Patmat44 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/06/2012, 15h20
  2. Problème avec les Z-index et les listbox
    Par volivi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/05/2006, 12h30
  3. listbox et index
    Par gIch dans le forum Access
    Réponses: 5
    Dernier message: 27/02/2006, 11h23
  4. Listbox multisélection
    Par Zaza_du_second dans le forum Access
    Réponses: 15
    Dernier message: 05/09/2005, 11h35
  5. Réponses: 5
    Dernier message: 18/01/2004, 16h25

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