Bonjour,
je cherche à ouvrir un fichier texte avec Excel en VBScript.
Ce fichier texte est une liste d'informations, sur des utilisateurs, séparées par un point virgule.
J'ai bien trouvé un bout de script avec ScriptGuy, mais je n'y comprends rien et a priori le séparateur est une tabulation (chr9).
Ca serai le début d'une réponse mais je veux automatiser la tâche,donc je ne vois pas l'interet d'ouvrir mon fichier texte et de faire un chercher-remplacer de ";" par "tab".
Est-ce qu'une bonne âme pourrait aidé le l'ignare que je suis?
Salut
Pourquoi vouloir faire du VBScript sous Excel alors que tu as déjà le VBA a ta disposition ?
En ce qui concerne l'ouverture de fichier et la lecture de données avec un séparateur quelconque :
- simplement tape "fichier texte excel" dans le moteur de recherche, il y a ce qu'il faut
- ouvre Excel, enregistre une macro pendant que tu fais l'ouverture du fichier texte en choisissant le bon séparateur et le tour est joué : Tu auras le code nécessaire dans le "Visual Basic Editeur" de ton Excel, suffira de modifier quelques paramètres, peut-être.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
'Création d'un tableau contenant les lignes du fichier texte
arrLineFicTxt = FnReadFileTxt(strFicTxt)
'Création du fichier Excel
Call FnWriteExcel(arrLineFicTxt)
Function FnReadFileTxt(ArgFile)
Dim objFso, objFile
Dim arrLineFicTxt
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile(ArgFile, ForReading)
'arrLineFicTxt est un tableau contenant toutes les lignes du .txt
arrLineFicTxt = Filter(Split(objFile.ReadAll,vbCrLf), vbNullString)
objFile.Close
FnReadFileTxt = arrLineFicTxt
Set objFile = Nothing
Set objFso = Nothing
End Function
Function FnWriteExcel(arrLineFicTxt)
Dim objExcel
Dim i, j, NL, strtmp
NL = 1
For i = 0 To UBound(arrLineFicTxt)-1
strtmp = Split(arrLineFicTxt(i), strDelimited)
For j = 0 To UBound(strtmp)
objExcel.Cells(NL,j+1).Value = strtmp(j)
Next
NL = NL + 1
Next
objExcel.Columns("A:Z").Select
objExcel.Selection.Columns.AutoFit
objExcel.Cells(1,1).Select
objExcel.ActiveWorkbook.SaveAs strFicExcel
objExcel.DisplayAlerts = True
objExcel.ScreenUpdating = True
objExcel.Visible = True
MsgBox strFicExcel,,"contrôle"
objExcel.Quit
Set objExcel = Nothing
End Function
objExcel.Cells(NL,j+1).Value peut être remplacé par une fonction pour la présentation.