Bonjour,
Salut Benoit !
Une solution sous forme de fonction personnalisée :
Function LISTERSI(Plg As Range, Crit As String)
Dim Lst(), i%, j%
Application.Volatile
If Plg.Columns.Count <> 2 Then listesi = CVErr(xlErrName): Exit Function
With Plg
ReDim Lst(.Rows.Count)
For i = 1 To .Rows.Count
If .Cells(i, 2) = Crit Then
Lst(j) = .Cells(i, 1): j = j + 1
End If
Next i
End With
ReDim Preserve Lst(IIf(j > 0, j - 1, 0))
Select Case j - 1
Case 0: LISTERSI = Lst(0)
Case Else: LISTERSI = Join(Lst, " ; ")
End Select
End Function
S'utilise comme une fonction Excel : voir fichier.
Cordialement.
edit : et Salut à Tulipe ! Tu te lances !!! Bravo !
NB- je viens de voir une faute de frappe : listesi au lieu de LISTERSI à la 3e ligne. Rectifié dans le fichier que j'ai remis.
Cette ligne est destinée à afficher une erreur #NOM! si la plage mise en argument ne comporte pas 2 colonnes..