If you just want to launch the first file whose name contains the entered text:
Dim allFiles As IEnumerable(Of String) = Directory.EnumerateFiles("C:\SALES", "*.xls?", SearchOption.AllDirectories)
Dim filePath As String = allFiles.FirstOrDefault(Function(f) f.IndexOf(TextBox_sa.Text, StringComparison.OrdinalIgnoreCase) <> -1)
If filePath Is Nothing Then
MessageBox.Show("File not found")
Else
System.Diagnostics.Process.Start(filePath)
End If
If you want to launch all matching files:
Dim allFiles As IEnumerable(Of String) = Directory.EnumerateFiles("C:\SALES", "*.xls?", SearchOption.AllDirectories)
Dim filePaths As IList(Of String) = allFiles.Where(Function(f) f.IndexOf(TextBox_sa.Text, StringComparison.OrdinalIgnoreCase) <> -1).ToList()
If filePaths.Count = 0 Then
MessageBox.Show("File not found")
Else
For Each filePath As String In filePaths
System.Diagnostics.Process.Start(filePath)
Next
End If