Sub Test()
Dim Chaine As String
Dim Pos1 As Integer
Dim Pos2 As Integer
Chaine = "xxxxx-abc edsy-gdte_102/ dfotdfecbhd_12/2018 sit n°1"
Pos1 = InStr(Chaine, "-")
Pos2 = InStrRev(Chaine, "_")
MsgBox Mid(Chaine, Pos1 + 1, Pos2 - Pos1 - 1)
End Sub
en Vba ca marche très bien et j'ai modifier ton code avec cette façon
Sub Test()
Dim Chaine As String
Dim Pos1 As Integer
Dim Pos2 As Integer
Chaine = Range("a1").Value
Pos1 = InStr(Chaine, "-")
Pos2 = InStrRev(Chaine, "_")
Range("b2").Value = Mid(Chaine, Pos1 + 1, Pos2 - Pos1 - 1)
End Sub