We have a number of issues here, first of all i'd like to advocate for the seperation of concerns.
So you're anchoring in a windows form that should display, then you're provinding minitoring handling of folders, that's another concern and Then you appear to be monitoring for csv files using ';' as listseperator and when you find such get the columns and then recreate a csv type file with a firstline of "[Data]" which you then write to a work folder.
Finally you move on the making a new excel workbook and sort of paste into that and store it in your working folder.
Beyond that you're doing a lot of explict handling of GC thread, which really shouldn't be done ... like ever. And tryig to kill excel as a process and stuff. Also shouldn't be necessary.
Therefore i think you should beging by refctoring the identifyable parts from each other. And when you release your interop COM objects, use System.Runtime.InteropServices.Marshal.ReleaseComObject(ObjApplication); after having called .Quit()
My first guess is that between your workbook handling doesn't release timely before you attempt to MoveToHistorian. Do not do any GetProcessByName + Kill stuff, you already have a COM handle so use that, and please do get all your domaine name specifics into using statements instead, you're making all of us cross-eyed trying to read the lines :D
Anyway so getting rid of your COM instance should read after your ObjWorkSheet.SaveAs...
ObjApplication.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(ObjApplication);
ObjListFile.Add(workingfolderpath + "\\c" + file[file.Length - 1]);
MoveToHistorian(workingfolderpath + "\\c" + file[file.Length - 1]);
IMHO: You should really consider refactoring the entire thing, for instance your monitoring of directory could be using a FileSystemWatcher
https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher%28v=vs.110%29.aspx[
^]
Then the entire Excel handling and the usageof temp folders for it's own purposes should also sit in it's own sepearate class and finally your ui could subsribe to notifcations and perhaps own a (seperate?) class with a filesystemwatcher.
Currently you have a small program trying to do a lot at the same time which is unrelated to each other conceptually and then plumbing from apparent debugging like explicitly addressing garbage collector and process lifetime which should be removed.
I'm tempted to provide a rewrite, but i think these advice might just be enough to get you through
cheers!