< návrat zpět

MS Excel


Téma: VBA - automatické přidání položky do formuláře rss

Zaslal/a 13.10.2016 10:56

Zdravím, vytvořil jsem si jednoduchou evidenci skladových zásob. Tlačítko "Zapsat změnu" vše funkční bez problémů. Ale následně vznikl požadavek na přidávání položek což jsem udělal tak, že se přidá sloupec a zapíše se počáteční hodnota.
Ale nevím jak novou položku přidat do formuláře pro změnu stavu (naskladnění, použití). Jde nějak kódem jednoho formuláře změnit kód toho druhého?
Mohl by někdo poradit?

Zaslat odpověď >

Strana:  1 2 3   další »
#033072
avatar
příloha
Příloha: 7z33072_kreform.7z (36kB, staženo 35x)
citovat
icon #033088
eLCHa
Změnit kód kódem sice lze, ale budete se potýkat s nastavením zabezpečení excelu. Navíc je to zbytečné.

Jediné co musíte udělat, je vytvořit takový formulář, který si vytvoří sám pole podle požadavků. Pokud rozumím, chcete aby obsahoval položky D1:L1 a případné další.
Pro každý sloupec musí vytvořit jeden label a jeden textbox. Já to dělám tak, že první si nastavím manuálně a další vytvářím kódem.Pak vždy nastavíte rozměry dle toho prvního a pozici, jako chcete - pozice posledního + výška + mezera. Nakonec musíte kódem změnit pozici potvrzovacích tlačítek.
Toto napíšete jednou a bude to fungovat, dokud se vlezete na obrazovku.

Nemám čas to vytvářet, ale na webu je toho na toto téma hromada - například v rychlostihttp://stackoverflow.com/questions/10544456/dynamically-adding-labels-to-user-form-blank-userformcitovat
#033110
avatar
Děkuji za odpověď.
Toto zkusím, ale jak vytvořit funkci potvrzovacího tlačítka tak aby zapsalo do "databáze" ty případně přidané položkycitovat
#033111
avatar
Jako na zavolanou. Trochu jsem se v tom hrabal, spíš sám pro sebe, jestli bych to uměl dotáhnout do funkčního stavu.
Původní moje myšlenka byla: proč přidávat složitě položky do formuláře, nešlo by to jinak?
V příloze jsou 2 verze:
V první je to pomocí jednoho formuláře, s výběrem položky, ale tím zapisuje změnu jen jedné položky skladu. Stisknuté tlačítko způsobí přidání/odebrání.
Ve druhé je k zápisu změn použitý přímo list - to mi přijde lepší, jde změnit cokoliv najednou, kladná hodnota přidá, záporná ubere.
Mimoto jsem jen trochu upravil tabulky v listech, aby se mi s tím líp pracovalo.
Berte to jako ukázku, není to dotažené k dokonalosti, ale vyzkoušejte.
Příloha: zip33111_soubory.zip (95kB, staženo 37x)
citovat
icon #033112
eLCHa
@xawerius
Pokud vytváříte ovládací prvek podle hodnoty v buňce - uložte si pozici této buňky do tohoto prvku (využijte Tag). Toto potom využijte ke zpětnému zápisu (Intersect + EntireColumn)citovat
#033121
avatar
Zdravim,

taky jsem zkousel... s UserForm moc nedelam. Tak muzete vyzkouset muj pokus.
Samozrejme jsem taky musel trochu sesit upravit, a nemam ceske office.. tudiz bez diakritiky.
Příloha: rar33121_programmatically-add-ctrls-to-userform.rar (37kB, staženo 39x)
citovat
#033148
avatar
Zdravím a děkuji za odpovědi.
@syd
Nakonec jsem použil vaše řešení, které jsem si upravil. Rozdělil jsem formulář na přičítání a odečítání materiálu a při přidání nového druhu se mi k názvu přidá komentář s obrázkem.
Nicméně mám jiný problém - nedaří se mi nacpat do formuláře funkční posuvník pro případ, že položek je moc (např. >15).citovat
#033150
avatar
Prikladam verzi 2 pro predstavu, jak udelat.
Musel jsem to trochu zmenit.
Nejdrive pridavam control Frame a do neho se pak skladaji Labels a TextBoxes.
Kdyz je polozek vic jak 15, 'zmrazi' se vyska Frame (i formulare), a zobrazi se scrollbar ve Frame.

sydcitovat
#033174
avatar
Děkuji, drobně jsem učesal a pracuje výborně. 1citovat
#033177
avatar
Tak jsem teď přišel na jeden problém a trápím se trápím... Po vkládání textboxů do framu nepracuje makro OnlyNumbers ... přitom, když do něj zapíšu chybu, tak se mi po změně hodnoty v TextBoxu spustí debuger a ukazuje na jeho první řádek

If TypeName(frmEvidence1.ActiveControl) = "TextBox" Thencitovat

Strana:  1 2 3   další »

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