poniedziałek, 31 stycznia 2011

EXCEL VBA - kopiowanie tabeli do nowego arkusza i zmiana nazwy zakładki

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"


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 

1 komentarz:

  1. Witam a jak przenieść zawartość komórek i ich pogrubione krawędzie wraz z komórkami scalonymi etc. Chciałbym przenieść dokładnie część tabeli tak samo wyglądającą jak w poprzednim arkuszu

    OdpowiedzUsuń