Druhé makro pre list PT21, ktoré počíta s tým, že počet stĺpcov v tabuľkách na listoch PrvaSK4 a DruhaSK4 je rovnaký (počet riadkov nemusí byť rovnaký), môže vyzerať takto:
Private Sub Worksheet_Activate()
Dim srcRange As Range
Dim dstCell As Range
Dim aRange As Range
Dim aCell1 As Range
Dim aCell2 As Range
Cells.ClearContents
Set srcRange = Worksheets("PrvaSK4").Range("B3")
nRows = srcRange.End(xlDown).Row - srcRange.Row + 1
nColumns = srcRange.End(xlToRight).Column - srcRange.Column + 1
Set srcRange = srcRange.Resize(nRows, 2)
Set dstCell = Range("A1")
Set aCell1 = Worksheets("PrvaSK4").Range("B3").End(xlDown).Offset(1, 1)
Set aCell2 = Worksheets("DruhaSK4").Range("B3").End(xlDown).Offset(1, 1)
For i = 1 To nColumns / 3
If aCell1 >= aCell2 Then
srcRange.Copy
dstCell.PasteSpecial xlPasteValues
Set dstCell = dstCell.Offset(0, 2)
If dstCell.Column / 24 > 1 Then
Set dstCell = dstCell.Offset(srcRange.Rows.Count + 1).End(xlToLeft)
If dstCell.Row <= 44 And dstCell.Row + srcRange.Rows.Count > 44 Then
Set dstCell = dstCell.Offset(44 - dstCell.Row + 1)
End If
End If
End If
Set srcRange = srcRange.Offset(0, 3)
Set aCell1 = aCell1.Offset(0, 3)
Set aCell2 = aCell2.Offset(0, 3)
Next i
End Sub
Pre list PT2 treba v makre nahradiť riadok
Set srcRange = Worksheets("PrvaSK4").Range("B3")
za riadokSet srcRange = Worksheets("DruhaSK4").Range("B3")
a obidva riadkyIf aCell1 >= aCell2 Then
za riadkyIf aCell1 < aCell2 Then