Excel VBA: automatisation de la copie varie de différents classeurs dans une destination finale de la feuille?

Je vais être de générer des graphiques à partir d'un lot de données qui se trouvent dans plusieurs classeurs. Les données sont formatées exactement la même dans tous les classeurs et résident dans des dossiers tous au même niveau. Je vais être amener les parties (les plages) des données dans un dernier classeur où je vais générer mes graphiques de.

Cela m'a fait penser que ce genre de chose est mûr pour l'automatisation VBA. Seul problème, je suis un novice. J'ai essayé d'écrire le pseudo-code et ensuite remplacer par ce que je pense est correct VBA. J'ai regardé autour pour des exemples, et essayé Excel fichiers d'aide, mais il me manque quelques étapes importantes quelque part...et quelques étapes de base en tant que bien.

Beaucoup de choses semblent être mauvais (... au moins vous aurez quelque chose à sourire avant le week-end). Si quelqu'un peut le point où mon cerveau a abandonné, moi, je lui en serais très reconnaissant.

Aussi, comment pouvez-vous ajouter le nom du fichier que les plages sont venus à partir de la Colonne B sur les mêmes lignes? C'est quelque chose qui pourrait vraiment m'aider, mais je ne peux pas trouver un exemple de comment le faire.

Sub CopySourceValuesToDestination()
Dim DestPath As String
Dim SourcePath As String
Dim Folder As Variant
Dim Folders As Variant
Dim FileInFolder As Variant
Dim Range1 As Range
Dim Range2 As Range
Dim DesitnationPaste1 As Variant
Dim DesitnationPaste2 As Variant
Folder = Array("ABC", "DEF", "GHI", "JKL")
FileInFolder = Array("ABCFile", "DEFFile", "GHIFile", "JKLFile")
''My final Excel file sits in the parent folder of the source files folders
DestPath = "S:\Common\XYZ\Michael S\Macrotest\"
''Each file has it's own folder, and there are many specific files in each
SourcePath = "S:\Common\XYZ\Michael S\Macrotest\ + Folder"
''Always the same in each of my source files
Range1 = Cells("C4:C8") 
Range2 = Cells("C17:D21") 
''Below I 'm trying to paste Range1 into Column C directly under the last used cell
DestinationPaste1 = Range("C5000").End(xlUp).Offset(1, 0)
''Below I 'm trying to paste Range2 into Column D directly under the last used cell
DestinationPaste2 = Range("D5000").End(xlUp).Offset(1, 0)
''Trying to make it loop through the folder and the_
''files...but this is just a guess
For Each Folder In Folders 
''Again a guess
F = 0 
''The rest of the process would open a source file copy_
''Range1 and then opening the Destination file and pasting_
''it in the Row 1 of Column C. Hopefully it then goes back_
''to the open source file copies Range2 and pastes it the_
''next Row down in Column C
Workbooks.Open FileName:=SourcePath + FileName + "Source.xls"
Workbook.Sheet(Sheet2).Range1.Copy
Workbook.Open FileName:=DestPath + "Destination.xls"
Workbook.Sheet(Sheet1).DestinationPaste.Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
Operation:= xlNone, SkipBlanks:=False, Transpose:=True
Windows(SourcePath + FileName + "Source.xls").Activate
Workbook.Sheet(Sheet2).Range2.Copy
Workbook.Open FileName:=DestPath + "Destination.xls"
Workbook.Sheet(Sheet1).DestinationPaste.Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=True
Windows(SourcePath + FileName + "Source.xls").Activate
ActiveWorkbook.Close
F = F + 1
Next
End Sub

L'issue du processus devrait ressembler à l'image ci - dessous, mais sans que les couleurs ou le bac d'alimentation supplémentaire de "_b":

Les Données finales de Sortie http://i51.tinypic.com/14sm6ac.jpg

Encore un grand merci pour toute aide que vous pouvez me donner.

Michael.

InformationsquelleAutor RocketGoal | 2010-09-17