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 :

Appliquer une macro sur plusieurs fichiers Excel contenus dans un même répertoire


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 53
    Points
    53
    Par défaut Appliquer une macro sur plusieurs fichiers Excel contenus dans un même répertoire
    Bonjour,

    Je me permets de vous contacter car j'ai un petit soucis : j'aimerais appliquer une macro de mise en forme sur l'ensemble des fichiers contenus dans un même répertoire (le nom des fichiers peut évoluer, je ne peux donc pas sélectionner et ouvrir nominativement les fichiers). Vous pourrez trouver ci-dessous le code que j'ai réalisé. Toute la partie message box, input box fonctionne. Par contre, je ne sais pas comment appliquer ma macro sur l'ensemble des fichiers du répertoire. Il s'agit de la partie grisée en commentaire. Je souhaite appeler ma contion à travers "Call mise_en_forme".

    Ma fonction mise en forme permet de copier différentes colonnes des fichiers (dont je ne connais pas les noms mais qui se trouvent dans mon répertoire) et de les coller dans le document Excel sur lequel se trouve ma macro. Ma macro de mise en forme est disponible en dessous du premier code.

    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
     
    Dim Chemin As String
    Sub Appli_Boutton()
    Chemin = InputBox("Entrez l'arborescence du répertoire contenant les fichiers sur lesquels vous souhaitez effectuer les retraitements")
     
    'Tant que le chemin du répertoire n'est pas renseigné, redemander le lien du chemin
    If Chemin = "" Then
        MsgBox "Vous n'avez pas indiqué de repertoire d'entrée", vbCritical, "Erreur"
            Do While Chemin = ""
            Chemin = InputBox("Entrez l'arborescence du répertoire contenant les fichiers sur lesquels vous souhaitez effectuer les retraitements")
            If Chemin = "" Then
            Reponse = MsgBox("Souhaitez-vous mettre en forme des fichiers?", vbYesNo + vbQuestion)
                If Reponse = vbNo Then Exit Sub
            End If
        Loop
    End If
     
    If Not (RepertoireExiste(Chemin)) Then         'permet de savoir si le repertoire existe'
    MsgBox "Le repertoire d'entrée n'existe pas", vbCritical, "Erreur"
        Do While RepertoireExiste(Chemin) = False
        Chemin = InputBox("Entrez l'arborescence du répertoire contenant les fichiers sur lesquels vous souhaitez effectuer les retraitements")
            If Not (RepertoireExiste(Chemin)) Then
                Reponse = MsgBox("Souhaitez-vous mettre en forme des fichiers?", vbYesNo + vbQuestion)
                If Reponse = vbNo Then Exit Sub
            End If
        Loop
    End If
     
    'Parcours les fichiers contenu dans le dossier d'entrée'
     
    'Fichier = Dir(Chemin & "\*")
    'Do While Fichier <> ""
    '    Application.ScreenUpdating = False 'Pour que l'écran ne soit pas mis à jour
    '        Workbooks.Open (Chemin & "\" & Fichier)
    '        Call mise_en_forme()'
    '    End If
     
    '   Fichier = Dir()
    'Loop
     
    MsgBox Chemin
     
    End Sub
     
    'Fonction permettant de savoir si le repertoire existe'
    Function RepertoireExiste(Nom As String) As Boolean
    On Error Resume Next
    RepertoireExiste = GetAttr(Nom) And vbDirectory
    End Function
    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
     
    Sub mise_en_forme()
     
    Set Entree = Workbooks.Open(Filename:="C:\Les différents fichiers Excel se trouvant dans le répertoire")
    Set Import = ThisWorkbook.Sheets("Import") 'Le fichier dans lequel je souhaite récupérer les différentes colonnes, et qui contient ma macro
     
    i = 1
    For Each cellule In Import.Range(Import.Cells(1, 2), Import.Cells(1, 2).End(xlToRight))
    If cellule.Value <> "" Then i = i + 1
    Next
     
    j = 1
    For Each cellule In Entree.Sheets("sheet1").Range(Entree.Sheets("sheet1").Cells(1, 2), Entree.Sheets("sheet1").Cells(1, 2).End(xlToRight))
    If cellule.Value <> "" Then j = j + 1
    Next
     
    Entree.Sheets("sheet1").Columns(j).Copy Import.Cells(1, i + 1)
     
    End Sub
    Est-ce que quelqu'un pourrait m'aider sur la question s'il vous plaît ?
    Je reste à votre disposition pour toutes informations complémentaires.

    Merci d'avance,

    Bien cordialement,

    Tibss

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 53
    Points
    53
    Par défaut
    Merci, c'est résolu

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2017, 16h55
  2. Macro qui permet d'appliquer une macro sur un fichier excel
    Par zak-mouk dans le forum Général VBA
    Réponses: 2
    Dernier message: 23/06/2015, 17h15
  3. Creer un macro qui verifie une info sur plusieur fichier excel
    Par Esmax666 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2009, 16h42
  4. [VBA-E] Comment appliquer une macro sur plusieurs cellules
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/01/2007, 10h54
  5. Macros sur Plusieurs fichiers Excel
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 11h21

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