1. 
Workbook_Open() - tato procedura uzamyka pri otevreni sesitu list SUM (ochrana vzorcu pred nechtenym smazanim) a povoluje zmeny na listu proceduram VBA (setrideni sloupce) - argument 
UserInterfaceOnly:=True2. Procedura 
PomRozdilRadku() je samostatne pouze jako dusledek postupneho psani kodu, nic nebrani telo teto procedury vlozit do procedury 
Worksheet_Calculate(), ktera defacto spousti prepocet.:
Kód: Vybrat vše
Private Sub Worksheet_Calculate()
  Application.ScreenUpdating = False
  On Error Resume Next  ' pro stav, kdy je TmpEE prazdna
  With Me
    .Range("tmpee").ClearContents
    On Error GoTo 0
    Application.EnableEvents = False
    ' prenest hodnoty z ColCC do TmpEE a setridit
    .Range("colcc").Offset(0, 2).Value = .Range("colcc").Value
    .Range("colcc").Offset(0, 2).Sort Key1:=.Range("colcc").Resize(1, 1).Offset(0, 2), _
        Order1:=xlDescending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Application.EnableEvents = True
  End With
  Application.ScreenUpdating = True
End Sub3. Muzes bez problemu proceduru 
PomRozdilRadku() prenest do standardniho modulu a volat jinou procedurou. Je nutno si vsak uvedomit, ze byla napsana pro uziti v modulu listu (prepocet listu Worksheet_Calculate() ). takze je nutno klicove slovo 
Me deklarujici implicitne objekt list, v nemz je procedura, nahradit  Worksheets("sum"). Pri pouziti prikazu With:
Kód: Vybrat vše
Option Explicit
Private Sub PomRozdilRadku001()
  Application.ScreenUpdating = False
  With Worksheets("sum")
    On Error Resume Next  ' pro stav, kdy je TmpEE prazdna
    .Range("tmpee").ClearContents
    On Error GoTo 0
    Application.EnableEvents = False
    ' prenest hodnoty z ColCC do TmpEE a setridit
    .Range("colcc").Offset(0, 2).Value = .Range("colcc").Value
    .Range("colcc").Offset(0, 2).Sort Key1:=.Range("colcc").Resize(1, 1).Offset(0, 2), _
        Order1:=xlDescending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Application.EnableEvents = True
  End With
  Application.ScreenUpdating = True
End SubPokud tato procedura bude volana z jinych modulu, odstran deklaraci Private ( a muzes ji volat i z Worksheet_Calculate(), kdyz nebude volana odjinud)