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 :

UserForm de recherche de fichiers [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut UserForm de recherche de fichiers
    Salut a tous

    Je viens vers vous car je voudrais créer un formulaire à l'aide d'un UserForm afin de récupérer l'adresse d'un fichier Excel.

    J'ai déjà un truc un peu du même style mais pour rechercher des dossiers à l'aide d'un Exporateur Windows.
    Voici le code que j'ai pour une recherche de dossiers :
    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
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
     
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
        ByVal lpString2 As String) As Long
     
    Private Type BrowseInfo
        hWndOwner As Long
        pIDLRoot As Long
        pszDisplayName As Long
        lpszTitle As Long
         ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
    Private Sub CommandButton1_Click()
        Dim lpIDList As Long
        Dim strBuffer As String
        Dim strTitre As String
        Dim tBrowseInfo As BrowseInfo
        Dim SelectFolder As String
        Dim Handle As Long
     
    strTitre = Titre
    With tBrowseInfo
        .hWndOwner = Handle
        .lpszTitle = lstrcat(strTitre, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
     
    lpIDList = SHBrowseForFolder(tBrowseInfo)
     
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
        Recherche.TextBox1.Text = SelectFolder & "\"
    End Sub
    En fait je voudrais la même chose mais pour une recherche de Fichiers

    Si quelqu'un a la solution SVP
    Merci d'avance

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour un exemple avec la gestion du bouton annuler qui défini un chemin par default (on fait sans doute plus simple pour le gérer)
    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
     
    Sub ChoixRepertoire(chemin As String)
    Dim objShell As Object, objFolder As Object, oFolderItem As Object
     
     
     Set objShell = CreateObject("Shell.Application")
     Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
     
     On Error GoTo gesterr
     
     Set oFolderItem = objFolder.Items.Item
     chemin = oFolderItem.Path
     ThisWorkbook.Worksheets("DAT_DATA").Cells(2, 1) = chemin & "\"
     Exit Sub
    gesterr::
    chemin = "C:\SamWork"
    ThisWorkbook.Worksheets("DAT_DATA").Cells(2, 1) = chemin & "\"
    End Sub

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Hello
    Au début tu dis...
    Citation Envoyé par FCL31 Voir le message
    je voudrais créer un formulaire à l'aide d'un UserForm afin de récupérer l'adresse d'un fichier Excel.
    D'où ma question : Tu connais le nom du fichier et tu voudrais connaître l'adresse ?
    Seulement après tu dis :
    Voici le code que j'ai pour une recherche de dossiers :
    En fait je voudrais la même chose mais pour une recherche de DOSSIERS
    Voui ? Ben tu l'as ! Ou alors repose ta question mais visiblement Krovax a lui aussi compris autre chose que moi

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Il faut dire que je suis allé un peu vite en lisant sont code
    J'ai essentiellement compris qu'il voulais sélectionner un dossier (il faut dire que je suis loin de maitriser les librairies du shell32)
    Du coup je vais au plus simple

  5. #5
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Toutes es excuse je c'est une recherche de Fichiers (.xls) que je veux faire

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par l'autre
    c'est une recherche de Fichiers (.xls) que je veux faire
    C'est bien ce qu'il me semblait
    Alors regarde ici, tu as ça jusqu'à son ouverture.
    Bonne lecture et bon courage.

  7. #7
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    regarde ici, tu as ça jusqu'à son ouverture.
    C'est impeccable : c'est se que je voulais

    Toutefois, il y a un truc qui ne me va pas trop (sinon se serrai pas marrant )

    Je voudrais pourvoir ouvrir les fichiers affichés dans la Listbox dans un même classeur

    Comment faire ??

    Comme ce sont des fichiers "xls" que je veux, je pense que c'est par là :
    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
    Sub ouvrir()
    Dim fs, FichName As Variant, OnFaitQuoi As Byte
        Set fs = CreateObject("Scripting.FileSystemObject")
        Select Case LCase(Right(Me.ListBox1, 3))
            Case "xls", "xla", "xlt"
                OnFaitQuoi = MsgBox("""OUI"" Créer un nouvelle instance d'Excel" & vbCr & _
                    """NON"" ouvre le classeur dans cette application" & vbCr & _
                    """ANNULER"" = Abandon", vbYesNoCancel, "OUVERTURE DU FICHIER")
                Select Case OnFaitQuoi
                    Case 6
                        NouvelleSessionExcel Me.ListBox1
                    Case 7
                        Application.Workbooks.Open Me.ListBox1
                    Case 2
                        Exit Sub
                End Select
    Mais je sais pas trop quoi ni comment modifier

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

Discussions similaires

  1. [Système][fichier] recherche de fichier dans tout le disque dur
    Par helonear dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 15/12/2010, 11h43
  2. Recherche dans fichiers
    Par Tchinkatchuk dans le forum Linux
    Réponses: 2
    Dernier message: 17/06/2005, 11h32
  3. Réponses: 14
    Dernier message: 25/10/2004, 22h33
  4. batch de recherche de fichier ...
    Par Félia dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2004, 16h54
  5. Recherche support fichier
    Par sydiop dans le forum Informix
    Réponses: 5
    Dernier message: 18/03/2004, 11h15

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