Dois-je faire référence à quelque chose? Comment utiliser ceci:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
J'obtiens une erreur car il ne reconnaît pas ces objets.
Dois-je faire référence à quelque chose? Comment utiliser ceci:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
J'obtiens une erreur car il ne reconnaît pas ces objets.
Réponses:
Dans Excel, vous devez définir une référence à la bibliothèque d'exécution du script VB. Le fichier concerné se trouve généralement à l'adresse\Windows\System32\scrrun.dll
Microsoft Scripting Runtime
'scrrun.dll
fichier seront affichés sous la zone de listeCela peut également être fait directement dans le code si l'accès au modèle d'objet VBA a été activé.
L'accès peut être activé en cochant la case Trust access to the VBA project object model
située dans Fichier> Options> Centre de gestion de la confidentialité> Paramètres du centre de confiance> Paramètres des macros
Pour ajouter une référence:
Sub Add_Reference()
Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
'Add a reference
End Sub
Pour supprimer une référence:
Sub Remove_Reference()
Dim oReference As Object
Set oReference = Application.VBE.ActiveVBProject.References.Item("Scripting")
Application.VBE.ActiveVBProject.References.Remove oReference
'Remove a reference
End Sub
Dans Excel 2013, la chaîne de création d'objet est:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
au lieu du code dans la réponse ci-dessus:
Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Dim fso As Object
Ces types ont d'excellents exemples d'utilisation de l'objet système de fichiers http://www.w3schools.com/asp/asp_ref_filesystem.asp
<%
dim fs,fname
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fname=fs.CreateTextFile("c:\test.txt",true)
fname.WriteLine("Hello World!")
fname.Close
set fname=nothing
set fs=nothing
%>
Après avoir ajouté la référence, j'ai dû utiliser
Dim fso As New Scripting.FileSystemObject
Après avoir importé le runtime de script comme décrit ci-dessus, vous devez faire quelques légères modifications pour le faire fonctionner dans Excel 2010 (ma version). Dans le code suivant, j'ai également ajouté le code utilisé à l'utilisateur pour choisir un fichier.
Dim intChoice As Integer
Dim strPath As String
' Select one file
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
' Show the selection window
intChoice = Application.FileDialog(msoFileDialogOpen).Show
' Get back the user option
If intChoice <> 0 Then
strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Else
Exit Sub
End If
Dim FSO As New Scripting.FileSystemObject
Dim fsoStream As Scripting.TextStream
Dim strLine As String
Set fsoStream = FSO.OpenTextFile(strPath)
Do Until fsoStream.AtEndOfStream = True
strLine = fsoStream.ReadLine
' ... do your work ...
Loop
fsoStream.Close
Set FSO = Nothing
J'espère que cela vous aidera!
Meilleures salutations
Fabio