[VBS] Recherche/Séléction de fichier dans un répertoire

kiksora_01 Messages postés 253 Statut Membre -  
Heliotte Messages postés 1561 Statut Membre -
Bonjour,

Je cherche actuellement une commande me permettant, lorsque j'exécute mon script, d'ouvrir une fenêtre de recherche de fichier, et qui me permetrai de sélectionner directement les fichiers sur les quelles je veut agire.
Et par la suite une fentre de destination, qui me permtrait d'enregistrer un fichier de sortie dans un répertoire.
Ma question est elle assez claire ?

Je vous remercie.

1 réponse

  1. Heliotte Messages postés 1561 Statut Membre 92
     
    Bonjour,

    Comme je n'ai pas de précision, je te donne le code en l'état .. Le choix du fichier se fait via une API Windows, à placer dans un module:

    Option Explicit
    
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
        "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type
     
    Sub Openfiledialog()
        Dim OpenFile As OPENFILENAME
        Dim lReturn As Long
        Dim sFilter As String
        '
        OpenFile.lStructSize = Len(OpenFile)
        'OpenFile.hwndOwner = Form1.HWND
        'OpenFile.hInstance = App.hInstance
        sFilter = "AUTOCAD Files (*.txt)" & Chr(0) & "*.txt" & Chr(0)
        OpenFile.lpstrFilter = sFilter
        OpenFile.nFilterIndex = 1
        OpenFile.lpstrFile = String(257, 0)
        OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
        OpenFile.lpstrFileTitle = OpenFile.lpstrFile
        OpenFile.nMaxFileTitle = OpenFile.nMaxFile
        OpenFile.lpstrInitialDir = "G:\TESTS_FORUMS\"
        OpenFile.lpstrTitle = "choix des plans"
        OpenFile.flags = 5
        lReturn = GetOpenFileName(OpenFile)
        If lReturn = 0 Then
            MsgBox "The User pressed the Cancel Button"
        Else
            MsgBox "The user Chose " & Trim(OpenFile.lpstrFile)
        End If
    End Sub

    Certaines parties peuvent être changée, telle que le répertoire de départ ou encore le type de fichier, ici "*.txt".

    Bon amusement.
    0