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 :

tri sur listbox avec critère de selectin listbox multiselection


Sujet :

Macros et VBA Excel

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut tri sur listbox avec critère de selectin listbox multiselection
    Bonjour à tous !

    J'ai fait une listbox qui est filré avec les critères suivant :
    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
    Dim DéBit, CréDit, SolDE As String
    DéBit = 0
        CréDit = 0
        SolDE = 0
     
     
     
        Dim NbLgne, U As Variant
        Dim i As Integer
        Dim K, j, y
        ListBox1.Clear
        NbLgne = Sheets("Récap_cptes").Range("a65000").End(xlUp).Row
        Sheets("feuil2").Range("b27") = NbLgne
    For i = 2 To NbLgne + 1
      If Cells(i, 5) Like "*" & ComboBox3.Value & "*" And _
      Cells(i, 9) Like "*" & Combobox6.value And Cells(i, 10) <> "" Then
        Me.ListBox1.AddItem
        Me.ListBox1.List(K, 0) = Sheets("Récap_cptes").Cells(i, 2)
        Me.ListBox1.List(K, 1) = "| " & Sheets("Récap_cptes").Cells(i, 3)
        Me.ListBox1.List(K, 2) = "| " & Sheets("Récap_cptes").Cells(i, 5)
        Me.ListBox1.List(K, 3) = "| " & Sheets("Récap_cptes").Cells(i, 6)
        Me.ListBox1.List(K, 4) = "| " & Sheets("Récap_cptes").Cells(i, 7)
        Me.ListBox1.List(K, 5) = "| " & Sheets("Récap_cptes").Cells(i, 9)
        Me.ListBox1.List(K, 6) = "| " & Sheets("Récap_cptes").Cells(i, 8)
        Me.ListBox1.List(K, 7) = "| " & Sheets("Récap_cptes").Cells(i, 30)
        DéBit = DéBit + Sheets("Récap_cptes").Cells(i, 30)
        Me.ListBox1.List(K, 8) = "| " & Sheets("Récap_cptes").Cells(i, 29)
        CréDit = CréDit + Sheets("Récap_cptes").Cells(i, 29)
        Me.ListBox1.List(K, 9) = "| " & Sheets("Récap_cptes").Cells(i, 4)
        K = K + 1
     
     
      End If
     
    Next i
    Pour l’instant tout va bien!

    Par contre, je voudrais à la place du combobox6, le remplacer par une listbox multi-selection ! Mais je ne trouve pas le moyen de le placer ds la boucle?

    j'ai bien la solution pour extraire les données de cette listbox!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim P As Integer
    For P = 0 To ListBox2.ListCount - 1
     
     
            If ListBox2.Selected(P) = True Then msgboxListBox2.List(P)
            Next P
    Mais comment indiquer à la listbox1 les données de la listbox2?

    à vous lire , et merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Non testé.

    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
    40
    Dim DéBit, CréDit, SolDE As String
    DéBit = 0
        CréDit = 0
        SolDE = 0
     
     
     
        Dim NbLgne, U As Variant
        Dim i As Integer
        Dim K, j, y, P
        Dim Teste As Boolean
        ListBox1.Clear
        NbLgne = Sheets("Récap_cptes").Range("a65000").End(xlUp).Row
        Sheets("feuil2").Range("b27") = NbLgne
    For i = 2 To NbLgne + 1
        Teste = False
        For P = 0 To listbox2.ListCount - 1
            If listbox2.Selected(P) = True And Cells(i, 9) Like "*" & listbox2.List(P) Then
                Teste = True
                Exit Sub
            End If
        Next P
        If Cells(i, 5) Like "*" & ComboBox3.Value & "*" And _
            Teste = True And Cells(i, 10) <> "" Then
            Me.ListBox1.AddItem
            Me.ListBox1.List(K, 0) = Sheets("Récap_cptes").Cells(i, 2)
            Me.ListBox1.List(K, 1) = "| " & Sheets("Récap_cptes").Cells(i, 3)
            Me.ListBox1.List(K, 2) = "| " & Sheets("Récap_cptes").Cells(i, 5)
            Me.ListBox1.List(K, 3) = "| " & Sheets("Récap_cptes").Cells(i, 6)
            Me.ListBox1.List(K, 4) = "| " & Sheets("Récap_cptes").Cells(i, 7)
            Me.ListBox1.List(K, 5) = "| " & Sheets("Récap_cptes").Cells(i, 9)
            Me.ListBox1.List(K, 6) = "| " & Sheets("Récap_cptes").Cells(i, 8)
            Me.ListBox1.List(K, 7) = "| " & Sheets("Récap_cptes").Cells(i, 30)
            DéBit = DéBit + Sheets("Récap_cptes").Cells(i, 30)
            Me.ListBox1.List(K, 8) = "| " & Sheets("Récap_cptes").Cells(i, 29)
            CréDit = CréDit + Sheets("Récap_cptes").Cells(i, 29)
            Me.ListBox1.List(K, 9) = "| " & Sheets("Récap_cptes").Cells(i, 4)
            K = K + 1
        End If
    Next i

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Salut Daniel,

    Merci de ta réponse, mais ça ne fonctionne pas ! je pense qu'il cherche avec ton code la valeur VRAI !

    je continu !

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Le principe (j'espère que ta listbox s'appelle ListBox2), je compare :
    à chacune des valeurs sélectées de la listbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If listbox2.Selected(P) = True And Cells(i, 9) Like "*" & listbox2.List(P) Then
    S'il y a correspondance, je mets la variable à true. Ce qui revient à dire "si l'une des valeurs de la listbox sélectionnée correspond".

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Slt Daniel,

    avec un peu de retard je continu ma recherche! Effectivement, ça fonctionne, mais si on change Exit sub par exit for !

    donc merci et à bientôt !!!

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

Discussions similaires

  1. Tri sur département avec mon département en premier
    Par vince29 dans le forum Langage SQL
    Réponses: 18
    Dernier message: 29/06/2012, 15h06
  2. Tri des resultats avec critères
    Par junglist.kirss dans le forum Requêtes
    Réponses: 5
    Dernier message: 14/12/2009, 09h50
  3. Problème Tri sur date avec count
    Par ilalaina dans le forum Designer
    Réponses: 2
    Dernier message: 15/09/2009, 14h31
  4. [MySQL] Tri sur requête avec jointure
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/02/2009, 09h40
  5. Requêtes sur enregistrements avec critères dates
    Par Aliveli dans le forum Access
    Réponses: 10
    Dernier message: 05/06/2006, 13h41

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