Pěkný den, prosím o nakopnutí, už jsem na řešení před časem narazil, ale teď na to nemůžu přijít.
V buňce (resp. buňkách pod sebou) - sloupec D chci mít nastaveno ověření vkládaných dat prostřednictvím nadefinovaného seznamu hodnot nacházejícího se na listu nazvaného "Číselník". Ale potřebuji, aby místo položky vybrané ze seznamu se ve skutečnosti zapsala do buňky jí přidružená hodnota. Ten seznam je tedy tvořen oblastí o 2 sloupcích. V buňkách A2:A28 jsou názvy kategorií, které se mají zobrazovat v rozevíracím seznamu. V buňkách B2:B28 pak jsou jim odpovídající hodnoty, které se po výběru názvu skutečně do buňky s ověřením mají vložit. Jak to udělat? Přikládám modelový sešit.
V této souvislosti mě napadá ještě limitující omezení, pokud jde o šířku zobrazovaného pole rozevíracího seznamu, které odpovídá šířce sloupce s nastaveným ověřením dat. Jelikož je název výrazně delší textový řetezec, jak hodnota a jí přizpůsobená šířka sloupce, nezobrazuje se při výběru v rozevíracím seznamu text názvů celý, což je nežádoucí.
Předem děkuji za pomoc.
Zdravím po nějaké době. Je dobře, že za mě práci nikdo neudělal. Nezbylo mi totiž, než se vrhnout, přes veškerý respekt k VBA i trochu navzdory své pohodlnosti, do učení a bádání, tedy do něčeho, k čemu jsem se už dlouho odhodlával. Takže děkuji.
V příloze je dílčí fungující výsledek mého snažení, prakticky splňující moje požadavky. Tedy až na to, že při hromadném tisku výkazů se dialog pro nastavení tiskárny zobrazuje pro každou fyzickou stránku zvlášť. Potřeboval bych, aby to proběhlo jenom jednou pro tisk všech výkazů a stránek. Prosím, zda by se na kód a souvislosti mohl mrknout někdo zkušený a případně mi to upravit nebo připomínkovat. Děkuji.
Na ovládacích prvcích a dalších funkcích v sešitě, nad rámec tady výše uvedeného zadání souvisejícího s tiskem, pracuji a nepochybně budu potřebovat s tím také pomoct, ale to spíš v jiném vlákně.
Snažil jsem se s úkolem nějak poprat, ale skončil jsem velmi brzy. Rozšíření mých požadavků na funkčnost, jak jsem popsal v předchozím příspěvku, je pro mne nepřekonatelné, navíc jsem narazil na problém s velikostí tiskové oblasti pro ležatou orientaci strany, kterou je třeba pro tisk v makru zmenšit - přizpůsobit tak, aby se vešla na formát A4. První list "Vstupní data" nemá být do hromadného tisku zahrnutý. Vlastně ani neumím přiřadit makro tlačítku na listu. Použil jsem ovládací prvky AktiveX místo formulářových, nevím, má-li to zásadní význam. Pomůže mi s tím, prosím, někdo? Přikládám sešit, kde to má být reálně aplikováno.
To Elninoslov: Brilantní! Jako už po x-té jsi vymyslel řešení pro jedno z mých "neobvyklých" zadání. Děkuji moc.
V oblasti VB jsem stále nedouk, tak jestli můžu ještě poprosit o vylepšení:
- na každém listu by byla 2 tlačítka pro tisk - jedno pro hromadný tisk všech listů a druhé pro tisk pouze aktivního listu (otázka, jak bude proces tisku probíhat při jeho spuštění standardním zůsobem z menu)
- v případě hromadného tisku - podmínit, že bude příslušný list zahrnut do tisku pouze v případě, že v něm bude "tisk povolen" zatrhávacím políčkem.
Vzhledem k tomu, že v rámci sešitu bude nastávat běžně situace, kdy určité listy bude třeba odstranit a naopak přidat rozkopírováním další listy, tak aby s tím makrem nenastal nějaký problém.
Potřeboval bych ten tisk obou stran provádět na jedno zadání. Mám v sešitě cca 50 listů, každý obsahuje totožnou strukturu tabulek, ale s různými daty. Takový sešit se tvoří každý měsíc nový a naplňuje se daty. Na každém listu jsou prakticky 2 provázané tabulky, které je třeba ve finále tisknout. Každá ta tabulka je velikostí na celou stranu A4, ale jedna je orientovaná na šířku a druhá na výšku. Nastavovat orientaci ručně pro každou stránku by bylo dost opruz. Asi by šlo vytisknout napřed ze všech listů 1. stranu, pak změnit nastavení orientace stránky a vytisknout 2. stranu. Pokud jiné řešení není, bude se to tak muset dělat.
A takto by to nefungovalo?=COUNTIFS(DATA!F:F;A2;DATA!Q:Q;">100%")
Dobrý den všem,
ví prosím někdo, zda lze, případně jak, tisknout z jednoho listu 2 oblasti (nastaveno v "Oblast tisku"), jednu na stránku na výšku a druhou na další stranu, ale s orientací na šířku?
Děkuji Pavlus a eLCHa za přínosné reakce. Jsem nakonec rád, že problém není zase tak triviální. Samozřejmě jsem to napřed zkoušel nastavit přímo v Excelu, ale chovalo se to s tím podivným přičítáním dvouciferné konstanty stejně jako s makrem.
Tak mi asi hrabe, teď to funguje, včera to nefungovalo. Konečná verze je tato:Sub Zahlavi()
With Sheets("List2").PageSetup
.RightHeader = "&6 strana &P+25"
.LeftHeader = "&6 strana &P"
End With
End Sub
Ahoj všem,nevím si rady s problémem a prosím o pomoc. Potřebuji do záhlaví na 2 různá místa číslo stránky, ale s tím, že v levém záhlaví bude standardní číselná řada od hodnoty 1 a v pravém číslování bude začínat od hodnoty 26. Jiné řešení, jak makro nejspíš není. Něco jsem zkoušel, ale skončil jsem na tom, že se konstanta přičítá k číslu stránky vycházející z kódu "&P" ne podle mých představ. Na první stránce se místo hodnoty 26 objeví 35, na druhé 45 atd. Ve VBA nejsem kovaný, takže problém je, hádám, mezi židlí a klávesnicí.
Sub Zahlavi()
With Sheets("List2").PageSetup
.RightHeader = "strana &P+25"
.LeftHeader = "strana &P"
End With
End Sub
Ještě potřebuji, aby velikost písma byla 6, font Arial.
Makro mám vložené do Objektu "List2".
Přikládám nástřel řešení, jak jsem pochopil ne zcela srozumitelné zadání...
Dobrý den,
vyhovovalo by přiložené jednoduché řešení?
Edit: 22.7.2021 8:30
Zdravím komunitu. V sešitě "Výchozí data" v listu s názvem "Seznam abc" v buňkách oblasti Q16:Q300 mám vzorec, jehož výsledkem je seznam jmen (ze zdrojových dat - list s názvem "Databáze" vybírá pouze řádky označené v jednom sloupci znakem např. "A" - aktivní, slučuje z jednotlivých sloupců jméno, příjmení, titul a výsledný seznam řadí podle abecedy). Tento seznam čítá aktuálně cca 200 aktivních jmen, ale rozsah se průběžně mění, podle toho jak se manuálně aktualizují výchozí zdrojová data v listu "Databáze" (přiřazuje nebo odebírá se jim aktivita, doplňují se nakonec databáze noví lidé). V tom listu "Seznam abc" mám dynamicky pojmenovanou oblast - aktuálně jmény naplněný rozsah z oblasti Q16:Q300. Potřebuji v prvním kroku tuto oblast se jmény nějakou ručně spuštěnou procedurou v právě platné podobě jednorázově přenést (načíst) do listu "Formulář" v jiném sešitu (např. s názvem "Záznamy-1") s první položkou seznamu v buňce E9. Ve formuláři musí být přenesený seznam v podobě hodnot, nikoli vzorců. To proto, aby se po provedeném jednorázovém načtení už dále neměnil - neaktualizoval a nebyl propojen se zdrojovým sešitem. Takto potřebuji načtení hodnot v právě aktuální podobě provádět opakovaně, vždy do nového sešitu, který budu vytvářet (z prvotního vzorového) a ukládat pod jedinečným jménem (Záznamy-2, Záznamy-3 atd.).
V druhém kroku by se potom k jednotlivým jménům měly načíst do dalších sloupců ze zdrojové databáze příslušné další údaje (os. číslo, kód útvaru, rodné č., poznámka a datum).
Jde mi o zautomatizování popisovaného načtení hodnot do připraveného otevřeného sešitu z toho zdrojového, nic víc.
Myslel jsem původně k tomu využít funkci "Načíst data", ale obávám se, že bez makra se to nedá. Prosím, měl by někdo nějaký názor nebo nápad?
Beru zpět, blamoval jsem se a trápil se zbytečně s pseudoproblémem. Opravdu to funnguje jak se očekává. Moje potíže vznikly z toho, že mezitím, co jsem nadefinoval názvy odkazů na jiné sešity, byl výpadek napájení. Po automatické obnově souborů jsem je při uložení přejmenoval a cesta k nim se tak ztratila.
Dobrý den všem,
prosím o nakopnutí. Mám pojmenovaný odkaz na oblast v jiném sešitě (ten je otevřený). Použiju-li tento název přímo ve vzorci, funguje. Pokud ale tento název sestavím jako textový řetězec a s využitím funkce NEPŘÍMÝ.ODKAZ jej vložím do vzorce, vrací Excel chybu #ODKAZ. Jaké je řešení? Předem díky.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.