no pozrel som to a to dost velke a popravde nieje to robota na 5minut ale mozno aj na den tak len v skrateke vysvetlim:
napr.
Fname1 = ThisWorkbook.Path & "\" & NAZEV1 & ".jpg"
NAZEV1 = Cells(2, 2)
nd_1 = Cells(2, 5)
m_1 = Cells(2, 7)
h_1 = Cells(2, 6)
fr1.ControlTipText = "Pro vynulování hodnot, zde proveďte DOUBLE CLICK"
o_1.Picture = LoadPicture(Fname1)
mozte hodit do cyklusu
for x = 1 to 60
Me.Controls.Item("Fname" & x) = ThisWorkbook.Path & "\" & Cells(x+1, 2) & ".jpg"
redim preserve menu(2,x)
menu(0,x) = Cells(x+1, 5)
menu(1,x) = Cells(x+1, 7)
menu(2,x) = Cells(x+1, 6)
Me.Controls.Item("Fr" & x).ControlTipText = "Pro vynulování hodnot, zde proveďte DOUBLE CLICK"
Me.Controls.Item("o_" & x).Picture = LoadPicture(Fname1)
next
... samozrejme tento zapis neurychli kod ale je to hned prehladnejsie
... pouzil som tam pole 2dimensionalne pomenovane "menu" zamiesto 1dimensionalneho ale 3x pola nd, m, h
dalsia vec neprehladna:
Private Sub ob41_change()
On Error Resume Next
If ob41.Value = True Then
fr5.Caption = " MANIPULACE ANO"
Cells(6, 8) = 1
fr5.ForeColor = &HFF&
fr5.Font.Bold = True
Else
fr5.Caption = " POČET MANIPULACÍ"
fr5.ForeColor = &H80000012
fr5.Font.Bold = False
End If
Calculate
kila_TT = Cells(2, 18)
kila_na_proces = Cells(2, 19)
End Sub
ste mali odkazovat na dalsii sub a tam to len raz zapisat
Private Sub ob41_change(): object 41: End Sub
Private Sub ob42_change(): object 42: End Sub
Private Sub ob43_change(): object 43: End Sub
Private sub Object(byVal x as integer)
' tu pracovat podobne ako som hore uviedol
end sub
... ulahci to prehlad kodu a tak isto jeho buducu upravu
Urychlit nacitavanie:
- skomprimovat obrazky
- alebo ich vobec nepouzivat
- bez obrazkov ten proces trva ani nie 1s
... inac je to dobre napisane aj ked neprehladne :)
citovat