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 :

Exécuter une macro sur tous les fichiers d'un dossier. [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut Exécuter une macro sur tous les fichiers d'un dossier.
    Bonjour les développeurs,

    j'ai un petit besoin.

    j'ai développé une macro qui traite un fichier.
    cette macro me permet de traiter chaque semaine des fichiers qui se trouvent dans un même dossier. ( le nombre de fichiers peut varier et leur nom aussi)
    mais la macro fonctionne sur tous les fichiers car la structure des données est identique. (extraction de données SAP sous des fichiers XLS pour info)

    jusque là tout va bien.

    mon problème c'est que je voudrais exécuter cette macro sur l'ensemble des fichiers d'un dossier sélectionné (50 à 60 fichiers)

    (je connais l'adresse du dossier source mais je ne connais pas combien de fichiers il y peut y avoir d'une semaine à l'autre et les noms des fichiers peuvent changer)

    je voudrais savoir s'il n'y avait pas une ligne de commande type

    "for each files in folder do..."

    auriez vous des idées ou des pistes d'investigations ?

    merci d'avance pour vos lumières

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Chemin = "Le chemin complet de ton dossier\"   'Avec \ à la fin
     
    fichier = Dir(Chemin & "*.xls")
     
    Do While Len(fichier) > 0
     
        MsgBox fichier
        fichier = Dir()                              'On passe au fichier suivant
    Loop

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut balayer tous les fichiers Excels d'un répertoire
    Voila un exemple :

    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
     
     
    Sub ouvrir_tous_fic_repertoire()
     
        Title = "Sélectionnez un fichier du répertoire ?"
        MultiSelect = False
       filetoopen = Application.GetOpenFilename("Tous les fichiers Microsoft Excel , *.xl*", 2, Title, MultiSelect)
     
    If filetoopen <> False And InStrRev(filetoopen, "\") > 0 Then
      Set fs = CreateObject("Scripting.FileSystemObject")         ' on défini un FileSystem pour traiter des fichiers et répertoires
        G_chemin_Fichier = Mid(filetoopen, 1, InStrRev(filetoopen, "\"))
     
     
         '***** traitement des fichiers d'un répertoire quelconque
          Set f_Dir = fs.getFolder(G_chemin_Fichier).Files   ' f_Dir renvoi la collection des noms de fichier présent dans le G_repertoire quelque  soit le type de fic excel ou autre .
             nb_fic = 0
                For Each f1 In f_Dir
                   If InStr(1, f1.name, ".xl") > 0 Then
                   'on fait les traitements que l'on veut ,exemple ouverture fichier ....
                      nb_fic = nb_fic + 1
                 End If
               Next
    End If
     
    MsgBox CStr(nb_fic) & " fichiers Excel trouvés"
    End Sub

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    merci pour vos conseils

    j'ai finalement opté pour ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim Repertoire As FileDialog
     
    Set Repertoire = Application.FileDialog(msoFileDialogFilePicker) Repertoire.Show
     
    For i = 1 To Repertoire.SelectedItems.Count ' execution de la macro pour chacun des fichiers.
     
    next
    Merci

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

Discussions similaires

  1. application d'une macro a tous les fichiers d'un dossier
    Par muisca dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/05/2012, 21h14
  2. Exécuter une macro sur tous les onglets d'un fichier sauf un
    Par Marsama dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/04/2011, 18h38
  3. Exécuter un commande sur tous les fichiers d'un dossier
    Par Gog077 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/09/2009, 12h55
  4. exécuter une commande sur tous les fichiers des sous dossiers
    Par Concombre Masqué dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 05/03/2009, 02h15
  5. Réponses: 18
    Dernier message: 22/06/2006, 18h55

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