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 :

Problème avec la fonction Dir [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut Problème avec la fonction Dir
    Bonjour,

    Je fais appel à vos lumières. Je parcours un répertoire pou aller chercher les fichiers dans chaque dossier de ce répertoire. Pour ceci j'utilise les Dir qui fonctionnent quand je parcours juste la liste des dossiers.

    Mais quand je fais un Dir dans un autre Dir j'ai le message suivant : "Erreur d'éxécution '5' Argument ou appel de procédure incorrect" en pointant sur la ligne Dossier = Dir

    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
    Global Const Repertoire = "C:\Users\E40656\Documents\ACTIVITE\"
     
    Sub ListeFichier()
     
    ' Parcours du répertoire
    Dossier = Dir(Repertoire, vbDirectory)
    While Dossier <> ""
        If Dossier <> "." And Dossier <> ".." Then
            Fichier = Dir(Repertoire & Dossier & "\")
            While Fichier <> ""
                If Fichier <> "." And Fichier <> ".." Then
                    MsgBox "Activité : " & Dossier & " /Fichier : " & Fichier
                End If
                Fichier = Dir
            Wend
        End If
        Dossier = Dir
    Wend
     
    End Sub
    Si quelqu'un à une idée d'oùu vient mon erreur

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tu cherches bien qq chose un fichier par exemple ?

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    oui je cherche les fichiers .xls dans les dossiers, pour l'instant je n'en fais rien je voulais déjà que mes Dir fonctionnent

  4. #4
    Invité
    Invité(e)
    Par défaut
    test ça
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Je ne comprends pas tout le code je ne le vois pas parcourir les fichiers. En réalité, je souhaite parcourir le répertoire pour ouvrir chaque fichier de chaque dossier de ce répertoire pour les comparer. Je ne vois pas comment utiliser ce que tu m'as montré pour faire ceci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Toute méthode procédurale, ne conserve pas en mémoire les résultats précédents.
    Ainsi le DIR est capable de scanne un répertoire, si tu lui dis de scanner un sous répertoire il oublis ce qu’il faisait avant.
    Pour bien faire il faudrait créer une instance du DIR différent pour chaque répertoire ce qui n’es pas possible DIR est une fonction unique.
    En revanche FSO le fait très bien, mais tu dois affecter un variable pour chaque répertoire.
    Pour résoudre ce problème, j’utilise un classe qui peut ce réplique à l’infinie (variable dynamique via une collection).
    Je renseigne un nouveau classeur Excel avec le nom des fichiers, je l’ai modifié pour qu’il affiche le chemin complet, tu peux l’utiliser pour ouvrir tes fichier après la fin du scan.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup pour tes explications je vois ça tout de suite

  8. #8
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    J'ai une erreur d'éxécution 424 objet requis sur la ligne suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t.ScanRep "C:\Users\E40656\Documents\projets\Activités Charles-Edouard\ACTIVITE\"

  9. #9
    Invité
    Invité(e)
    Par défaut
    Tu as test ma procédure test en modifiant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t.ScanRep "C:\Users\E40656\Documents\projets\Activités Charles-Edouard\ACTIVITE\"
    Avant de l’intégrer à ton projet ?
    Test en l’état pour voir le résultat avant toutes choses.
    Si tu l’intègre dans ton projet sans l’intégrer le module de classe tu auras ce genre d’erreur.
    Ça fonctionne comme l’explorateur Windows en déplacé collé de mon projet vers ton projet dans l’explorateur de solution de VB.
    Ne pas oublier la déclaration :

  10. #10
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    c'est bon ça fonctionne donc la j'ai compris tu parcours et récupére les chemins mais comment je peux faire pour ouvrir chacun de ses fichiers?

  11. #11
    Invité
    Invité(e)
    Par défaut
    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
    Public Feuille As Worksheet 'Feuille de travail Public pour être vue dans toute l'application.
    Public L As Long    'N° de ligne
    Sub test()
    Dim t As New ClsRep
    Dim Classeur As Workbook
    Dim L As Long
    Dim Myrange As Range
    Set Classeur = Application.Workbooks.Add 'J'ajoute un fichier Excel.
    Set Feuille = Classeur.Worksheets(1) 'Feuille= Première feuille du nouveau classeur.
    t.ScanRep "C:\Users\E40656\Documents\projets\Activités Charles-Edouard\ACTIVITE\" 'Je scan les répertoires
    Set Myrange = Feuille.Range("A1").CurrentRegion 'Toutes les cellules contiguës à A1
    For L = 1 To Myrange.Rows.Count 'Je parcours le fichier Excel
        Workbooks.Open Myrange(L, 1) 'j'ouvre les fichiers
    Next
    Classeur.Close False 'Je referme le fichier Excel sans le sauvegarder.
     
    End Sub

  12. #12
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    ça fonctionne parfaitement merci beaucoup à toi

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/02/2009, 09h44
  2. Problème avec la fonction Dir
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/10/2008, 04h15
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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