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 :

Parcourir dossier et fichier [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Par défaut Parcourir dossier et fichier
    Bonjour a tous !

    Je viens vers vous pour (encore une fois) solliciter votre aide si précieuse.

    J'ai dans un dossier un multitude de sous dossier, dans chaque sous dossier il y un fichier nommé TODOList, je dois donc parcourir chaque sous dossier pour trouver ce fichier afin de copier ses données pour les mettre dans un nouveau fichier nommé TODOList_Global.

    Pour ce qui est de l'export de données je pense pouvoir me debrouillé mais la ou je suis perdu c'est pour parcourir les sous dossiers et les fichiers.

    Avez vous des mots clefs ou des conseils pour que je puisse orienté mes recherches ?
    J'ai bien trouver les FSO mais je n'arrive pas a les faire fonctionner

    Voici le bout de code que j'ai fait (a noter que j'ai rajouter la référence Microsoft Scripting Runtime)

    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim oFSO As Scripting.FileSystemObject
    Dim oDrv As Scripting.Drive
    'Instanciation du FSO
    Set oFSO = New Scripting.FileSystemObject
    'Instanciation d'un objet enfant
    Set oDrv = oFSO.Drives(1)
     
    Dim oFS As Office.FileSearch
    Set oFS = Application.FileSearch
    With oFS
        .NewSearch
        .FileType = msoFileTypeAllFiles
        .Filename = "monfichier.txt"
        .LookIn = "D:\Essai"
        .Execute
        MsgBox .FoundFiles.Count
    End With
     
     
     
     
    End Sub
    Sur ce code il me met une erreur ("Argument ou appel de procédure incorrect") sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oDrv = oFSO.Drives(1)
    Et si je commente cette ligne il me met l'erreur suivante ("Cet objet ne gère pas cette action) sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oFS = Application.FileSearch
    Je comprends pas trop la si une lumière parmi vous pourrais m'éclairer
    Merci d'avance
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

  2. #2
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Par défaut
    Pour la première erreur j'ai résolu grâce a ("supersnail") il fallait mettre en faites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set oDrv = oFSO.Drives("C:")
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Par défaut
    Salut,
    si j'ai tout compris, ça sa doit fonctionner:

    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
    Private Sub Commande0_Click()
     
    Dim oFS As Office.FileSearch
    Set oFS = Application.FileSearch
    Dim i As Integer
     
    With oFS
        .NewSearch
        .SearchSubFolders = True
        .FileType = msoFileTypeAllFiles
        .FileName = "monfichier.txt"
        .LookIn = "C:\Essai"
        .Execute
        'MsgBox .FoundFiles.Count
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
     
     
    End With
     
    End Sub
    en ajoutant les références "Microsoft Scripting Runtime" ET "Microsoft Office XX Object Library".

  4. #4
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Par défaut
    J'avais déjà essayer mais le probleme est que je n'ai pas Microsoft Office XX Object Library.

    du coup il me genere toujours une erreur sur la ligne application.

    Du coup j'ai trouver une solution alternative que voici :


    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
         Explorer "TODO_ List.xls", "\\serveur2\Exploitation\Dossier SI"
     
    End Sub
     
     
     
     
     
    Sub Explorer(p_strFichier As String, p_strCheminDepart As String, Optional p_oFld As Scripting.Folder)
     
        On Error GoTo err
     
            Dim oFSO As Scripting.FileSystemObject
            Dim oFld As Scripting.Folder
            Dim oFl As File
     
            If p_oFld Is Nothing Then
                'Instanciation du FSO
                Set oFSO = New Scripting.FileSystemObject
                'Accède au répertoire du départ de recherche
                Set p_oFld = oFSO.GetFolder(p_strCheminDepart)
            End If
            Set oFl = p_oFld.Files(p_strFichier)
     
            'MsgBox oFl.Path
     
    '''''''''''''''*******************************
            'Traitement a faire quand le fichier est trouvé
     
     
    '''''''''''''''*******************************
     
     
     
    SubDir:
        'Explore les sous-dossiers
            For Each oFld In p_oFld.SubFolders
                Explorer p_strFichier, p_strCheminDepart, oFld
                DoEvents
            Next oFld
     
    fin:
            Exit Sub
     
    err:
            Select Case err.Number
                Case 53: Resume SubDir
                Case Else:
                    MsgBox "Erreur inconnue"
                    Resume fin
            End Select
     
    End Sub

    edit :en faites si j'ai le composant mais meme avec j'ai toujours l'erreur
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

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

Discussions similaires

  1. [PowerShell] Parcourir des dossiers et fichiers et extraire les données
    Par WarriorExtreme dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 23/03/2012, 16h50
  2. parcourir dossier et fichiers
    Par tabbabi dans le forum Android
    Réponses: 2
    Dernier message: 07/09/2011, 12h55
  3. [XL-2000] VBA - Parcourir dossiers, importer données de fichiers textes dans excel
    Par news4teab dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/04/2010, 19h09
  4. Parcourir tous les dossiers ou fichiers d'un disque
    Par bl4ckwolf dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/07/2006, 20h55
  5. Dossier ou Fichier avec ShellListView
    Par MoussDiouf dans le forum Langage
    Réponses: 6
    Dernier message: 14/06/2003, 13h33

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