Da počnem od lakšeg
2/ Standardno kopiranje kopira i mergovane ćelije. Jednostavno snimi makro koji kopira ceo obrazac - obavezno uključi sve mergovane redove kolone - i to je to. Problem moze da bude jedino ukoliko su na odredišnom listu neke druge ćelije već mergovane - u tom slučaju pre kopiranja treba ukloniti mergovanje svih ćelija na odredišnom listu.
1/ Ovo menja koncepciju kopiranja - jer prilikom kopiranja treba preskočiti prazne redove. U tvom slučaju čini mi se najlakše da se doda petlja koja briše prazne redove nakon kopiranja. Dakle pre povratka na Sheet1 treba obrisati prazne redove
Code:
Sub Button1_Click()
' Makro koji snima podatke iz opsega C1:F1 u prvi prazan red
' na sledecem listu
Dim r As Long
Dim i As Long
' Selektovanje i kopiranje opsega
Range("C1:F9").Select
Selection.Copy
' Prelazak u Sheet2
Sheets("Sheet2").Select
' Pozicioniranje na prvu praznu ?eliju u koloni A
r = Range("A65536").End(xlUp).Offset(1, 0).Row ' cuva se pocetni broj reda
ActiveSheet.Cells(r, 1).Select
' Kopiranje po vrednosti
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
'Brisanje praznih redova
For i = r + 8 To r Step -1 ' Proveravaju se poslednjih devet redova
If ((Len(Cells(i, 1).Text) + Len(Cells(i, 2).Text) + Len(Cells(i, 3).Text) + Len(Cells(i, 4).Text)) = 0) Then
ActiveSheet.Rows(i).Delete Shift:=xlDown ' Ukoliko je prazan red se brise
End If
Next i
' Povratak na Sheet1
Sheets("Sheet1").Select
End Sub
Dva u dva ide jednom ako možeš da ga ućuškaš