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 Sub
3. 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 Sub
Pokud tato procedura bude volana z jinych modulu, odstran deklaraci Private ( a muzes ji volat i z Worksheet_Calculate(), kdyz nebude volana odjinud)