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,
|