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 :

Remplir listbox résultat d'une recherche [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 969
    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 969
    Par défaut Remplir listbox résultat d'une recherche
    Bonjour à tous et merci beaucoup pour l'esprit d'entraide
    à l'aide d'un code trouvé sur ce site j'arrive à chercher un montant dans un tableau excel
    je cherche à ce que le résultat ne s'affiche pas dans un message mais dans un listbox
    colonne : a/ b/c/d/e/f/g/h
    et si je clique sur le résultat l'userform se ferme et directe sur le résultat cible sur la feuille excel
    voila mon code et merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
    Dim plage As Range
    Set plage = ThisWorkbook.Worksheets("Mouvement").Range("G11:H5000")
    Monchiffre = CDbl(UserForm10.TextBox1.Value)
    For Each cell In plage
    If cell.Value = Monchiffre Then
    MsgBox cell.Address & " est l' adresse de la valeur: " & cell.Value
    End If
    Next cell
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If cell.Value = Monchiffre Then
       Userform10.Listbox1.AddItem cell.Value  'ou MonChiffre - change les noms du Userform et Listbox selon ...
    End If
    Lorsque tu click la valeur de la listbox, tu fais le même genre recherche dans ta plage

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 969
    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 969
    Par défaut
    Merci pour la réponse rapide
    le resultat figure en H ou G
    est il possible d'insérer dans la listbox toute la ligne du résultat trouvé depuis colonne A à F
    merci encore

    j'ai bricoler ça
    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 CommandButton1_Click()
    Dim plage As Range
    Set plage = ThisWorkbook.Worksheets("Mouvement").Range("G11:H" & [H65536].End(xlUp).Row)
    Monchiffre = CDbl(UserForm10.TextBox1.Value)
    For Each cell In plage
    If cell.Value = Monchiffre Then
     
    UserForm10.ListBox1.AddItem
    UserForm10.ListBox1.Column(0, i) = cell.Address
    UserForm10.ListBox1.Column(1, i) = cell(0, -5)
    UserForm10.ListBox1.Column(2, i) = cell(0, -6)
    UserForm10.ListBox1.Column(3, i) = cell(0, -2)
    UserForm10.ListBox1.Column(4, i) = cell.Value
    End If
    Next cell
    End Sub
    mais ça donne que le dernier résultat alors que peut avoir plus q'un résultat donc je souhaite que le listbox enregistre tous les résultats
    ( à introduire i comme variable et vi que chui limité en VBA j'ai pas arrivé a une solution
    autre problème : si le résultat trouvé figure en colonne H il y aura une erreur en ça : UserForm10.ListBox1.Column(2, i) = cell(0, -6) et c'est normal vu qu'il ya pas G - 6 mais ça fonctionne si le résultat en H (parfois mouvement débit et parfois mouvement crédit)
    aussi si c'est possible de cliquer sur la ligne figurant ds le listbox qui se ferme et je me trouve sur la ligne excel souhaitée
    merci d'avance et bonne soirée

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Il faudrait que tu expliques un peu mieux ce que ta plage contient, ce que tu veux vérifier et ce que tu veux mette dans ta listbox.

    Ta plage va G11 à Hxx
    MonChiffre doit être égal à quoi ? G, H ou un des 2 ?

    En passant, pour écrire des valeurs dans plusieurs colonnes d'une listbox, tu dois ajouter un Item (AddItem) et remplir les "cellules" de cette ligne de la Listbox => Listbox.List(Ligne, Colonne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Listbox1.AddItem
    Listbox1.List(Listbox1.Recordcount - 1, 0) = Range("G" & I)  'première valeur (1ere colonne)
    Listbox1.List(Listbox1.Recordcount - 1, 1) = Range("H" & I)  'colonne 2 de la Listbox

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 969
    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 969
    Par défaut
    Merci parmi pour la réponse ; bonjour tous le monde
    voila mon code qui effectue le recherche dans la feuil "Mouvement" et insère les valeurs trouvé ds un liste box
    je cherche maintenant le chemin inverse : cliquer dans la ligne de la LISBOX pour aller sur le feuille "Mouvement" et exactement sur la ligne recherché : Grand merci d'avance
    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
    Private Sub CommandButton1_Click()
    Dim plage As Range
    Set plage = ThisWorkbook.Worksheets("Mouvement").Range("H11:H" & [A65536].End(xlUp).Row)
    Set plage1 = ThisWorkbook.Worksheets("Mouvement").Range("G11:G" & [A65536].End(xlUp).Row)
    Monchiffre = CDbl(UserForm10.TextBox1.Value)
     i = 0
    For Each Cell In plage
     If Cell.Value = Monchiffre Then
        UserForm10.ListBox1.ColumnCount = 6
        UserForm10.ListBox1.ColumnWidths = "50pt;70pt;40pt;180pt;55pt;55pt"
        UserForm10.ListBox1.AddItem
        UserForm10.ListBox1.Column(0, i) = Cell.Address
        UserForm10.ListBox1.Column(1, i) = Cell(1, -5)
        UserForm10.ListBox1.Column(2, i) = Cell(1, -6)
        UserForm10.ListBox1.Column(3, i) = Cell(1, -2)
         UserForm10.ListBox1.Column(4, i) = 0
        UserForm10.ListBox1.Column(5, i) = Cell.Value
        i = i + 1
     End If
        Next Cell
     
     For Each Cell In plage1
     If Cell.Value = Monchiffre Then
        UserForm10.ListBox1.ColumnWidths = "50;70;40;180;55;55"
        UserForm10.ListBox1.AddItem
        UserForm10.ListBox1.Column(0, i) = Cell.Address
        UserForm10.ListBox1.Column(1, i) = Cell(1, -4)
        UserForm10.ListBox1.Column(2, i) = Cell(1, -5)
        UserForm10.ListBox1.Column(3, i) = Cell(1, -1)
         UserForm10.ListBox1.Column(4, i) = Cell.Value
        UserForm10.ListBox1.Column(5, i) = 0
        i = i + 1
     End If
        Next Cell    
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tu peux essayer quelque chose comme ceci
    Je préfère le double-click, mais tu peux faire la même chose sur Click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        Dim Recherche As Range
     
        'Fait la recherche de l'item en colonne 6 (Index 5) de la ligne sélectionnée de la Listbox
        Set Recherche = Sheets("Mouvement").Columns("G:H").Find(ListBox1.List(ListBox1.ListIndex, 5), LookIn:=xlValues, LookAt:=xlWhole)
        If Not Recherche Is Nothing Then
            Sheets("Mouvement").Activate
            Range(Recherche.Address).Select  'sélectionne la valeur
        End If
     
        Set Recherche = Nothing
        Unload Me
    End Sub

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

Discussions similaires

  1. Résultats d'une recherche dans Listbox multicolonnes
    Par thomas.c37 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/09/2013, 17h11
  2. [XL-2003] Afficher les résultats d'une recherche dans une listbox
    Par sword56 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/03/2012, 20h24
  3. Remplissage listbox à partir des résultats d'une recherche
    Par typhoon751 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/11/2010, 10h36
  4. [AC-2007] Remplir un report avec le résultat d'une recherche
    Par Rodrigue dans le forum IHM
    Réponses: 3
    Dernier message: 23/11/2009, 07h46
  5. [XP pro] Suppression du résultat d'une recherche
    Par Higgins dans le forum Windows XP
    Réponses: 1
    Dernier message: 17/02/2006, 08h32

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