feuilleColis et feuilleSortie sont des sortes d'objets
Ainsi au lieu d'écrire
ThisWorkbook.Sheets("SORTIES").Range("A5")
J'utilise le code (une fois)
Set feuilleSortie = ThisWorkbook.Sheets("SORTIES")
Et ensuite j'utilise
feuilleSortie.Range("A5")
L'intérêt est pour éviter les erreurs et pour changer ultra facilement le nom de feuille. Si un jour tu décides de renommer ta feuille "Sorties", tu n'as qu'à changer qu'une seule zone du code.
Si cette ligne plante
colonneRef = WorksheetFunction.Match(ligne.Cells(1, 1).Value, feuilleSortie.Range("A4:AB4"), 0)
c'est qu'il n'y a pas de correspondance entre la référence que tu as saisie dans la feuille BL et les références disponibles sur la feuille "SORTIES" (plage J4:AB4). Il te manque donc une référence (ou alors elle est mal saisie) dans ta feuille SORTIES