IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Equivalent de BrowseForFolder pour les fichiers [FAQ]


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 29
    Points
    29
    Par défaut Equivalent de BrowseForFolder pour les fichiers
    Bonjour,
    Je souhaite faire apparaître dans un script VBS une boite de sélection graphique de fichier, telle que celle fournit pour les dossiers par la fonction BrowseForFolder.
    J'ai bien essayé de détourner l'utilisation de cette fonction en faisant apparaître les fichiers avec l'option BrowseIncludeFiles mais ça ne fonctionne pas et me sort une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le fichier spécifié est introuvable.
    sur la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objFichier = objShell.BrowseForFolder(&H0&, "Choisir le fichier", conReturnOnlyFSDirs + conNoNewFolderButton + conBrowseIncludeFiles)
    Voici mon code :
    Code : 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
    Function funcSelectionFichier
       Const conReturnOnlyFSDirs = &H1
       Const conNoNewFolderButton = &H200
       Const conBrowseIncludeFiles = &H4000
     
       Dim objShell, objFichier, objFichierChoisi
     
       Set objShell = CreateObject("Shell.Application")
       Set objFichier = objShell.BrowseForFolder(&H0&, "Choisir le fichier", conReturnOnlyFSDirs + conNoNewFolderButton + conBrowseIncludeFiles)
     
       If objFichier Is Nothing Then
          MsgBox "Vous n'avez rien sélectionné", vbCritical, "Abandon"
          Wscript.Quit
       Else
          Set objFichierChoisi = objFichier.Self
          funcSelectionFichier = objFichierChoisi.Path
       End If
     
       Set objShell = Nothing
       Set objFichier = Nothing
       Set objFichierChoisi = Nothing
    End Function
    Existe-t-il une fonction pour les fichiers directement implémentée ? ou bien faut-il que je modifie mon code (si oui, en quoi ?) ?
    Par avance, merci.

    Un lien sur la FAQ ici et 2 liens sur MSDN pour aider :
    BrowseForFolder
    BrowseInfo (les options)

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047

  3. #3
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    salut,
    comme son nom l'indique BrowseForFolder n'est pas équivalent à BrowseForFiles
    deux solutions:
    - écrire ou trouver un composant activex qui saura faire le boulot
    ex: http://www.jsware.net/jsware/scripts.php3
    - attaquer directement la comdlg32.dll "comme les grands"
    voir l'exemple dans les contributions: http://www.developpez.net/forums/sho...d.php?t=333644
    (profites-en c'est ma seule contrib à ne pas avoir été délestée...)

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    C'est bien ce que je pensais, ça va être bien compliqué pour l'utilisation que je vais en avoir de ce script... Il est dommage qu'ils implémentent une sélection graphique de dossier mais pas de fichier... Tant pis, je vais me débrouiller autrement . En tout cas, merci beaucoup pour vos réponses

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    voici une méthode que j'ai trouvé sur le net et qui me convient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objDialog=CreateObject("SAFRCFileDlg.FileOpen")
    ObjDialog.OpenFileOpenDlg
    OpenFile=objDialog.FileName


    Pour récupérer le nom du fichier selectionné, tu fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strFileName=objDialog.FileName
    MsgBox strFileName
    en espérant que ca puisse t'aider.
    A++

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    la classe ! Pile poil ce qu'il me fallait !! Merci beaucoup !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Je me permets de relancer ce post, je souhaite également récupérer sinon un fichier au moins son nom, afin de l'incorporer dans une variable sans avoir à le taper.
    Quand je prends le post ci-avant
    Salut,

    voici une méthode que j'ai trouvé sur le net et qui me convient :

    Code :

    Set objDialog=CreateObject("SAFRCFileDlg.FileOpen")
    ObjDialog.OpenFileOpenDlg
    OpenFile=objDialog.FileName



    Pour récupérer le nom du fichier selectionné, tu fais ca :

    Code :

    strFileName=objDialog.FileName
    MsgBox strFileName

    en espérant que ca puisse t'aider.
    et que je mets le code à ma sauce, je me retrouve avec le message suivant "erreur d'execution 429" "Un composant ActiveX ne peut pas créer l'objet".


    Comment contourner ce problème d'avance merci! Peut-être que cela n'est pas réalisable en VBA sous Excel?

    Cordialement

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    J'ai résolu le problème avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set monraster_src = CreateObject("Shell.Application")
     
    'Ouverture de la boîte de dialogue pour sélectionner le fichier voulu
    Set objFichier = monraster_src.BrowseForFolder(&H0&, "Veuillez indiquer le chemin d'accès au fichier " & descrFichier & " à importer", &H4000&)
    Désolé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSD] Equivalent du <choice> pour les attribut
    Par BigOne55 dans le forum Valider
    Réponses: 6
    Dernier message: 14/03/2014, 19h24
  2. Equivalant TFileStream pour les fichier texte
    Par bubulemaster dans le forum Débuter
    Réponses: 5
    Dernier message: 28/01/2010, 10h46
  3. [Free Pascal] Equivalent de FileSize pour les fichiers texte
    Par richard dans le forum Free Pascal
    Réponses: 4
    Dernier message: 08/12/2008, 22h41
  4. [CSV] Détecter le séparateur pour les fichiers CSV
    Par JavaEli dans le forum Langage
    Réponses: 1
    Dernier message: 30/11/2005, 23h42
  5. [Excel] séparateur pour les fichiers csv
    Par drinkmilk dans le forum Excel
    Réponses: 2
    Dernier message: 27/08/2005, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo