Bonjour,
Deux types de solutions :
1) Solution macro :
Sub SolutionMacro()
Dim plrech As Range, c As Range, adr$
With ActiveSheet
Set plrech = .UsedRange
Set c = plrech.Find("[", , xlValues, xlPart, xlByRows)
If Not c Is Nothing Then
adr = c.Address
Do
.Cells(c.Row, 8) = c.Offset(, 1)
Set c = plrech.FindNext(c)
Loop While Not c Is Nothing And c.Address <> adr
End If
End With
End Sub
A tester en cliquant sur le bouton Test. Un échantillon plus étoffé permettrait de mieux voir...
2) Solution Fonction personnalisée :
Function SOLUTIONFONCTION(plL As Range, car As String)
Dim c As Range
Application.Volatile
For Each c In plL
If InStr(c.Value, car) Then
SOLUTIONFONCTION = c.Offset(, 1)
Exit Function
End If
Next c
SOLUTIONFONCTION = ""
End Function
Dans ce cas c'est l'emplacement de la fonction qui définit la cellule résultat. La plage ligne de recherche et le caractère à chercher sont fournis en arguments de la fonction.
(Changer les noms de procédure par ceux qui te conviennent...)
Cordialement.