< návrat zpět

MS Excel


Téma: zrychlení formuláře rss

Zaslal/a 14.12.2013 13:16

Dobrý den,
v příloze mám formulář, ve který je velmi začátečnický, ale funguje.
Problém je, že se form s názvem userform,načítá poměrně dlouho.
To znamená cca minutu dle výkonu PC.
Namém domícím je to patnáct sec, ale na pracovním je to zmiňovaná minuta.
je mějasné, že je to očistý amterismus, ale potřeboval bych formulář urychlit, pomůžete prosím.
Obrázkůtam má být cellkem 60, velikost jsem změnil, abych to mohl poslat.
Díky za každou pomoc

Příloha: zip16798_mikrokompas_vyvoj.zip (252kB, staženo 28x)
Zaslat odpověď >

#016808
avatar
chyba tam sheet "data_procesy" tak sa to neda ani poriadne otestovatcitovat
#016809
avatar
Pokud bych mohl na email odeslat celý soubor,cca půl mega, možná by to bylo lepší.citovat
#016810
avatar
tak to poslite na pavolll@zoznam.sk pozrem sa natocitovat
#016815
avatar
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
#016823
avatar
Děkuji za váš čas a rady.Přiznám se, že kód mě trochu dělá problémy, ale snad ho pochopím.
Nejlepší rada byla s komprimací obrázků a to jsem si myslel, že jsou malé.byly kolem dvaceti kilo a nyní jsou do deseti.takže to pomohlo.
Díky ještě jednou, jdu chápat ten kód.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje