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 :

Faire une recherche dans une liste box depuis un autre Userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut Faire une recherche dans une liste box depuis un autre Userform
    Bonjour à tous,

    Depuis la valeur d'une textbox d'un userform A ( valeur libérale ) je voudrais surligner la ligne contenant la phrase dans la listebox de l'Userform B, sachant qu'elles seront tristement identiques.

    Je crée ma listebox dans mon userform B 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
    22
    23
    24
    25
    Private Sub UserForm_Activate()
         Dim i As Byte
     Dim tata As Integer
     Application.ScreenUpdating = False
     Feuil5.Select
     u = Feuil5.Range("N65536").End(xlUp).Row
         For i = 2 To u
     If Feuil5.Range("O" & i).Interior.ColorIndex = 3 Then
     UserForm3.ListBox1.ColumnWidths = "20;70;250;60;20;110;30"
     ListBox1.AddItem
              tata = ListBox1.ListCount - 1
             ListBox1.List(tata, 0) = Feuil5.Range("A" & i).Value
             ListBox1.List(tata, 1) = Feuil5.Range("B" & i).Value
             ListBox1.List(tata, 2) = Feuil5.Range("C" & i).Value
             ListBox1.List(tata, 3) = Feuil5.Range("H" & i).Value
             ListBox1.List(tata, 4) = Feuil5.Range("I" & i).Value
             ListBox1.List(tata, 5) = Feuil5.Range("J" & i).Value
             ListBox1.List(tata, 6) = Feuil5.Range("P" & i).Value
         End If
         Next
     
     Feuil1.Select
     Application.ScreenUpdating = True
     Label26 = u
     End Sub
    Par exemple si la valeur de ma textbox userform A est : une double portion de rien je voudrais que la ligne dans la listebox userform B contenant : une double portion de rien soit sélectionnée.

    Merci à vous tous pour vos aides

  2. #2
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour,
    En y pensant rapidement, pas testé, tu pourrais essayer quelque-chose dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    With Sheets("Feuil5")
        NbDonnée1 = .Cells(.Rows.Count, 1).End(xlUp).Row - 1 ' On compte le nombre de données présentes en colonne A par exemple si les données de la listBox1 s'y trouvent
        NbDonnée2 = .Cells(.Rows.Count, 2).End(xlUp).Row - 1 ' On compte le nombre de données présentes en colonne B par exemple si les données de la listBox2 s'y trouvent
    End With
     
    For j=1 to NbDonnée1
           For k =1 to NbDonnée2
                If Userform1.textboxj.Value=Userform2.TextBoxk.Value Then
                 'Ce que tu veux faire
                End if
          Next k
    next j
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Points : 412
    Points
    412
    Par défaut
    Ce que tu peux faire, serait quelque chose du genre :
    Dans ton UserFormA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_Change()
    With UserFormB.ListBox1
        For i = 0 To .ListCount - 1
            If .List(i, [colonne éventuelle]) Like "*" & TextBox1.Text & "*" Then .Selected(i) = True 
        Next i
    End With
    End Sub
    NOTA : si tu veux avoir plusieurs sélections dans ton UserFormB, active le MultiSelect dans les propriétés de la ListBox

    NOTA 2 : Les astérisques "*" remplacent "toute chaine de caractères", donc si tu veux que ça commence par "je" tu écris XXX Like "je*", si tu veux que ça finisse par "je" : XXX Like "*je" ou dans le cas de ce que je t'ai écrit, si tu veux que ça contienne "je" : XXX Like "*je*"

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/06/2012, 16h13
  2. Réponses: 8
    Dernier message: 28/11/2011, 11h40
  3. Réponses: 7
    Dernier message: 25/02/2011, 13h06
  4. 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
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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