With a few tweaks I got this to run, but I'm struggling with this line
.Range("A20:L20").End(xlDown).Copy BottomOfC
I understand that it's getting one cell at the bottom of my data, but it actually needs to be the whole table. For instance when I was recording the macro I wanted the table that has the first line of A20:L20, but it could go for 100 or 150 lines and so my table to copy would end up being A20:L120. How would I change this line to get it what I want. I've tried several things and I'm just not a heavy user of VB to know what to do.
Here's what I have so far:
Sub Macro1()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim MyFile As String
Dim MyPath As String
Dim BottomOfC As Range
MyPath = InputBox("What folder are the files in?") & "\"
MyFile = Dir(MyPath & "*.xls")
Do While MyFile <> ""
Workbooks.Open MyPath & MyFile
Set BottomOfC = Workbooks("Concession Sales Data.xlsm").Sheets("Sheet1").Range("C1").End(xlDown).Offset(1, 0)
With Workbooks(MyFile).Sheets("Goods Out of Stock Summary")
.Range("C14").Copy BottomOfC.Offset(0, -2)
.Range("C12").Copy BottomOfC.Offset(0, -1)
.Range("A20:L20").End(xlDown).Copy BottomOfC
ActiveWorkbook.Close True
End With
MyFile = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Macro is done with this folder.", vbOKOnly, "Macro done."
End Sub