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 :

Fonction GetOpenFilename et affichage de fichiers préfixés


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut Fonction GetOpenFilename et affichage de fichiers préfixés
    Bonjour à tous,

    Je vous sollicite quelques instants car je suis confronté au problème suivant :

    Je développe une application vba/excel, et j'ai notamment un simple bouton d'import. Ce bouton est censé m'importer un fichier excel, fichier excel qui sera forcément préfixé de la même façon, disons "toto" pour le moment.

    Je sais que pour afficher la fenêtre excel d'ouverture de fichier en vba, il faut faire appel à la fonction getOpenFilename. Dans les paramètres, j'ai vu qu'il était possible d'afficher par exemple tous les fichiers se terminant par exemple par .xls
    Dans mon cas, je souhaiterais à la fois afficher sur cette fenêtre d'ouverture les fichiers xls, mais également préfixés par "toto".

    Cela est-il possible ?

    Merci d'avance de votre aide

  2. #2
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Bonjour,
    Pour répondre, tout va dépendre en fait de ton utilisation.
    Veux-tu réellement ouvrir le fichier selectionné ou non ?

    Getopenfilename --> Cette méthode affiche la boîte de dialogue standard Ouvrir et lit un nom de fichier tapé par l'utilisateur sans réellement ouvrir les fichiers. (source aide microsoft)

    Ta réponse conditionnera ma réponse

  3. #3
    Expert confirmé
    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
    Par défaut
    Salut, utilise plutôt FileDialog si Excel >= 2002, à adapter au 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
    Option Explicit
     
    Sub Lecture()
    Dim FD As FileDialog
    Dim i As Integer
     
        ChDir ThisWorkbook.Path
        Set FD = Application.FileDialog(msoFileDialogFilePicker)
        With FD
            .InitialFileName = "toto*.xls"
            .AllowMultiSelect = True
            .ButtonName = "Sélection fichier(s)"
            .Title = "Sélectionner un ou plusieurs fichier(s)"
        End With
     
        If FD.Show = True Then
            Application.ScreenUpdating = False
     
            For i = 1 To FD.SelectedItems.Count
                'Lire FD.SelectedItems(i)
            Next i
     
            Application.ScreenUpdating = True
        End If
     
        Set FD = Nothing
    End Sub

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut
    Citation Envoyé par casavba Voir le message
    Bonjour,
    Pour répondre, tout va dépendre en fait de ton utilisation.
    Veux-tu réellement ouvrir le fichier selectionné ou non ?

    Getopenfilename --> Cette méthode affiche la boîte de dialogue standard Ouvrir et lit un nom de fichier tapé par l'utilisateur sans réellement ouvrir les fichiers. (source aide microsoft)

    Ta réponse conditionnera ma réponse
    Oui je souhaite l'ouvrir.
    Je me suis mal exprimé. Je sais que la fonction getopenfilename affiche la boite de dialogue standart ouvrir. Dans cette boite de dialogue, on peut afficher que les .xls si on le souhaite (enfin si on l'a paramétré dans la fonction getopenfilename). Pour ma part, je souhaite uniquement proposer à l'utilisateur les fichier .xls dont le nom commence par "toto" par exemple.

  5. #5
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Dans ce cas, ma réponse sera comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub OpenFenet()
    Dim strString As String
    strString = "eco" ' Ouvre la fenêtre en affichant seulement
    'les classeurs dont le nom débute par "eco"
    'Choix du lecteur
    CurDir "c:"
    'Pour sélectionner le répertoire à l'ouverture
    ChDir "c:\"
    Application.Dialogs(xlDialogOpen).Show strString & ".xls"
     
    End Sub

  6. #6
    Expert confirmé
    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
    Par défaut
    re, ou , pour info
    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
    Option Explicit
     
    Sub Lecture()
    Dim FD As FileDialog
    Dim i As Integer
     
        ChDir ThisWorkbook.Path
        Set FD = Application.FileDialog(msoFileDialogFilePicker)
        With FD
            .InitialFileName = "toto*.xls"
            .AllowMultiSelect = False
            .ButtonName = "Sélection fichier"
            .Title = "Sélectionner le fichier"
        End With
     
        If FD.Show = True Then
            Application.ScreenUpdating = False
            Workbooks.Open Filename:=FD.SelectedItems(1)
            Application.ScreenUpdating = True
        End If
     
        Set FD = Nothing
    End Sub
    Voir également http://excel.developpez.com/faq/?page=FenetresExcel

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut
    ça fonctionne parfaitement, merci beaucoup !

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

Discussions similaires

  1. GetOpenFileName- affichage des fichiers
    Par alainGL dans le forum IHM
    Réponses: 4
    Dernier message: 23/10/2007, 14h30
  2. Réponses: 2
    Dernier message: 26/04/2007, 21h50
  3. Fonction c qui compare deux fichiers ???
    Par babyface dans le forum C
    Réponses: 4
    Dernier message: 19/11/2005, 13h07
  4. Problème affichage de fichiers d'un dossier
    Par TommyWeb dans le forum Langage
    Réponses: 4
    Dernier message: 08/10/2005, 15h15
  5. Réponses: 12
    Dernier message: 14/06/2004, 13h06

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