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 :

Retrouver l'adresse de documents en fonction de leur nom


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    BI
    Inscrit en
    Mars 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI

    Informations forums :
    Inscription : Mars 2019
    Messages : 30
    Par défaut Retrouver l'adresse de documents en fonction de leur nom
    Hello les chauds du VBA,

    J'ai beau essayer de faire avec les infos disponibles sur le FAQ Excel https://excel.developpez.com/faq/?page=FichiersDir je n'y arrive pas.

    Ce que cherche à faire c'est :

    -A partir d'une liste de référence en string sur excel (2000 environ)

    -Rechercher si cette string existe comme une partie d'un nom de document dans le dossier X et tous les sous-dossiers.

    -Résultat : lister les adresses des documents en face des références

    Exemple : Une des 2000 références est "ETFS3", je voudrais scanner tous les dossiers (et sous-dossiers) du répertoire X et écrire dans la liste en face de "ETFS3" son adresse genre "C:\X\sousdossier3\ALLOCATED ETFS3 ITEMS.doc"

    Donc en gros retrouver ou sont des documents à partir d'une partie de leur nom.

    Merci d'avance à ceux qui pourront me donner des pistes.

    Alex

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 415
    Par défaut
    Bonjour,

    Le code trouvé suivant, trouvé sur le net, devrait être facile à adapter:
    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
    Option Explicit
     
    '--- Nécessite d'activer la référence "Microsoft Scripting RunTime"
     
    Sub Liste_fichiers_deDossier_et_deSousDossier()
        Dim Dossier As String
        Dossier = "D:\Tests"          'à adapter
        ListeFichiers Dossier
    End Sub
     
    Sub ListeFichiers(Repertoire As String)
        'Nécessite d'activer la référence "Microsoft Scripting RunTime"
        Dim Fso As Scripting.FileSystemObject
        Dim SourceFolder As Scripting.Folder
        Dim SubFolder As Scripting.Folder
        Dim FileItem As Scripting.File
        Dim i As Long
     
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Set SourceFolder = Fso.GetFolder(Repertoire)
     
        i = Cells(Rows.Count, 1).End(xlUp).Row + 1      '--- première ligne vide dans colonne 1 = A
     
        For Each FileItem In SourceFolder.Files
            Cells(i, 1) = FileItem.path                 '--- pour premiers tests
            '--- vérification sur le nom
            'If InStr(FileItem.Name, TexteCherché) > 0 Then
                '--- code texte trouvé
                'Cells(i, 1) = FileItem.path             '--- dossier + nom
                'Cells(i, 1) = FileItem.ParentFolder     '--- dossier
                'Cells(i, 2) = FileItem.Name             '--- nom
                'Cells(i, 3) = FileItem.DateCreated
                'Cells(i, 4) = FileItem.DateLastAccessed
                'Cells(i, 5) = FileItem.DateLastModified
                i = i + 1
            'End If
        Next FileItem
     
        For Each SubFolder In SourceFolder.SubFolders
            ListeFichiers SubFolder.path
        Next SubFolder
     
    End Sub
    Cordialement.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2014, 15h09
  2. Réponses: 7
    Dernier message: 30/08/2013, 09h09
  3. [XL-2007] Comment lier différents classeur en fonction de leur nom ?¨
    Par Blizard dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/01/2012, 19h03
  4. Script shell copie fichier en fonction de leur nom
    Par Borowsky dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/12/2009, 09h27
  5. Sélection de données en fonction de leur nom
    Par nicoo04 dans le forum MATLAB
    Réponses: 4
    Dernier message: 07/09/2009, 16h39

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