< návrat zpět

MS Excel


Téma: automatické vytváření rss

Zaslal/a 5.1.2011 21:54

ahoj všem,
jsem spíš uživatel s trochou praxe kdysi dávno s basicem na 8mi bitu...
mám prosbu o radu, nebo dotaz. Máme v exelu dokumenty, které se tvoří ručně, vzorce jsou v šabloně.
V jednom sešitě je na každém řádku ID a název akce. Pak je pod tímto ID otevřen sešit s obsahem akce.
Šlo by napsat dialogové okno, kde by se po zapsání názvu akce inkrementovalo ID a otevřelo další sešit s názvem tohoto ID? Možná komplikace je i v tom, že se někdy aktualizuje stávající akce. Starý sešit zůstává, jen se zkopíruje do nového jež má za svým ID ještě pomlčku a jednu číslici aktualizace.
Nevím kde začít. Děkuji moc.

Zaslat odpověď >

Strana:  « předchozí  1 2 3 4   další »
icon #003841
Poki
Co me napada je, ze by se mely vymazavat z pameti objektove promenne.
Pouzivate-li treba FileSystemObject, mel by na konci kodu byt zapis: Set FSO = Nothingcitovat
#003862
avatar
nepoužívám tyto proměnné. Ale občas asi přeteče stack. Ale jen při ladění, v praxi se ještě nestalo.

Jestli mohu ještě dotaz: Jak hotový soubor zamknout proti zápisu a jakým příkazem jej potom odemknout?

Jinak zatím fakt moc děkuji za všechny rady. Díky nim se mi podařilo napsat funkční code, i když by šel určitě elegantnější. Ale chytlo mě to.citovat
#003864
avatar
tak to občas vypne, i když je excel jen na pozadí a hledám něco na netu. Zajímavé.
Zamknutí jsem našel - tedy příkaz protect, ale i takto zamčený dokument po otevření mohu editovat. Ještě to projdu, jestli jsem neudělal někde chybu.

Co jsem však opravdu nenašel je jak zamezit možnosti vypnout userform (červeným čtverečkem vpravo nahoře). Myslím že jsem to tuněkde zahlédl, ale teď to nemohu nalézt. Možná jsem to špatně pojmenoval. Můžete prosím pomoci? Děkuji a hezký den.citovat
icon #003869
Poki
Pokud jde o zamceni - lze zamknout sesit nebo list. Ve vasem priprade by se asi melo jednat o list (aby uzivatel neprepsal nejake bunky)-
Worksheets("list1").Protect Password:="MojeHeslo"
Worksheets("list1").Unprotect Password:="MojeHeslo"


Krizkem na vami vytvorenem userformu lze zakazt takto:Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = True
End Sub
citovat
#003877
avatar
Děkuji. Fakt to funguje. Jsem zavázán.citovat
#003882
avatar
Zdravím,
myslel jsem, že budu chvíli pracovat sám, ale trochu mi asi chybí úplné základy. Zápolím s voláním podprogramů a s nastavováním parametrů. Konkrétně:
Podle tlačítka stisknutého v UserForm1 a dalších podmínek skáču do jiného UserForm2. Zde je řada tlačítek. Pokud přímo do procedůry tlačítka dám CommandButton1.visible = False, zobrazí se tlačítko a po kliknutí na něj zmizí.To je logické. Ale když tento příkaz dám do UserForm2, nic se neděje. Pokud ho dám do UserForm1 těsně před volání UserForm2 (i s cestou), hlásí že nezná.
Asi tápu v tom, co kam umístit. A jestli to dělat Private_sub nebo Public_sub.
Měl jsem představu, že si napíšu jednotlivé SUB, které si parametry načtou buď z proměnných, nebo z buněk listu a také tak vrátí výsledky. A že je budu moci volat ze všech prvků projektu. Ale něco dělám špatně. A ani google mi nepomohl... Nebo neumím hledat. Prosím, pomožte.citovat
icon #003883
Poki
To není zase az tak tezke, jen si musite uvědomit, co se prave deje – jaky kod probiha, jaky uz skoncil atd.
Poud NEpouzivate promene Public, tak procedury mohou používat jen promenne definovane v nich samych.
Pokud jde o tlačítka, lze si to predstavit jako bunky na listech: bunka A exituje na Listu1 i na List2…, proto pokud chcete pracovat s bunkou A1 na List1, musite to jasne rict, protože pokud napisete jen Range(„a1“), bude se pracovat s bunkou A1 na aktivnim listu.
Tedy, je lepsi do kodu (pokud se nejedna primo o kod umisteny v UserForm1) psat celou cestu k tlaticku: napr. UserForm1.CommandButton1.Visible = False a UserForm1.CommandButton1.Visible = False.
Snad to pomuze…citovat
#003898
avatar
tak to opravdu chodí pěkně. Vytvořil jsem tabulku, kde jsou oprávnění a ty natahuji podle zadaného jména. jednoduché a efektní. Díky.

narazil jsem na věc, se kterou mám ale potíž - potřebuji sečíst do buňky řadu čísel nad ní. Je to dlouhý sloupek a na základě flagů jinde se to rozdělí na řadu součtů. Pozice buněk znám. Načetl jsem si makro SUM a z něj použil formuli: ActiveCell.FormulaR1C1 = "=sum(R[-5]C:R[-1]C). Tedy po troše laborování s podobou to takto funguje.
jenže já nemám vždy stejý počet buněk ve sloupci k sečtení. A proměnnou mi to ne a ne vzít. Copak prosím dělám špatně?
(ActiveCell.FormulaR1C1 = "=sum(R[pos_vrch]C:R[-2]C)
- pos_vrch je relativní pozice pro sloupek.

Omlouvám se za laický dotaz, ale v knížkách co jsem si koupil (asi ne moc dobře) a ani v příkladech jsem nevykuchal.
Předem moc a moc děkuji.

Organizačně - pracuji sice na stejném projektu, ale neměl bych na toto založit jiné vlákno?

Mooooc děkuji.citovat
icon #003899
Poki
Ja nemam rad relativni odkazovani, ani nevim proc, ale proste se mi nelibi.
Pokud budete schopen zjistit, na kterem radku zacinate bunky scitat, muzete pouzit toto (PROMENNA by mela byt cislo radku, kde se zacina scitat).
ActiveCell.Formula = "=sum(" & Cells(ActiveCell.Row - 1, ActiveCell.Column).Address & ":" & Cells(PROMENNA, ActiveCell.Column).Address & ")"

Pkud jde o organizaci, asi by bylo lepsi pro kazdy dotaz zalozit nove vlakno, aby bylo podle nazvu zjistitelne, jake odpovedi se ctenar muze dockat...citovat
#003901
avatar
děkuji moc. Tady to bych tedy dotáhl zde a další problémek otevřel v jiném vlákně.
řádek jsem použil, proměnná je nadimenzovaná jako Long. hlásí mi to: Application_defined or oject-defined error. Nemyslel jsem si, že mě zarazí součet buněk v jednom sloupci když znám odkud kam. Asi to udělám smyčkou. Pokud tedy nedělám nějakou triviální chybu. Můžete mi prosím poradit na co se podívat?citovat

Strana:  « předchozí  1 2 3 4   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