Makro kopiuje tabele zawierającą dane z arkusza, otwiera plik "archiwum" tworzy tam zakładkę, wkleja dane i zmienia nazwę na podstawie jednej komórki z tej listy. Makro jest w pliku "DANE.xls"
I jeszcze fragment kodu, który zmienia też nazwę zapisywanego pliku.
Sub archiwum()
Dim nazwa As String' określenie komórki w której będzie nazwa nowej zakładki
nazwa = Cells(3, 1)' kopiujemy dane które zawierają jakieś wartości
Selection.CurrentRegion.Select
Selection.Copy'otwieramy plik "archiwum
' Application.WindowState = xlMinimized
ChDir "C:\\DOKUMENTY"
Workbooks.Open Filename:="C:\\DOKUMENTY\archiwum.xls"
Windows("archiwum.xls").Activate
'tworzymy nową zakładkę i wklejamy dane
Sheets.Add
ActiveSheet.Paste'układamy kolumny, żeby ładnie wyglądały :)
Columns("A:A").EntireColumn.AutoFit
Columns("E:E").EntireColumn.AutoFit
Columns("G:G").EntireColumn.AutoFit
Columns("I:I").EntireColumn.AutoFit
Columns("M:M").EntireColumn.AutoFit
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy'zmieniamy nazwę zakładki
Sheets("Arkusz1").Select
Sheets("Arkusz1").Name = nazwa' zapisujemy zmiany i zamykamy plik archiwum
ActiveWorkbook.Save
ActiveWorkbook.Close
Windows("DANE.xls").Activate
Range("A3").Select
End Sub
I jeszcze fragment kodu, który zmienia też nazwę zapisywanego pliku.
ActiveWorkbook.SaveAs Filename:= _
"C:\\DOKUMENTY\plik_" & nazwa & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close