Rechercher dans une plage

Bonjour le smais,

ci-dessous un code qui cherche un mot clé, saisi dans une textbox, dans une plage. Une fois trouvé, il surligne lla cellule et masque les lignes non colorées.

Mon problème est que si le mot est en colonne B il ne se passe rien....

Pourriez vous m'éclairer ?

Private Sub CommandButton2_Click() 'bouton "Valider"
Dim pl As Range 'déclare la variable pl (Plage)
Dim r1 As Range
Dim pa1 As String
Dim cel As Range 'déclare la variable cel (CELlule)

Application.ScreenUpdating = False 'masque les changements à l'écran

Set pl = Range("A4:B" & Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage pl
'si la ComboBox1 n'est pas vide, définit la recherche r1
If Me.TextBox1 <> "" Then Set r1 = pl.Find(Me.TextBox1.Value, , xlValues, xlPart)
If Not r1 Is Nothing Then 'condition : si il existe au moins une occurrence de la recherche r1
    pa1 = r1.Address 'définit l'adresse de la première occurrence trouvée
    Do 'exécute
        Range(r1, r1.Offset(0, 0)).Interior.ColorIndex = 6 'colore la ligne de jaune
        Set r1 = pl.FindNext(r1) 'redéfinit la recherche r1 (occurrence suivante)
    Loop While Not r1 Is Nothing And r1.Address <> pa1 'boucle tant qu'il existe des occurrences ailleurs qu'en pa1
End If 'fin de la condition

For Each cel In pl.Resize(, pl.Columns.Count - 1)  'boucle sur toutes les cellule de la plage pl dans la colonne A
    If cel.Interior.ColorIndex = xlNone Then Rows(cel.Row).Hidden = True 'si la cellule n'est pas colorée, masque la ligne de la cellule
Next cel 'prochaine celluile de la boucle
Range("A1").Select 'sélectionne la cellule A1

Application.ScreenUpdating = True 'affiche les changements à l'écran
Unload Me 'vide et ferme l'UserForm
End Sub

Up

Bonjour,

Set pl = Range("A4:B" & Cells(Application.Rows.Count, "B").End(xlUp).Row)

Rechercher des sujets similaires à "rechercher plage"