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 :

Récupérer nom des fichiers présent dans un dossier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    technicien labo
    Inscrit en
    Février 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : technicien labo

    Informations forums :
    Inscription : Février 2016
    Messages : 116
    Par défaut Récupérer nom des fichiers présent dans un dossier
    Bonjour à tous ,

    Voila j'ai creer un code mais je bloque pour un import automatique je vous explique :

    j'ai un formulaire ci dessous :
    Nom : Sans titre 2.jpg
Affichages : 1749
Taille : 27,6 Ko
    Private Sub importer_Click()

    et pour l'instant le code en cliquant sur importer alimente la zone de liste à coter avec les chemin de fichier que je choisi manuellement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fichierchoisi = Application.GetOpenFilename("Fichier Excel (*.xls),*.xls", , "Séléctionner un fichier Excel")
     
    If (LCase(fichierchoisi) <> "faux" And fichierchoisi <> "0") Then
        liste_fichier.AddItem (fichierchoisi)
    End If
    End Sub
    l'objectif que je cherche a avoir c'est qu'en cliquant sur importer la liste de fichier soit alimenter en scannant le dossier et les sous dossier du repertoire ou ce trouve le classeur executant en ne remontant que les fichier dont le nom compte un partie de texte spécifique.

    Merci d'avance pour votre aide .

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par amandon Voir le message
    Bonjour,

    Regardez ce tuto de Christophe WARIN, notamment la partie concernant la recherche récursive : https://warin.developpez.com/access/fichiers/#LIII-A

  3. #3
    Membre confirmé
    Homme Profil pro
    technicien labo
    Inscrit en
    Février 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : technicien labo

    Informations forums :
    Inscription : Février 2016
    Messages : 116
    Par défaut
    visiblement la fonction file search n'est plus disponible dans les version supérieur a 2007

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par amandon Voir le message
    Si j'ai bien compris ce que vous souhaitez faire, c'est le principe de la recherche récursive qu'il faut retenir.
    La procédure Explorer au paragraphe III-A est à adapter pour aller chercher non pas un fichier mais une série de fichiers Excel.

  6. #6
    Membre confirmé
    Homme Profil pro
    technicien labo
    Inscrit en
    Février 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : technicien labo

    Informations forums :
    Inscription : Février 2016
    Messages : 116
    Par défaut
    j'ai reussi à faire ceci

    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 importer_Click()
    Dim Chemin As String, fichierchoisi As String
     Dim i As Integer
      Chemin = ActiveWorkbook.Path & "\"
     
        'Boucle sur tous les fichiers xls du répertoire.
        fichierchoisi = Dir(Chemin & "*amplicon.cov*" & "*.xls")
        'Utilisez la syntaxe suivante pour boucler sur tous les types de fichiers :
        'Fichier = Dir(Chemin & "*.*")
        Do While fichierchoisi <> ""
         i = i + 1
        liste_fichier.AddItem (fichierchoisi)
        fichierchoisi = Dir
    Loop
    MsgBox fichierchoisi
    End Sub
    mais il ne recherche pas dans les sous dossier et je ne sais pas ou mettre .fullname pour qu'il me renvoie le nom complet du fichier avec chemin

  7. #7
    Membre confirmé
    Homme Profil pro
    technicien labo
    Inscrit en
    Février 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : technicien labo

    Informations forums :
    Inscription : Février 2016
    Messages : 116
    Par défaut
    je n'arrive pas a adapter ce que vous me proposez en III.A avec ce que j'ai fait

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par amandon Voir le message
    Une variante :
    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
     
    Option Explicit
     
    Private Fso As Object, Liste As Variant, IndexListe As Integer
     
    Sub ListerLesFichiers()
     
    Dim Debut As String
     
        Debut = ActiveWorkbook.Path ' A adapter
        Set Fso = CreateObject("Scripting.FileSystemObject")
        IndexListe = 0
        ReDim Liste(1, IndexListe)
        ListeRecursive Fso.GetFolder(Debut), ".xls"
     
        Application.DisplayAlerts = False
        If IndexListe Then
           For IndexListe = LBound(Liste, 2) To UBound(Liste, 2)
               Debug.Print "Fichier : " & Liste(0, IndexListe) & ", répertoire : " & Liste(1, IndexListe)
           Next
        End If
        Application.DisplayAlerts = True
     
        Set Fso = Nothing
     
    End Sub
     
    Sub ListeRecursive(ByVal f As Object, ByVal ChaineATrouver As String)
     
    Dim Sf As Object, Fich As Object
     
        For Each Sf In f.SubFolders
            For Each Fich In Fso.GetFolder(Sf).Files
                If InStr(1, LCase(Fich.Name), ChaineATrouver, vbTextCompare) > 0 Then
                    ReDim Preserve Liste(1, IndexListe)
                    Liste(0, IndexListe) = Fich.Name
                    Liste(1, IndexListe) = Fich.Path
                    IndexListe = IndexListe + 1
                End If
            Next Fich
            ListeRecursive Fso.GetFolder(Sf), ChaineATrouver
        Next Sf
     
    End Sub
    Dernière modification par Invité ; 01/03/2020 à 17h46.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 17/11/2011, 16h37
  2. Réponses: 1
    Dernier message: 15/05/2009, 09h31
  3. Recherche fichier dont on connait une partie du nom
    Par kluh dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/11/2008, 08h31
  4. Réponses: 4
    Dernier message: 27/09/2007, 15h05
  5. Réponses: 2
    Dernier message: 18/01/2007, 21h05

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