Ouverture de fichiers Excel dans des sous-dossiers (niveau 1)

Résolu/Fermé
James_hook Messages postés 1 Date d'inscription vendredi 17 mai 2013 Statut Membre Dernière intervention 17 mai 2013 - 17 mai 2013 à 18:49
michel_m Messages postés 16582 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 27 novembre 2022 - 20 mai 2013 à 18:42
Bonjour,

J'ai fait pas mal de recherche sur les forums mais je n'ai pas trouvé la solution.

Je dois consolider des données de fichiers Excel 2007 répartis dans 9 sous-dossiers (01 jusqu'à 09, les adresses sont connues, sur un réseau interne) d'un dossier parent ("fiches de suivi").

Je souhaite uniquement ouvrir les fichiers dans les sous-dossiers de niveau 1 (ex. 01) car dans les sous-dossiers, des anciennes versions sont conservées dans un dossier "Old" qui ne m'intéressent pas.

Voila le code que j'ai pour le moment :

Sub Consolidation()

Dim intFile As Integer
Dim strWB As String
Dim strFile As String
Dim lgDerLig As Long

lgDerLig = 6

Application.ScreenUpdating = False
Application.EnableEvents = False


' Nom du classeur actuel
strWB = ThisWorkbook.Name

' Récupération du premier fichier dans le répertoire
repertoire = "C:\Users\...\01 Fiches de suivi"
strFile = Dir(repertoire & "\*.xls")

' Boucle du 1er au dernier classeur dans le répertoire
Do While strFile <> ""
' Ouvrir le fichier
chemin = repertoire & "\" & strFile
Workbooks.Open (chemin)

' Sélectionner le 1er onglet
ActiveWorkbook.Worksheets(1).Activate

' cellules à copier
Worksheets("Identification du gain").Range("X3").Copy
Workbooks(strWB).Worksheets("Consolidation").Range("A" & lgDerLig).PasteSpecial xlPasteValues

lgDerLig = lgDerLig + 1

' Fermeture du classeur
Workbooks(strFile).Close

' Classeur suivant
strFile = Dir
Loop

MsgBox "Le traitement des fichiers est terminé.", vbInformation, "Traitement..."

Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub


Je pourrais dupliquer le code pour les 9 sous-dossiers mais je suis sûr qu'il y a une manière plus simple de coder cela.

Merci d'avance pour vos réponses

James

1 réponse

michel_m Messages postés 16582 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 27 novembre 2022 3 284
18 mai 2013 à 09:48
Bonjour,

je vais te proposer une solution -sois patient !-

mais je ne comprend pas pourquoi utilises tu la gestion événementielle "application.enableevents" ?
0
michel_m Messages postés 16582 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 27 novembre 2022 3 284
19 mai 2013 à 11:17
petite étourderie à rectifier

Option Explicit
Dim T_x3(),Cptr As Integer


et Cptr a supprimer
Sub recuperer_x3(chemin)
Dim Fichier As String         


appli réalisée avec XL2003 à adapter à 2007

Si aucune nouvelle avant Lundi 20 mai: suppression de la proposition
Je ne suis pas là pour faire le boulot des gens pendant leur W.E
0
michel_m Messages postés 16582 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 27 novembre 2022 3 284
20 mai 2013 à 18:42
proposition supprimée :-((
0