[ snenad_82 @ 28.07.2017. 12:51 ] @
Koristim macro za otključavanje sheeta, unos 20 novih redova, sa kopiranjem reda broj dva u iste (2. red sadrži sve formule i formatiranja koje želim da zadržim) i ponovno zaključavanje sheeta. Sve odlično funkcioniše dok nisam probao da formatiram deo sheeta u kome se radi kao tabelu u želji da preko Pivot tabela oformim još neki izveštaj. Da li neko zna šta i kako trebam da prepravim da bi kod za dodavanje 20 novih redova na kraju radio i kada je deo formatiran kao tabela.
Code:
Sub DodavanjeRedovaREALIZACIJA()
ActiveSheet.Unprotect "1"
Rows("2:2").Select
Selection.EntireRow.Hidden = False
RATR = Range("A" & Rows.Count).End(xlUp).Row - 1
Rows("2:2").Select
    Selection.Copy
Range("A" & RATR).Select
ActiveCell.Resize(20).EntireRow.Insert Shift:=xlDown
Rows("2:2").Select
Selection.EntireRow.Hidden = True
With Worksheets("REALIZACIJA unos")
        .Protect Password:="1", userinterfaceonly:=True, AllowFormattingRows:=True, AllowFiltering:=True
        .EnableOutlining = True
    End With
Range("A5").Select

Debug javlja problem sa linijom
Code:
ActiveCell.Resize(20).EntireRow.Insert Shift:=xlDown

[ Jpeca @ 31.07.2017. 12:02 ] @
Tabele u Excelu su ListObjects pa je najbolje da ih tako tretiraš. Dodavanjem novog reda u tabelu (na kraj) je jednostavno
tbl.ListRows.Add
Pri tome se automatski popunjavaju sve kolone sa formulama. Ako je potrebno da kopiraš i neke vrednosti u nove kolone onda možeš da ih prvo staviš u promenljivu pa onda upišeš u novi red.

Nije potrebno da radiš Unhide i Hide reda tabele koji se "kopira"
Code:
Sub DodavanjeRedovaTablea()
' Otkljucavanje
ActiveSheet.Unprotect "1"

Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("Table1")
' Kopiranje reda 2 u novih N redova
AddNewRow tbl, 20

' Ponovno zakljucavanje
ActiveSheet.Protect Password:="1", userinterfaceonly:=True, AllowFormattingRows:=True, AllowFiltering:=True

End Sub

Sub AddNewRow(tbl As ListObject, N As Integer)
'
' Dodavanje N novih redova u tabelu tbl
' Uz kopiranje prve tri vrednosti iz prvog reda
'
Dim i As Integer
Dim newrow As ListRow
Dim CopyVred1 As Variant, CopyVred2 As Variant, CopyVred3 As Variant
CopyVred1 = tbl.ListRows(1).Range(1)
CopyVred2 = tbl.ListRows(1).Range(2)
CopyVred3 = tbl.ListRows(1).Range(3)

For i = 1 To N
    Set newrow = tbl.ListRows.Add  ' Dodaje novi red na kraju tabele
    newrow.Range(1) = CopyVred1    ' Popunjava vrednostima iz prvog reda
    newrow.Range(2) = CopyVred2
    newrow.Range(3) = CopyVred3
Next i

End Sub


O radu sa tabelama u VBA možeš pogledati ovde

[Ovu poruku je menjao Jpeca dana 31.07.2017. u 16:52 GMT+1]
[ snenad_82 @ 03.08.2017. 06:45 ] @
Hvala Predraže. Mislim da nije prvi put da ste mi pomogli.