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 :

Adaptation d'une recherche pour une colonne entière


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut Adaptation d'une recherche pour une colonne entière
    Bonjour à toutes et à tous,

    Je viens vers vous afin de trouver une solution ou une aide.

    Voilà ma problématique. J'ai un tableau de 4 colonnes. Dans ces colonnes, j'ai une multitude de récurrences. Je cherche à alimenter une listbox à sélection multiples en fonction d'un critère dans une combobox. J'arrive à avoir le résultat pour une ligne, mais pas pour toutes les lignes du tableau. Je sais faire pour une ligne en fait.. C'est l'adaptation à plusieurs lignes où je coince.

    Voici mon code :

    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
    Dim f, ligneEnreg
    Private Sub UserForm_Initialize()
     Set f = Sheets("BD")
       Set mondico = CreateObject("Scripting.Dictionary")
       For Each c In Range(f.[A2], f.[A65000].End(xlUp))
          mondico(c.Value) = ""
       Next c
       Me.ComboBox1.List = mondico.keys
       Set mondico2 = CreateObject("Scripting.Dictionary")
       For Each n In Range(f.[C2], f.[C65000].End(xlUp))
          mondico2(n.Value) = ""
       Next n
       Me.ListBox1.List = mondico2.keys
    End Sub
     
    Private Sub ComboBox1_Click()
       ligneEnreg = Sheets("BD").[A:A].Find(ComboBox1, LookIn:=xlValues).Row
       temp = f.Cells(ligneEnreg, 3)
       a = Split(temp, "")
       For j = 0 To Me.ListBox1.ListCount - 1: Me.ListBox1.Selected(j) = False: Next j
       If UBound(a) >= 0 Then
            For j = 0 To Me.ListBox1.ListCount - 1
               If Not IsError(Application.Match(Me.ListBox1.List(j), a, 0)) Then
                   Me.ListBox1.Selected(j) = True
               Else
                   Me.ListBox1.Selected(j) = False
               End If
             Next j
        End If
    End Sub
    Pouvez vous m'aider afin de trouver la solution pour toutes les lignes ? Merci d'avance.

    P.S : Si besoin d'un fichier simple sans macro, je peux vous le fournir.

  2. #2
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut
    Je relance le sujet, si quelqu'un a une solution a me proposer...

    A toute fin utile je joins un fichier avec lequel je fais le test.
    Fichiers attachés Fichiers attachés

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    j'avoue ne pas très bien comprendre ton code a mon avis ce que tu cherche est beaucoup plus simple

    en tout cas ceci a mon avis génère une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Not IsError(Application.Match(Me.ListBox1.List(j), a, 0)) Then
    même si il n y a pas d'erreur déclenchée, et meme avec une listbox a une!!!! colonne ,il faut précisé la colonne (zero pour une list a 1 colonne )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Not IsError(Application.Match(Me.ListBox1.List(j,index colonne), a, 0)) Then
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut
    Merci de votre premier retour.

    Ce que je cherche à faire c'est que, pour chaque item de la combobox, soit cochées les cases de la listbox si la formation est initiale ou non (les croix dans la colonne E de la BD). N'ayant pas encore inséré la variable des croix dans le code, toutes les cases de la listbox devrait être cochés. Ce qui n'est pas le cas pour le moment, puisqu'il ne compare que la première ligne de la BD et non toutes les lignes.

    Pour info, étant autodidacte, je m'aide (beaucoup) des cours trouvés en ligne de boisgontierjacques et les codes utilisés sont en bonnes partie crées par lui. J'essaye de les adapter à mon problème et ma pratique.

  5. #5
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut
    Citation Envoyé par matimatfr Voir le message
    Merci de votre premier retour.

    Ce que je cherche à faire c'est que, pour chaque item de la combobox, soit cochées les cases de la listbox si la formation est initiale ou non (les croix dans la colonne E de la BD). N'ayant pas encore inséré la variable des croix dans le code, toutes les cases de la listbox devrait être cochés. Ce qui n'est pas le cas pour le moment, puisqu'il ne compare que la première ligne de la BD et non toutes les lignes.

    Pour info, étant autodidacte, je m'aide (beaucoup) des cours trouvés en ligne de boisgontierjacques et les codes utilisés sont en bonnes partie crées par lui. J'essaye de les adapter à mon problème et ma pratique.
    Je fais des tests avec des boucles et des méthode find défférente mais je reste complètement bloqué, si quelqu'un a une solution je suis preneur..

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    je ne comprend pas bien...
    Ce que je cherche à faire c'est que, pour chaque item de la combobox, soit cochées les cases de la listbox si la formation est initiale ou non (les croix dans la colonne E de la BD)
    Hors c'est dépendant de 'Déclinaisons modules' que tu n'as pas en liste.
    eric

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/12/2012, 20h42
  2. Comment faire une recherche dans une combobox et une sélection automatique
    Par VictoriusDan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2009, 16h17
  3. Conseil pour une recherche puis une copie.
    Par squall62 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/12/2008, 10h40
  4. [SQL] créer une requete pour une recherche
    Par boubourse92 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/01/2008, 13h25
  5. Imposer une methode Equals pour une recherche dans une List
    Par petozak dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 03/10/2006, 10h41

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