PDA

Prikaži potpunu verziju : Excel makro pitanje


ddak
26.7.2016, 9:41
Kolege,

Zelim da napravim makro koji ce podatke iz jednog sheeta da kopira u sledeci, ali tako da u tom sledecem sheetu uvijek se dodaju naredni redovi koji se azuriraju na dnevnom nivou u sheetu 1.

Npr.
Imam vrijednosti u sheetu jedan u redovima 1,2,3,4 i 5. I ok, napravim makro da prekopira sve to u sledeci sheet. Medjutim, sutradan dodam u redu 6, 7 i 8 nove vrijednosti. Zelim da makro pokupi samo te nove vrijednosti iz redova 6,7,i 8 , a da ne kopira stare.

Vjerovatno nesto sa last used row, da pamti sta je prekopirao ranije ali ne znam egzekuciju :D

AKo neko zna , bio bih zahvalan.

Pozdrav,

Remedy
27.7.2016, 3:11
Nadjes prvi prazan red u sheet-u gde se kopira, nadjes poslednji popunjen u sheet-u iz koga se kopira. Kopiras te redove.
Ovaj primer kopira iz prvog u drugi sheet, ali samo prvu kolumnu, dalje ga zakomplikuj kako ti je potrebno.
Sub CopySheet()
Dim startRow As Integer, endRow As Integer
'Activate target worksheet
Worksheets(2).Activate
'Find first empty row in column
startRow = FirstEmptyRow(1)
'Activate source sheet
Worksheets(1).Activate
'Find last filled row in column
endRow = FirstEmptyRow(1) - 1
If Not startRow < endRow Then Exit Sub
'Copy cells
Range(Cells(startRow, 1), Cells(endRow, 1)).Copy
'Activate target worksheet
Worksheets(2).Activate
Cells(startRow, 1).Select
ActiveSheet.Paste
End Sub

Public Function FirstEmptyRow(column As Integer) As Integer
Dim startRow As Integer
For startRow = 1 To Cells(Rows.Count, column).End(xlUp).Row
If IsEmpty(Cells(startRow, column).Value) Or Cells(startRow, column).Value = "" Then
Exit For
End If
Next startRow
FirstEmptyRow = startRow
End Function