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

Contribuez Discussion :

ACCESS 2013 - VBA - Besoin d'afficher une fenêtre de dialogue 'OpenFileDialog' sous VBA


Sujet :

Contribuez

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Conseil en Systèmes et Logiciels Informatiques
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Conseil en Systèmes et Logiciels Informatiques
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 6
    Points
    6
    Par défaut ACCESS 2013 - VBA - Besoin d'afficher une fenêtre de dialogue 'OpenFileDialog' sous VBA
    Dans le cadre d'un projet que je réalise, j'ai besoin de faire choisir à l'utilisateur final un fichier. Sous Vb.net, il s'agit de l'objet OpenFileDialog...

    Mais sous vba, comment faire ????

    Merci de vos éclaircissements...

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, une solution parmi d'autres ( ici pour des fichiers du style : Liste*.xls* ), à adapter à ton contexte.

    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
    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
    Option Explicit
     
    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
     
    Private Function SelectionFichier(Path As String, Optional Filtre As String = "*.*") As String
    Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
        OpenFile.lStructSize = Len(OpenFile)
        sFilter = "Fichiers Excel (" & Filtre & ")" & Chr(0) & Filtre & Chr(0)
        With OpenFile
            .lpstrFilter = sFilter
            .nFilterIndex = 1
            .lpstrFile = String(257, 0)
            .nMaxFile = Len(OpenFile.lpstrFile) - 1
            .lpstrFileTitle = OpenFile.lpstrFile
            .nMaxFileTitle = OpenFile.nMaxFile
            .lpstrInitialDir = Path
            .lpstrTitle = "Fichiers à ouvrir"
            .flags = 0
        End With
        lReturn = GetOpenFileName(OpenFile)
        If lReturn = 0 Then
        Else
            SelectionFichier = Trim$(Left$(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, Chr$(0)) - 1))
        End If
    End Function
     
    Sub Tst()
    Dim Fichier As Variant
    Dim sChemin As String, Filtre As String
        sChemin = ThisWorkbook.Path & "\"
        Filtre = "Liste*.xls*"
        Fichier = SelectionFichier(sChemin, Filtre)
        DoEvents
        If Len(Fichier) > 0 Then Workbooks.Open Fichier
    End Sub
    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
    23
    24
    25
    26
    27
    28
    29
    30
    Option Explicit
     
    Sub SelFichier()
    Dim Fichier As Variant, i As Long
     
        ChDir ThisWorkbook.Path & "\"
        Fichier = Application.GetOpenFilename("Texte,*.txt", 1, _
                                              "Sélectionner un fichier", , MultiSelect:=False)
        If TypeName(Fichier) = "Boolean" Then Exit Sub
     
        ' ....
     
    End Sub
     
    Sub SelFichier_02()
    Dim sChemin As String
        sChemin = ThisWorkbook.Path
        With Application.FileDialog(msoFileDialogFilePicker)
            .InitialFileName = sChemin & "\"
            .Title = "Sélectionner un Fichier"
            .AllowMultiSelect = False
            .ButtonName = "Sélection Fichier"
            .Filters.Clear
            .Filters.Add "Excel", "*.xls", 1
            .Show
            If .SelectedItems.Count > 0 Then
                ' ......
            End If
        End With
    End Sub
    Autrement voir dans les FAQs et Tutoriels ainsi que dans l'aide en ligne.

    PS : ce n'est pas le bon forum ..... plutôt ici.

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/11/2007, 23h11
  2. afficher une fenêtre dans le thread
    Par LN(a) dans le forum Langage
    Réponses: 8
    Dernier message: 21/12/2005, 13h21
  3. Afficher une Fenêtre MDI à partir d'une DLL
    Par FredericB dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/12/2005, 16h58
  4. Afficher une fenêtre d'informations qui donne l'impression de se détâcher
    Par jean_bobi dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 25/09/2005, 15h31
  5. Réponses: 1
    Dernier message: 16/02/2005, 12h04

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