Bonjour,
tu as conscience que la plage que tu indiques ne contient que des nombres et des valeurs d'erreur ?
Ca n'aide pas à la compréhension. Il faut fournir un fichier de qq lignes (pas besoin de 5 Mo) et des situations qui permettent de travailler.
Ceci dit un essai de fonction personnalisée.
Alt+F11 pour aller dans VBE
Clic-droit sur le projet du classeur à gauche et 'Inserer un module'
Dans ce module copier-coller ces lignes :
Function Medok(feuille As String, plage As Range) As Long
Dim c1 As Range, c2 As Range, datas, i As Long
Medok = 0
datas = plage.Value
For i = 2 To UBound(datas, 2) Step 2
If Not IsError(datas(1, i)) Then
If datas(1, i) <> "" Then
Set c2 = Sheets(feuille).Columns(2).Find(datas(1, i), LookIn:=xlValues, lookat:=xlWhole)
If Not c2 Is Nothing Then Medok = 1: Exit For
End If
End If
Next i
End Function
Sur la feuille en EW4 :
=Medok("Hypolipémiant"; BA4:EV4)
J'ai essayé de la faire rapide mais il y a beaucoup de recherches et pour 4000 lignes il faudra un peu de temps.
Si tu dois te servir de la fonction pour autre chose je ne teste que une cellule /2 à partir de la 2nde.
Il faudra modifier For i = 2 To UBound(datas, 2) Step 2 si tu veux tester toutes les cellules de la plage.
eric