Bonjour,
il faut dimensionner ton array arrpos
Sub test()
Dim arr As Variant
Dim arrpos() As Variant
Dim arrmf() As Variant
arrmf = Array("MF12", "MF34", "MF1", "MF2", "MF3", "MF4")
chaine = "MF1;MF2;MF34;"
arr = Split(chaine, ";")
i = Lbound(arr)
ReDim arrpos(LBound(arr) To UBound(arr))
For Each mf In arr
If mf <> "" Then
pos = Application.Match(mf, arrmf)
arrpos(i) = pos
i = i + 1
End If
Next mf
End Sub