Bonjour , je voudrais lire un fichier grâce à l'arborescence de vbscript . J'ai trouvé un code sur le net qui est censé me permettre de selectionner un fichier à partir d'une arborescence . Malheureusement , ce fichier ne me permet que de selectionner un dossier . Lorsque je sélectionne un fichier , ça me ramène une erreur ( qui signale une valeur nulle ) . Pouvez vous m'aider à corriger l'erreur .

Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
 
' Flags for the options parameter
Const BIF_returnonlyfsdirs   = &H0001
Const BIF_dontgobelowdomain  = &H0002
Const BIF_statustext         = &H0004
Const BIF_returnfsancestors  = &H0008
Const BIF_editbox            = &H0010
Const BIF_validate           = &H0020
Const BIF_browseforcomputer  = &H1000
Const BIF_browseforprinter   = &H2000
Const BIF_browseincludefiles = &H4000
 
Dim file
 
Set WshShell = WScript.CreateObject("Shell.Application")
Set oItem = WshShell.BrowseForFolder( 0 , "Select a file or folder to copy", BIF_browseincludefiles , "C:\")
 
name = oItem.ParentFolder.ParseName(oItem.Title).Path
tmp = BrowseForFolder(Title, flags, dir)
file = BrowseForFolder(Title, flags, dir)
If file = "-5" Then 
    WScript.Echo "Not possible to select files in root folder"
Else
    If file = "-1" Then 
        WScript.Echo "No object selected; Cancel clicked"
    Else
        WScript.Echo "Object: ", file
    End If
 
End If
 
 
 
 
 
 
'********************************************************
' File:    FileSelectDialog.vbs (WSH sample in VBScript) 
' Author:  (c) G. Born
'
' Using the shell dialog box to select a folder
' or a file
' Warning: A run-time error occurs if the script
' is executed in Windows 2000 and the user selects
' a file in the root folder of a drive.
'********************************************************
 
file = BrowseForFolder( _
        "Select a file or folder to copy", _
        BIF_returnonlyfsdirs + BIF_browseincludefiles, _
        "")
If file = "-5" Then 
    WScript.Echo "Not possible to select files in root folder"
Else
    If file = "-1" Then 
        WScript.Echo "No object selected; Cancel clicked"
    Else
        WScript.Echo "Object: ", file
    End If
End If 
 
' Using the shell's BrowseForFolder method to
' return the full path to the selected object
' title = Text shown in the dialog box
' flag = One of the values for controlling the 
'        BrowseForFolder behavior
' dir = Preselected directory (can be "")
Function BrowseForFolder(title, flag, dir)
    On Error Resume Next
 
    Dim oShell, oItem, tmp
 
    ' Create WshShell object.
    Set oShell = WScript.CreateObject("Shell.Application")
 
    ' Invoke Browse For Folder dialog box.
    Set oItem = oShell.BrowseForFolder(&H0, title, flag, dir)
    If Err.Number <> 0 Then
        If Err.Number = 5 Then
            BrowseForFolder= "-5"
            Err.Clear
            Set oShell = Nothing
            Set oItem = Nothing
            Exit Function
        End If
    End If
 
    ' Now we try to retrieve the full path.
    BrowseForFolder = oItem.ParentFolder.ParseName(oItem.Title).Path
 
    ' Handling: Cancel button and selecting a drive
    If Err<> 0 Then
        If Err.Number = 424 Then           ' Handle Cancel button.
            BrowseForFolder = "-1"
        Else
            Err.Clear
            ' Handle situation in which user selects a drive.
            ' Extract drive letter from the title--first search
            ' for a colon (:).
            tmp = InStr(1, oItem.Title, ":")
            If tmp > 0 Then           ' A : is found; use two 
                                      ' characters and add \.
                BrowseForFolder = _   
                    Mid(oItem.Title, (tmp - 1), 2) & "\"
            End If
        End If
    End If
 
    Set oShell = Nothing
    Set oItem = Nothing
    On Error GoTo 0
End Function
 
'*** End