No meu entendimento, você chama de aba as planilhas de uma Pasta de Trabalho e chama de Planilha uma Pasta de Trabalho.
O código em VBA abaixo, que deverá ser copiado na Pasta de Trabalho padrão, funciona da seguinte forma: ele busca pastas de trabalho abertas que possuem como nome uma das planilhas de sua pasta de trabalho padrão, copia os dados
e as fecha automaticamente.
Exemplo: com a pasta de trabalho padrão aberta e, por exemplo, a pasta
VENDA DIA.xls também aberta, automaticamente buscará informações desta e fechará a pasta de trabalho.
O range copiado aqui adotado da pasta de trabalho origem será sempre de
A1:N3000. Além disso, estou considerando que os dados da pasta de trabalho origem estão sempre na primeira pasta de trabalho da mesma.
Sub Consolidar()
Dim wb As Workbook
Dim ws As Worksheet
For Each wb In Workbooks
If ThisWorkbook.Name <> wb.Name Then
On Error Resume Next
Set ws = ThisWorkbook.Sheets(NomeSemExtensão(wb.Name))
If Err.Number = 0 Then
wb.Sheets(1).Range("A1:N3000").Copy Destination:=ws.Range("A" & ws.UsedRange.Rows.Count + 1)
End If
On Error GoTo 0
End If
Next wb
End Sub
Function NomeSemExtensão(str As String) As String
Dim n As Long
For n = Len(str) To 1 Step -1
If Mid(str, n, 1) = "." Then
NomeSemExtensão = Mid(str, 1, n - 1)
Exit For
End If
Next n
End Function
http://www.ambienteoffice.com.br