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

Macros et VBA Excel Discussion :

Selectionner un fichier [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Par défaut Selectionner un fichier
    Bonjour à tous !

    J'aimerais suite à la confirmation d'un MsgBox, ouvrir un explorateur de fichier pour que le User selectionne un fichier particulier. Si possible j'aimerais que cet explorateur s'ouvre sur un emplacement particulier dossierX et c'est cette partie que je n'arrive pas à faire...

    J'ai trouvé ce topic mais c'est sur un UserForm, chose que je n'ai pas faite (est-ce obligatoire?) : http://www.developpez.net/forums/d14...onner-fichier/

    Pour l'instant j'ai ça (pas moi qui l'ai fait):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function ChoisirLeFichierAExecuter() As String
    Dim Msg As String
    Dim Folder As String
     
    Msg = "Sélectionner le nouveau fichier à exécuter à la place de l'ouverture du dossier contenant le zip lors du parcours de la pub de conf :"
    Folder = GetDirectory(Msg)
     
     ChoisirLeFichierAExecuter = Folder
     
    End Function
    Je ne sais pas comment spécifier le dossier sur lequel l'explorateur doit s'ouvrir...

    J'ai regardé la doc de GetDirectory, mais je n'ai pas vu quelque chose dans le genre du code ci-dessus... juste des zzzzz.GetDirectory(x, y)

    Une idée ? ce n'est pas possible avec ça?

  2. #2
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    pour ouvrir explorateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "Explorer.exe " & "C:\votre chemin", 3

  3. #3
    Membre confirmé
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Par défaut
    Je me suis mal exprimée je pense
    En fait je veux que l'utilisateur choisisse un fichier dans une boite de dialogue, et que je récupère l'adresse de ce fichier dans une variable

  4. #4
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    Dim fd As FileDialog
     
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
     
    fd.InitialFileName = "C:\"
    fd.Show
     
    MsgBox fd.InitialFileName
     
    End Sub

  5. #5
    Membre confirmé
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Par défaut
    Le MsgBox renvoie l'adresse du dossier sélectionné, mais j'aimerais également dans l'adresse le nom du fichier que j'ai sélectionné :

    Ex :

    Je choisis dans la boite de dialogue fd le fichier toto.html dans "D:\User\Moi\Documents"
    Le MsgBox renvoie "D:\User\Moi\Documents" et j'aimerais qu'il renvoie "D:\User\Moi\Documents\toto.html"

    Possible?

    Merci pour votre aide

  6. #6
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    Dim fd As FileDialog
     
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
     
    fd.InitialFileName = "C:\"
    fd.Show
     
    MsgBox fd.SelectedItems.Item(1)
     
    End Sub

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008

  8. #8
    Membre confirmé
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Par défaut
    Merci

    Juste une question, j'ai regardé votre lien, mais je n'ai pas vu comment spécifier sur quel dossier la fenêtre va s'ouvrir...
    (je suis peut-être aveugle ou je ne sais pas lire, ce n'est pas impossible )

    J'ai fait :
    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
    Public Function ChoisirLeFichierAExecuter(DossierCible As Variant) As String
        
        Dim Fichier As Variant
     
        'Affiche la boîte de dialogue "Ouvrir"
        Fichier = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
     
        'On sort si aucun fichier n'a été sélectionné ou si l'utilisateur
        'a cliqué sur le bouton "Annuler", ou sur la croix de fermeture.
        If Fichier = False Then
            Fichier = ""
        End If
    
        ChoisirLeFichierAExecuter = Fichier
        
    End Function
    Et en gros j'aimerais que la fenêtre s'ouvre sur le DossierCible que j'ai en paramètre

  9. #9
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    Dim fd As FileDialog
     
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
     
    fd.InitialFileName = "C:\"
    fd.Show
     
    MsgBox fd.SelectedItems.Item(1)
     
    End Sub

  10. #10
    Membre confirmé
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Par défaut
    Merci mais mon problème avec cette solution était le clic sur le bouton annuler dans mon cas.
    Du coup j'avais testé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function ChoisirLeFichierAExecuter(DossierCible As Variant) As String
        Dim fd As FileDialog
     
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
         
        fd.InitialFileName = DossierCible
        fd.Show
        
        If fd.SelectedItems.Item(1) <> "" Then
            ChoisirLeFichierAExecuter = fd.SelectedItems.Item(1)
        Else
            ChoisirLeFichierAExecuter = ""
        End If
    End Function
    Mais ça ne fonctionne pas, pareil avec <> Nothing ou = Nothing ou = "".

    Je trouve la doc sur filedialog pas super claire, je ne comprends pas tout...

    J'ai trouvé le if ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If fd.ShowDialog() = DialogResult.OK Then
    Est ce que ça permet de tester si on a sélectionné quelque chose ou non?

  11. #11
    Membre confirmé
    Femme Profil pro
    M1 MIAGE
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : M1 MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Par défaut
    C'est booon ! après quelques tâtonnements, me voici arrivée à cette solution, que je mets si jamais quelqu'un en a besoin

    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
    Public Function ChoisirLeFichierAExecuter(DossierCible As Variant) As String
        Dim fd As FileDialog
     
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
     
        fd.InitialFileName = DossierCible
        Dim UserClickedOK As Boolean
        UserClickedOK = fd.Show
     
        If UserClickedOK = True Then
            ChoisirLeFichierAExecuter = fd.SelectedItems.Item(1)
        Else
            ChoisirLeFichierAExecuter = ""
        End If
    End Function
    Voili voilou !
    Merci à tous pour votre aide <3

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

Discussions similaires

  1. selectionner un fichier
    Par kirua2150 dans le forum Delphi
    Réponses: 7
    Dernier message: 20/06/2006, 09h03
  2. Réponses: 4
    Dernier message: 28/05/2006, 19h51
  3. [VB6]boite de dialogue pour selectionner un fichier
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/04/2006, 14h57
  4. Réponses: 23
    Dernier message: 05/01/2006, 20h15
  5. Ouverture d'1 fenetre de recherche pr selectionner 1 fichier
    Par kopofb dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 24/11/2005, 15h38

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