LoopThroughXLS_ConsolidateOneSheet secondaire privé ()
'ouvre tous les cahiers de travail dans une chemise et les consolide en une feuille sur le cahier de travail actif
application.ScreenUpdating = 'écran faux de débronchement mettant à jour pour éviter le clignotant d'écran
Faible wbk1 comme cahier de travail, wbk2 comme cahier de travail, I en tant que longtemps, strWbk comme corde, sht1 comme feuille de travail
Faible blFirst comme booléen
Faibles strWbkNames (1 500) comme corde, nom de fichier comme corde, intFileCount en tant que longtemps, intWbkLoop en tant que longtemps
'DE *************** DE MISE À JOUR DE PARAMÈTRES ************************* ICI
Strpath de Const comme corde = « C:\Temp\test » 'changement aux chemises où vous laissez tomber vos dossiers
Le blHeader de Const comme booléen = rectifient 'rectifient si vos données ont des en-têtes, faux autrement
'**************************************************************
Placer wbk1 = ActiveWorkbook
Placer sht1 = ActiveSheet
le blFirst = rectifient
Nom de fichier = Dir (strpath et « \ *.xls »)
Faire tandis que "" <> de nom de fichier
intFileCount = intFileCount + 1
strWbkNames (intFileCount) = nom de fichier
Nom de fichier = Dir
Boucle
application.DisplayAlerts = faux
Pour l'intWbkLoop = 1 à l'intFileCount
Si application.WorksheetFunction.CountA (sht1.Columns (1)) = 0 puis
sht1.range (« A1 »). Choisi
Autrement
sht1.range (« A » et sht1.Rows.Count). Extrémité (xlUp). Excentrage (1, 0). Choisi
Finir si
Placer wbk2 = Workbooks.Open (strpath et « \ » et strWbkNames (l'intWbkLoop))
Avec wbk2.Sheets (1)
Si le blFirst = rectifient alors
blFirst = faux
.UsedRange.Copy
Autrement
Si le blHeader = rectifient alors
.UsedRange.Offset (1).Copy
Autrement
.UsedRange.Copy
Finir si
Finir si
Finir avec
sht1.Paste
wbk2.Close (faux)
Après
application.DisplayAlerts = rectifient
application.ScreenUpdating = rectifient
Sous-marin d'extrémité
|