darthotof
Messages postés1Date d'inscriptionvendredi 11 juillet 2008StatutMembreDernière intervention11 juillet 2008
-
11 juil. 2008 à 15:59
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
11 juil. 2008 à 21:04
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?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 juil. 2008 à 16:24
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.