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 :

Sélectionner les noms d'items identiques dans 2 ListBox multisélection dans un UserForm


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 842
    Par défaut Sélectionner les noms d'items identiques dans 2 ListBox multisélection dans un UserForm
    Bonjour,

    Je compare les éléments sélectionnés dans une ListBox avec ceux de l’autre ListBox et sélectionne ceux qui sont identiques.

    Voici un exemple de code qui effectue cette opération :
    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
    Sub SelectionnerElementsCommuns()
        Dim i As Integer, j As Integer
        Dim listBox1 As Object, listBox2 As Object    
        ' Référence aux ListBox
        Set listBox1 = UserForm1.ListBox1
        Set listBox2 = UserForm1.ListBox2    
        ' Parcours des éléments de la première ListBox
        For i = 0 To listBox1.ListCount - 1
            ' Parcours des éléments de la deuxième ListBox
            For j = 0 To listBox2.ListCount - 1
                ' Vérifier si l'élément est présent
                If listBox1.List(i) = listBox2.List(j) Then
                    listBox2.Selected(j) = True
                End If
            Next j
        Next i
    End Sub
    Cela fonctionne bien à un point de détail près, le dernier item est systématiquement sélection que ce soit dans ListBox1 vers ListBox2 ou l’inverse.

    Je ne vois pas comment corriger ça, qui a une petite idée.

    Merci d’avance pour vos réponses.

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, d'après ton code, tu compares tous les éléments de Listbox1 avec tous les éléments de Listbox2. Or, d'après l'énoncé de ton problème, tu veux comparer les items sélectionnés seulement. Teste comme ceci:

    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
    Sub SelectionnerElementsCommuns()
        Dim i As Integer, j As Integer
        Dim listBox1 As Object, listBox2 As Object
     
        Set listBox1 = UserForm1.ListBox1
        Set listBox2 = UserForm1.ListBox2
     
        ' Parcours des éléments de la première ListBox
        For i = 0 To listBox1.ListCount - 1
            ' Vérifier si l'élément est sélectionné dans ListBox1
            If listBox1.Selected(i) = True Then
                ' Parcours des éléments de la deuxième ListBox
                For j = 0 To listBox2.ListCount - 1
                    ' Vérifier si l'élément est identique
                    If listBox1.List(i) = listBox2.List(j) Then
                        listBox2.Selected(j) = True
                    End If
                Next j
            End If
        Next i
    End Sub

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 842
    Par défaut
    Bonjour et merci Franc pour ta promptitude:
    Ça fonctionne nickel chrome, pourtant j'ai cherché sans trouver de réponse.
    Avec un coup de cuillère à pot vous m'apportez la solution.
    Re merci beaucoup et bonne soirée.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/04/2009, 13h54
  2. [E-00] Recuperer les nom de dossier present dans un autre dossier
    Par imaril dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/10/2008, 10h11
  3. Réponses: 7
    Dernier message: 10/12/2007, 11h27
  4. Réponses: 2
    Dernier message: 06/04/2007, 11h48
  5. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25

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