Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prerada VBA koda

[es] :: Office :: Excel :: Prerada VBA koda

[ Pregleda: 1089 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

snenad_82
Nenad Stevanovic
Niš

Član broj: 126686
Poruke: 74
*.dynamic.isp.telekom.rs.



Profil

icon Prerada VBA koda28.07.2017. u 12:51 - pre 81 meseci
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

 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2267
89.216.49.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Prerada VBA koda31.07.2017. u 12:02 - pre 81 meseci
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]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

snenad_82
Nenad Stevanovic
Niš

Član broj: 126686
Poruke: 74
*.dynamic.isp.telekom.rs.



Profil

icon Re: Prerada VBA koda03.08.2017. u 06:45 - pre 80 meseci
Hvala Predraže. Mislim da nije prvi put da ste mi pomogli.
 
Odgovor na temu

[es] :: Office :: Excel :: Prerada VBA koda

[ Pregleda: 1089 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.