czwartek, 29 września 2011
poniedziałek, 5 września 2011
niedziela, 4 września 2011
środa, 24 sierpnia 2011
wtorek, 19 lipca 2011
wtorek, 5 lipca 2011
poniedziałek, 23 maja 2011
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"
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
EXCEL VBA - generowanie zakładki pod korespondencje seryjną.
EXCEL
Kod filtruje listę (w zakładce "WORK") na podstawie określonych kryteriów i kopiuje do istniejącej zakładki( SERYJNA) (wcześniej ją czyszcząc) wartości, które potem są wykorzystywane do korespondencji seryjnej w wordzie
Kod filtruje listę (w zakładce "WORK") na podstawie określonych kryteriów i kopiuje do istniejącej zakładki( SERYJNA) (wcześniej ją czyszcząc) wartości, które potem są wykorzystywane do korespondencji seryjnej w wordzie
' filtrujemy, "Field=10" to określenie kolumny, "kryteria" to kryteria filtrowaniaSub gen_seryjna()' wpierw czyścimy zakładkę "SERYJNA"Sheets("SERYJNA").SelectCells.SelectSelection.Delete Shift:=xlUpSheets("WORK").Select
' zaznacza tylko komórki w których istnieją daneSelection.AutoFilter Field:=10, Criteria1:="OBCIĄŻENIE"
Selection.CurrentRegion.Select
' wklejamySelection.CopyRows("1:1").SelectSheets("SERYJNA").SelectRange("A1").Select
' usuwamy pierwszy wiersz (który w moim pliku np zawierał przyciski, a nazwy kolumn były w drugim wierszu)ActiveSheet.Paste
' kolumny wyrównujemyRows("1:1").SelectApplication.CutCopyMode = FalseSelection.Delete Shift:=xlUp
Columns("A:N").EntireColumn.AutoFitSheets("WORK").SelectSelection.AutoFilter Field:=10Range("A3").SelectApplication.ScreenUpdating = TrueEnd Sub
Subskrybuj:
Posty (Atom)