Function Priorite(cell As Range) As Variant
Dim txt As String
' Récupérer le contenu de la cellule, supprimer les retours à la ligne
txt = Replace(cell.Value, vbLf, " ")
' Condition 1 : si l'un des trois textes prioritaires est présent
If InStr(txt, "PAT-012634/A - Maison (Released)") > 0 _
Or InStr(txt, "PAT-018218/A - Planeur (Advanced)") > 0 _
Or InStr(txt, "PAT-008218/A - Avion (Anticipate)") > 0 Then
Priorite = 1
Exit Function
End If
' Condition 2 : si "PAT-011436/A - Retroplanning (Working)" ET "PAT-011400/A - Moto (Working)" sont présents
If InStr(txt, "PAT-011436/A - Retroplanning (Working)") > 0 _
And InStr(txt, "PAT-011400/A - Moto (Working)") > 0 Then
Priorite = 1
Exit Function
End If
' Condition 3 : si "PAT-011400/A - Moto (Working)" seul
If InStr(txt, "PAT-011400/A - Moto (Working)") > 0 Then
Priorite = 1
Exit Function
End If
' Condition 4 : si "PAT-011436/A - Retroplanning (Working)" seul
If InStr(txt, "PAT-011436/A - Retroplanning (Working)") > 0 _
And Len("PAT-011436/A - Retroplanning (Working)") < Len(txt) Then
Priorite = ""
Exit Function
ElseIf InStr(txt, "PAT-011436/A - Retroplanning (Working)") > 0 Then
Priorite = 0
Exit Function
End If
' Condition 5 : si "PAT-010102/B - Bus (Cancelled)" ou "PAT-012760/A - Tente (Obsolete)" présents
If InStr(txt, "PAT-010102/B - Bus (Cancelled)") > 0 _
Or InStr(txt, "PAT-012760/A - Tente (Obsolete)") > 0 Then
Priorite = 0
Exit Function
End If
' Par défaut, vide
Priorite = ""
End Function