Etendre un macro de recherche VBA à une plage

Bonjour,

Tout d'abord Sébastien désolé de t'avoir envoyer ma demande en direct... je n'avais pas vu le forum et les post...étant arrivé directement sur la partie cours... je suis pas un crac..alors je copie des bouts de petite Macro pour l'instant que j'essaie d'adapter...

Ma demande : J'essaie d'appliquer le tuto sur la création d'une recherche par champ dans VBA...

La Macro de votre exemple est :

Option Compare Text

Private Sub TextBox1_Change()

Application.ScreenUpdating = False

Range("A2:A24").Interior.ColorIndex = 2

ListBox1.Clear

If TextBox1 <> "" Then

For Ligne = 2 To 24

If Cells(Ligne, 1) Like "*" & TextBox1 & "*" Then

Cells(Ligne, 1).Interior.ColorIndex = 43

ListBox1.AddItem Cells(Ligne, 1)

End If

Next

End If

End Sub

Et je souhaiterais non pas l'appliqué à 22 lignes dans une colonne mais à une plage : L6:NC10... soit colonnes 12 à 367

J'ai adapté comme j'ai pu...ce que j'ai fait fonctionne mais la recherche se fait uniquement dans ma première colonne soit la 12...je voudrais étendre donc aux colonnes jusqu'à 367...Merci de votre aide. Alban.

Salut Alban Cuny,

Il te suffit de rajouter une boucle pour la colonne et de paramétrer le nombre de colonnes selon ton nombre (ici j'ai mis 2, pour l'exemple).

Je t'ai surligné ce que j'ai ajouté ou modifié. Et en pièce jointe le moteur de recherche de Sébastien adapté pour 2 colonnes.

Il ne te reste plus qu'à changer les valeurs de Ligne et de Colonne pour adapter à ta plage.

Private Sub TextBox1_Change()

    Application.ScreenUpdating = False

    Range("A2:B24").Interior.ColorIndex = 2
    ListBox1.Clear

    If TextBox1 <> "" Then
        For ligne = 2 To 24
           For colonne = 1 To 2
                If Cells(ligne, colonne) Like "*" & TextBox1 & "*" Then
                    Cells(ligne, colonne).Interior.ColorIndex = 43
                    ListBox1.AddItem Cells(ligne, colonne)
                End If
            Next
        Next
    End If

End Sub

bonjour,

plus simplement :

Private Sub TextBox1_Change()
    Application.ScreenUpdating = False
    Range("A2:B24").Interior.ColorIndex = 2
    ListBox1.Clear
    If TextBox1 <> "" Then
      For Each o In Range("A2:B24")
         If o.Value Like "*" & TextBox1 & "*" Then
            o.Interior.ColorIndex = 43
            ListBox1.AddItem o.Value
         End If
      Next
    End If
End Sub

A+

Merci,

J'avais tenté une seconde boucle colonne; mais la disposition n'était pas bonne ! Cela fonctionne ! Merci à vous.

Mais je pense que je vais revenir regarder les cours avec attention, c'est vraiment génial, à part enregistré des macros en faisant les scénario ...je ne sais pas trop faire...Mais on se prend vite au jeu. Merci encore.

Alban

Rechercher des sujets similaires à "etendre macro recherche vba plage"