Le problème avec Excel est qu'il gère les données qu'on lui donne à sa sauce.
Lorsque l'on intègre un fichier de données dans Excel, certains séparateurs disparaissent (surtout si on les utilisent pour ventiler les données dans des colonnes différentes de notre onglet Excel.)
Mais il est possible de faire des scripts sans passer par les cellules et donc de faire un traitement de données sans que les cellules ne soient sollicitées.
Pour cela on peut utiliser les formules Excel que l'on utilise d'habitude dans les cellules dans le code VBA. Par exemple on peu utiliser la fonction Substitute. Dans ce cas la on l'appel via la commande application.WorsksheetFunction.Substitute
Un autre avantage est que ce type de process va être beaucoup plus rapide que de charger le fichier dans les cellules Excel pour le modifier ensuite.
Sub Maj_Fichier_Enleve_Guillemets (mon_Excel as Excel.application)
dim OFS as Object
dim mon_fichier as Object
dim fr as string
dim test as string
dim i as long
set OFS=CreateObject("Scripting.filesystemobject")
set mon_fichier = OFS.opentextfile("C:/My Program Files/data1.txt",1,0)
set obj_resultat =OFS.createtextefile("C:/My Program Files/data2.txt")
fr = mon_fichier.readall
test = split(fr,chr(13))
for i=1 to Ubound(test)-1
test(i)=mon_Excel.application.WorsksheetFunction.Substitute(test(i),"""","")
test(i)=mon_Excel.application.WorsksheetFunction.Substitute(test(i),vblf,"")
obj_restultat.write test(i) & vblf
next i
obj_resultat.close
mon_fichier.close
set obj_resultat=nothing
set mon_fichier=nothing
set OFS = nothing
end sub
Ensuite pour lancer ce process, il suffit d'appeler la fonction depuis ThisWorkbook_open.
Ainsi le traitement pourra être lancer lorsque l'on clique sur Excel.