Rapport de message :*
 

Re: Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier

Titre du sujet : Re: Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier
par myDearFriend! le 05/12/2010 22:10:45

Re,

Ton explication n'est pas franchement précise.

Cela dit, tu trouveras en pièce jointe une interprétation de ce que j'ai cru comprendre...

J'ai échangé ton code, par celui-ci (dans le Module1) :
Option Explicit

Sub recuperation()
Dim F As Worksheet
Dim Rep As String       ' répertoire à traiter
Dim Classeur As String, Onglet As String
Dim i As Byte

    Rep = mDF_ChoixDossier("Choisissez le répertoire à regrouper")
    If Rep = "" Then Exit Sub
    Classeur = Dir(Rep & "\*.xls")
   
    Do While Classeur <> Empty
        With Workbooks.Open(Rep & "" & Classeur)
            For i = 1 To 3  'A adapter
                Onglet = Choose(i, "recap", "bilan", "paris")   'A adapter
                On Error Resume Next
                Set F = .Sheets(Onglet)
                On Error GoTo 0
                If Not F Is Nothing Then
                    F.Copy After:=ThisWorkbook.Worksheets(1)
                    Set F = Nothing
                End If
            Next i
            .Close False
        End With
        Classeur = Dir
    Loop
End Sub

Function mDF_ChoixDossier(Titre As String) As String
'myDearFriend!  -  www.mdf-xlpages.com
Dim objFolder As Object
Dim Chemin As String
    Set objFolder = CreateObject("Shell.Application").BrowseForFolder(0, Titre, 513, 0)
    If objFolder Is Nothing Then Exit Function
    On Error Resume Next
    Chemin = objFolder.Items.Item.Path & ""
    On Error GoTo 0
    mDF_ChoixDossier = IIf(Left(Chemin, 1) = ":", "", Chemin)
End Function
Chaque onglet intitulé "recap", "bilan" ou "paris" devrait donc être récupéré pour chaque classeur situé dans le répertoire cible.

J'en ai également profité pour simplifier un peu le code que tu utilises pour le choix du répertoire (éviter au maximum l'utilisation des Api Windows lorsque c'est possible, me parait une bonne idée).

Cordialement,