Stránka 1 z 1
Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 20 zář 2012 09:23
od Pavel1234
Dobrý den.
Potřeboval bych poradit jak jinak napsat přložený formulář pro přidávání godnot pro tvorbu grafu.
Zatím to řeším hromadou maker pro každou hodnotu zvlášť ale chtěl bych použít ten formulář. Jde o to, že v Combobozu1 (2,3,4) vyberu typ zpráv a podle typu zprávy se naplní spodní combobox (Signál). Po stisku OK zjistím co je vybráno a provedu akci. (Přiložený form jen generuje msgboxy)
Jde o to, že mám zatím jen pár typů zpráv s minimem signálů (Těch by mělo být asi 10x víc) a už teď je to dost rozsáhlé, nepřehledné a náchylné na překlepy.
Velmi uvítám jakýkoliv nápad jak to zjednodušit - zpřehlednit.
Děkuji
Pavel
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 20 zář 2012 17:18
od cmuch
Trochu jsem prepracoval kod pro zobrazování comboxu na zaklade hodnot v prvnich comboboxech.
Nějaké popisky jsem vlozil.
Tak nevím zda by to takto stačilo.
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 20 zář 2012 18:25
od Pavel1234
Díky
Určitě použiji.
Ještě bych měl dotaz - Nelze nějak nadeklarovat seznam hodnot a ten pak jedním příkazem přiřadit ComboBoxu?
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 20 zář 2012 20:03
od d1amond
Hodnoty jako parametry seznamu toho Comboboxu? To se řeší např. zvláštním listem (může být skrytý), odkud se dají hodnoty pro ComboBox načítat.
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 20 zář 2012 21:00
od Pavel1234
Nerozumím - jak zvláštním listem?
Myslíš přidat do každého souboru kde se to spustí list se seznamem hodnot pro jednotlivé Comboboxy?
Znamená to další makro pro přidání toho listu před spuštěním formuláře a další na odstranění listu po zavření.
Navíc volané procedury z CmdOK_Click () jsou opřené o Sheets(Index)
To mi nepřijde moc jako zjednodušení.
Účelem toho formuláře je, že v hlavním Combovoxu se vybere typ komunikace a podle vybraného typu komunikace se naplní spodní combobox příslušným seznamem signálů. Dle vypraných hodnot se pak ze záznamu vyzobou data pro vytvoření grafu
Formulář stavím jako jednoprojektový, takže seznamy jsou dané.
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 20 zář 2012 21:58
od d1amond
Proč ho odstraňovat? Stačí aby byl skrytý a zobrazovat se může jen při potřebě aktualizace parametrů.
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 21 zář 2012 06:22
od Pavel1234
Protože s těmi soubory pracují i jiná makra. Ta by se musela přizpůsobit a zjišťovat, zda soubor ten skrytý list již obsahuje či ne.
Počet souborů se mění podle délky záznamu. Jeden soubor pojme cca 100 sekund. Tedy běžný 20 godinový záznam má okolo 720 souborů.
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 21 zář 2012 13:18
od d1amond
Dost nešikovné. Proč nemít jeden mustr, včetně parametrů a na ten dosazovat výstupní data a následně ukládat?
Re: Excel Formulář zpřehlednění (zjednodušení) kódu
Napsal: 26 zář 2012 17:49
od Pavel1234
Omlouvám se za prodlení v komunikaci
Je to lákavá myšlenka ale vůbec netuším jak ji realizovat.
Příklad:
Mám vstupní CSV se 114 000 000 řádky (20 různě časovaných zpráv) a potřebuji najít největší kladnou změnu signálu 1 mezi dvěma po sobě jdoucími zprávámi 1.
Řeším to tak, že CSV splitterem rozsekám ten soubor do jednoho adresáře na 1140 csv souborů po 100000 řádkách. Po té je pomocí makra převedu do excelu a vypočítám ke každé zprávě RTC. Po té spustím makro, které mi najde soubor s největší směnou.
Já si ten soubor otevřu, k RTC přidám hodnoty které chci vidět v grafu - na to má složit ten formulář s Comboboxy, a po té, co se dopočítají hodnoty tak dalším makrem přenesu ty hodnoty do nového souboru a vytvořím graf.
Zní to hrozně a je to hrozné ale nikdy nevím jakou závislost budu potřebovat vyhledat či jaké hodnoty pro konkrétní čas budu potřebovat vyhledat a pokud bych chtél nejprve pro to CSV vypočítat hodnotu všech signálů ve všech zprávách, to uložit a pak v tom něco hledat tak bych asi musel vyměnit svůj ntb za nějakou sálovou mašinu.
Pokud máš nějaký konkrétní nápad jak výše uvedený příklad řešit lépe, pak jej samozřejmě uvítám.
Dík
Pavel