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 :

comparer le contenue de deux ListBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 8
    Par défaut comparer le contenue de deux ListBox
    pour ma derniere tache de mon application VBA , et aprés des jours à la recherche sur le net , j'ai un probléme au niveau de comparaison de deux listBox dans deux userforms différents, ici dans mon UserFormMODIF , Une liste des roles (existe dans SHEET1) s'affiche dans ListBox1 et sont associé au login introduit au depart , (par exemple login = aaa) puis dans le userFormTrans je coche une ou plusieurs transaction et le résultat s'affiche dans ListBox_Role , maintenant je veux comparer ces deux ListBox en parcourant la ListBox_Role et l'on compare par chaque element du ListBox1 . les conditions de comparaison :



    si on prend un exemple ici avec le user du login "aaa" , il a dans sa listBox1 PROCUR_ADM et PROCUR_OPE , si il veut choisir une autre transaction (APS020) les roles associé FIN_AP_ADMIN , VIEW et IT_LOCAL a cette transaction sont afffichées dans "ListBox_Role" et ils doivent etres séparés en deux zone (autorisés) et (incompatibles)

    CEUX qui ne sont pas autorisés (PROCUR_OPE et FIN_AP_ADMIN) donc FIN_AP_ADMIN doit palcer dans ListBoxIncom du UserFormTrans , et si il choisit un transaction avec un role autorisé , doit se palcer dans ListBoxAut et qui sera valider (voir feuil "matriceM3" CI1 pour mieux comprendre ) ...

    Pièce jointe 489204

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour NADA et marhbé / Bonjour la forum
    Personnellement j'arrive pas à comprendre la demande
    Aussi et pour faire bouger cette discussion et si tu cherches à comparer deux listes et tu alimente une listbox par la différence de la list1/list2
    liste 1 dans la colonne A à partir de A2
    liste 2 dans la colonne B à partir de B2 :
    tu peux faire avec :
    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
    Private Sub UserForm_Initialize()
       ListBox2.Clear
    Dim w1 As Worksheet
    Set w1 = Sheets("feuil1")
    J = 0
    For I = 2 To w1.Cells(Rows.Count, 1).End(xlUp).Row
        If Application.WorksheetFunction.CountIf(w1.Range("B:B"), w1.Range("A" & I)) = 0 Then
        ListBox2.ColumnCount = 1
        ListBox2.ColumnWidths = "50"
        ListBox2.AddItem
        ListBox2.Column(0, J) = w1.Cells(I, 1)
        J = J + 1
        End If
    Next I
     
    End Sub
    ou bien avec dictionnaire
    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
    Set f1 = Sheets("feuil1")
      Set d = CreateObject("scripting.dictionary")
      d.CompareMode = vbTextCompare
      Dim i As Integer
       On Error Resume Next
       For Each c In f1.Range("B2", [b65000].End(xlUp))
        d(c.Value) = ""
      Next c
     
      Set d2 = CreateObject("scripting.dictionary")
      d2.CompareMode = vbTextCompare
      For Each c In f1.Range("A2:A" & f1.[A65000].End(xlUp).Row)
       If Not d.exists(c.Value) Then d2(c.Value) = ""
      Next c
     
     
      ListBox3.List = Application.Transpose(d2.keys)
    Bonne continuation

Discussions similaires

  1. comparer le contenu de deux cellules
    Par maroinoide dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/03/2009, 12h53
  2. Comparer le contenu de deux cellules
    Par _Nimy_ dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/05/2008, 16h18
  3. Comparer le contenu de deux requêtes
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2006, 11h43
  4. comparer le contenu de deux tables?
    Par sessime dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/03/2006, 14h05
  5. Comparer le contenu de deux vecteurs
    Par misou83 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 20/07/2005, 17h17

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