Macro de recherche d'une feuille vers une autre

Bonjour,

j'ai trouvé sur ce site une formidable macro de recherche.

Je l'ai modifié pour mes besoins, cela fonctionne bien dans la même feuille.

Sub TextBox1_Change()

ListBox1.Clear
ListBox2.Clear

 If TextBox1 <> "" Then
        For ligne = 2 To 200
    If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then

        ListBox1.AddItem Cells(ligne, 2)
        ListBox2.AddItem Cells(ligne, 3)
        OffAction = False
    End If
        Next
    End If
End Sub

J'ai essayé de l'adapter à ce que les textBox soient sur une autre feuille et aillent chercher les données sur la Fueille"2"

Sub TextBox1_Change()
ListBox1.Clear
ListBox2.Clear

 If TextBox1 <> "" Then
 Dim Search As Range
 Search = Sheets("2")
    For Search.Ligne = 2 To 200
    If Search.Cells(Ligne, 1) Like "*" & TextBox1 & "*" Then

        ListBox1.AddItem Search.Cells(Ligne, 2)
        ListBox2.AddItem Search.Cells(Ligne, 3)
        OffAction = False
    End If
        Next
    End If
End Sub

Mais j'ai un message d'erreur de compilation.

forum01

MERCI

Bonjour

Le problème pour moi vient de la ligne d'instruction Sheets("2"), si ta feuille s'appelle 2 ça marche, mais pour Feuil2 il faut mettre "Feuil2"

J'avais vu sur un sujet que le nom d'une feuille crée par défaut peut varier en fonction de certains paramètres, ce que je te conseille c'est de la nommer de façon précise ("test" par exemple).

Si tu la nommes test, il faudra écrire Sheets("test")

Également La feuille n'a pas de variable Ligne, ça fait également planter le programme.

Autre erreur, il faut utiliser l'instruction With pour faire ce que tu souhaites, ce que á donnerait avec la feuille test :

Sub TextBox1_Change()
ListBox1.Clear
ListBox2.Clear

 If TextBox1 <> "" Then
 Dim Search As Range
With Sheets("test")
    For Ligne = 2 To 200
    If .Cells(Ligne, 1) Like "*" & TextBox1 & "*" Then

        ListBox1.AddItem .Cells(Ligne, 2)
        ListBox2.AddItem .Cells(Ligne, 3)
        OffAction = False
    End If
        Next
    End If
End With
End Sub

Bonjour Ausecour,

Je viens de mettre ta macro.

Sub TextBox1_Change()
ListBox1.Clear
ListBox2.Clear

 If TextBox1 <> "" Then
 Dim Search As Range
With Sheets("groupe")
    For Ligne = 2 To 200
    If .Cells(Ligne, 1) Like "*" & TextBox1 & "*" Then

        ListBox1.AddItem .Cells(Ligne, 2)
        ListBox2.AddItem .Cells(Ligne, 3)
        OffAction = False
    End If
        Next
    End If
End With
End Sub

Mais il y a un message d'erreur

forum02

Merci

Bonjour writer77, Ausecour,

voici le code VBA corrigé :

Sub TextBox1_Change()
  Dim Search As Range, Ligne As Byte
  ListBox1.Clear: ListBox2.Clear: If TextBox1 = "" Then Exit Sub
  With Worksheets("groupe")
    For Ligne = 2 To 200
      If .Cells(Ligne, 1) Like "*" & TextBox1 & "*" Then
        ListBox1.AddItem .Cells(Ligne, 2)
        ListBox2.AddItem .Cells(Ligne, 3)
        OffAction = False
      End If
    Next Ligne
  End With
End Sub

si ça a marché, n'oublie pas de passer le sujet en résolu : il faut cliquer sur le bouton (coin haut droit du post)

dhany

Ah ben oui il y a deux End If... boulette de ma part désolé

Bonjour dhany, Ausecour,

Tout est Ok pour moi.

Merci de votre aide.

merci pour ton retour ! bonne continuation !

dhany

Rechercher des sujets similaires à "macro recherche feuille"