< návrat zpět

MS Excel


Téma: Online a Offline Addin rss

Zaslal/a 1.7.2014 9:50

Ako najefektivnejsie pracovat s makrom pre viacerych uzivatelov

takze mame povedzme 100ludi vsetci pracuju na internej sieti ale maju notebooks a beru si ich aj domov

... kedze kazdy programator si logiku robi sam tak tu davam svoj navrh ... verim tomu ze su aj lepsie veci ale len pre zaujimavost (nieje to cely kod takze trebaho potom dorobit)

Vytvorime si addins addin1 = offline a addin2 = sietovi

Addin1 (Offline): bude len kontrolovat ci je pocitac pripojeny k internej sieti a ci je verzia addinsu aktualna ked nieje pusti sa z jeho pocitaca
Addin2 (sietovi): je hlavne jadro programu

Addin1:
Sub Auto_Open()
If aDetectStatus(Version) Then
If aDelectVersion(aVersion) Then
Call aOnline
Else
Call aRefreshFolderFile
Call aOnline
End If
Else
Call aOffline
End If
End Sub

Sub Auto_Close()
If aDetectStatus(Version) Then
Call aUnloadOnline
Else
Call aUnloadOffline
End If
End Sub


nechcelo sa mi to cele rozpisovat ale ide o to:
Sub Auto_Open(): event sa zapne pri otvoreni excelu
Sub Auto_Close(): event sa zapne pri zatvoreni excelu

aDetectStatus: funkcia na zistovanie ci dana sietova cesta existuje ... vracia true/false
aDetectStatus existuje: tak skontroluje aDelectVersion ci verzia je ta ista ako sietova verzia porovna napr. textak v internom pc ktory je vytvoreny alebo nieje vytvoreny s textakom na sieti ..... (pozn. nieje vytvoreny ... moze sa jednat o noveho uzivatela)
aDetectStatus neexistuje: nainstaluje Addins2 offline

aDelectVersion: funkcia na zistovanie aktualnosti addins2 ... vracia true/false
aDelectVersion nezhoduje sa alebo nieje textak: tak skopiruje Addins2 do uzivatelskeho pocitaca. Potom nainstaluje Addins2 Online/offline
aDelectVersion ta ista verzia: nainstaluje Addins2 Online/offline

.... Addins Online/offline ci: zapnut to z miesneho pc alebo z sietoveho adresara to uz je na vas ... zalezi aky je to addin

a na zaver sa pri ukonceni excelu addins2 online/offline sam oddinstaluje

Vyhody:
- Instalacia u uzivatela je velmo jednoducha staci len nainstalovat addins1 ... s zapisom na disk
- kedze addins2 sa nachadza na sieti tak je dost jednoduche taketo nieco manazaovat/upravovat/menit
- pomocne subory k addinsu sa musia ukladat cez prikaz cesty Environ("APPDATA") .... funguje aj v win xp/ milenium/7/8 atd. .... takze na uzivatelskom pocitaci nebude problem s vytvorenim zlozky pre addin

viem ze som to napisal dost v skratkach ale tato tema je podla mna dosttt na dlho

Zaslat odpověď >

Strana:  « předchozí  1 2 3
#020654
avatar
Ešte ma napadlo, že tento addin (po tom čo by skontroloval svoju aktuálnosť) by mohol pozrieť do zoznamu uloženom na sieti a pre daného užívateľa nainštaloval jemu príslušné addins.

Respektíve, nainštaloval by mu addin pre konkrétny zošit (napr. pre zošit Report1.xlsx addin Addin1.xlam, ...) - takto by sa dalo tiež obísť obmedzenie, že v zabezpečených zdieľaných zošitoch nemôžu byť uložené makrá. Pri ukončení zošitu Report1.xlsx by sa Addin1.xlam odinštaloval (len ma teraz nenapadá, na aký event by to bolo naviazané).citovat
#020655
avatar
pvav: pri praci s addin-som a ked savnete dokument tak v tom dokumente nebudu savnute makra ktore patria addinsucitovat
#020657
avatar
@Palooo:
to mi je jasné, makrá budú v addine.citovat
#020660
avatar
@Palooo:
Išlo mi o oddelenie dátovej (zošit s dátami bez makier) a aplikačnej (makrá uložené addins) časti.

Aktuálne addins s makrami budú na sieti, z kadiaľ sa v prípade potreby nainštalujú pre daného užívateľa a/alebo pre príslušný dátový zošit.
Zošity s dátami neobsahujú makrá (ak sú zdieľané a zabezpečené tak ani nemôžu).citovat
icon #020670
eLCHa
@pvav
"Respektíve, nainštaloval by mu addin pre konkrétny zošit (napr. pre zošit Report1.xlsx addin Addin1.xlam, ...)"
Toto by pravděpodobně šlo.
Jenže mi to přijde zbytečně komplikované - pokud se nejedná a tisíce procedur, tak mi přijde jednodušší dát je do jednoho doplňku (pro všechny soubory) a volat ten jeden doplněk.

Pokud chcete testovat, který soubor (bez kódu, takže v něm nelze použít událost) je otevřen a podle něj něco dělat (otevírat doplněk), tak asi stejně budete muset mít nějaký doplněk, který toto zajistí, nainstalován.

k tomu eventu - v rychlosti například:
1 standardní modul s kódem (využiji Auto_Open)Public test As Class1

Sub Auto_Open()
Set test = New Class1
Set test.App = Application
End Sub
1 modul třídy s kódemPublic WithEvents App As Application

Private Sub App_NewWorkbook(ByVal Wb As Workbook)
MsgBox Wb.Name
End Sub

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
MsgBox Wb.Name
End Sub
Při otevření nového souboru dojde k vypsání názvu otevřeného souboru.
Nicméně, excel má tendenci zapomínat, takže bych se přikláněl k 1 doplňku, v něm všechny potřebné procedury ke všem typům souborů (např. v modulech) a v těch souborech je volat.
Do excelu 2003 se dalo využít reference - pokud jste v referenci zadal soubor, který obsahoval kód, ten se otvřel s tímto souborem. Měl jsem v plánu to více prozkoumat, ale protože mi to od 2007 přestalo fungovat, tak jsem to už nezkoumal.citovat

Strana:  « předchozí  1 2 3

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