Ok, j'ai trouvé ma réponse. Merci de m'avoir laissé publier ma question ici. Ensuite, je poste un code qui fonctionne très bien. La seule chose qui reste incomplète est que je ne peux pas ajouter de filtres pour les types de fichiers comme * .CATParts ou * .CATProducts dans ce code. Mais ça marche déjà pour moi.
Function SelectFile()
' File Browser via HTA
' Author: Rudi Degrande, modifications by Denis St-Pierre and Rob van der
Woude
' Features: Works in Windows Vista and up (Should also work in XP).
' Fairly fast.
' All native code/controls (No 3rd party DLL/ XP DLL).
' Caveats: Cannot define default starting folder.
' Uses last folder used with MSHTA.EXE stored in Binary in
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32].
' Dialog title says "Choose file to upload".
' Source: https://social.technet.microsoft.com/Forums/scriptcenter/en-
US/a3b358e8-15ae-4ba3-bca5-ec349df65ef6/windows7-vbscript-open-file-dialog-
box-fakepath?forum=ITCG
Dim objExec, strMSHTA, wshShell
SelectFile = ""
' For use in HTAs as well as "plain" VBScript:
strMSHTA = "mshta.exe ""about:" & "<" & "input type=file id=FILE>" _
& "<" & "script>FILE.click();new
ActiveXObject('Scripting.FileSystemObject')" _
&
".GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);" & "<" &
"/script>"""
' For use in "plain" VBScript only:
' strMSHTA = "mshta.exe ""about:<input type=file id=FILE>" _
' & "<script>FILE.click();new
ActiveXObject('Scripting.FileSystemObject')" _
' &
".GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);
</script>"""
Set wshShell = CreateObject("WScript.Shell")
Set objExec = wshShell.Exec(strMSHTA)
SelectFile = objExec.StdOut.ReadLine()
Set objExec = Nothing
Set wshShell = Nothing
End Function
Amitiés
Est-ce tout le code que vous exécutez? Ce type de problème se produit généralement lors de l'invocation d'une méthode à partir d'une variable typée. Simple en le déclarant comme une variante au lieu de cela, le type réel corrige le problème. – AugustoQ
Merci, je sais que l'erreur "Fonction ou interface marquée comme restreinte ..." pourrait être résolue comme vous le dites, mais cela n'a pas fonctionné. Merci encore! J'ai déjà résolu le problème. –