A musí to být makrem.
Co třeba použít ověření dat?
Třeba takto přes ověření dat.
@elninoslov: Aha, já jsem přehlédl tu funkci Split. Teď už mi to dává smysl
@elninoslov, proč jsou v textovém poli ty čárky a uvozovky na konci? Stlpy = Split("D,G,H,I,J,K", ",") Nedává mi to smysl
Makro samozřejmě funguje, bude to nejspíš špatným opisem. @Sperhak by měl poslat makro, které mu nefunguje. Bez toho to asi nepůjde odladit.
Bez přílohy (soubor, který vám "nefunguje") těžko radit.
Zkuste:Worksheets("odvádění").ScrollArea = "A:G"
Ještě zvažte, jestli dát k dispozici celý sloupec a nebo omezit i počet řádků. Např A1:G10
Rádo se stalo.
Vytvořit proceduru:
Private Sub TextBox1_Change()
V proceduře pak:
1. zjistím si nejvyšší ID (ve vašem případě 50)
2. pokud je UserForm1.TextBox1.Value větší než nejvyšší ID tak UserForm1.TextBox1.Value = ""
Jinak v tom přiloženém makru máte zřejmě chybu. Nejdřív naplníte proměnnou PoslednyRadek a následně použijete v cyklu proměnnou emptyRow For i = 1 To emptyRow Myslím, že ten cyklus vůbec neproběhne, protože emptyRow je nula (pokud se tedy nejedná o globální proměnnou)
Jsem rád, že to poslouží.
Ovšem perfektní to zdaleka není. Chtělo by to minimálně dynamickou oblast pro ověření dat, aby tam při výběru položky nebylo zbytečně mnoho prázdných řádků.
Kdyby se odstranily ty pomocné sloupce, taky by to bylo fajn, ale to neumím.
Nevím, jestli můj popis pochopíte:
Ve sloupci I jsou unikátní (jedinečné) hodnoty ze sloupce A, které slouží jako seznam pro ověření dat v buňce G3. Vybírám tedy ze seznamu všech výrobců, aniž by se mi opakovali.
Ve sloupci J jsou opět unikátní hodnoty ze sloupce B. Je zde navíc podmínka, že musí patřit do Přístroje, který je vybraný v G3. Takže ve sloupci J jsou všichni vyrobci, kteří vyrábí např. čokoládové tyčinky. Sloupec J slouží jako výběrový seznam pro G4
Ve sloupci K opět unikátní hodnoty ze sloupce C, splňující vybrané podmínky v G3 (Přístroj) a v G4 (Výrobce)
Pozn. Teď se dívám, že to co je v G3 má být vlastně v G2
Vzorce ve sloupcích I,J,K,L jsou MATICOVÉ VZORCE, které zajistí výběr jedinečných (unikátních) hodnot. Tento vzorec v I2 vám nepopíši, já jej beru jako hotovou věc, kterou jednou za čas použiji. V dalších sloupcích je pak už jen přidaná podmínka na již vybraný Přístroj, Výrobce, model apod.
Vzoreček ve sloupci J (vybírám výrobce)
INDEX($B$2:$B$8; oblast B2:B8 určuje, ze kterého sloupce vybírám jedinečné hodnoty
SMALL(KDYŽ(($A$2:$A$8=$G$3)*(COUNTIFA2:A8 = G3 zamená, že ve sloupci B (viz předchozí část vzorce) vybírám ty hodnoty, které mají ve sloupci A hodnotu stejnou jako v G3. Násobení znamená logický součin.
COUNTIF(J$1:J1;$B$2:$B$8)=0);ŘÁDEK($B$2:$B$8)-1);1));"") tato část zajišťuje, vyloučení duplicit, tedy vypsání jen unikátních hodnot
ŘÁDEK($B$2:$B$8)-1) začínám na řádku 2, proto odečtu 1. Kdybych měl oblast B5:B100 odečtu 4 ŘÁDEK($B$5:$B$100)-4)
Vytvořím vzoreček v J2 a ukončím Ctrl+Shift+Enter.
Tento vzorec rozkopíruji do dalších řádků (podle počtu položek). To samé v dalších sloupcích.
No, nevím, jestli jsem tímto popisem pomohl
Ta tabulka F2:G8 může být samozřejmě na jiném listě.
Takže bez KT s pomocnými sloupci
A chcete vycházet z té databáze co máte nebo chcete vytvořit nějakou novou (např. tak jak je v listu "Příklad dat").
A co říkáte na tu kontingenční tabulku? Nebyla by toto cesta?
A ty informace, že Siemenes vám dováží servomotory A, B a C čerpáte odkud. Máte už vytvořenou nějakou databázi dodaných servomotorů od Siemense s uvedeným sériovým číslem nebo to teprve plánujete vytvářet?
Jde mi o to, jestli máte v této chvíli nějakou tabulku/tabulky z kterých se dá čerpat nebo jestli vymýšlíte strukturu JAK tyto vazby vytvořit/zpracovat.
Píšete, že list Příklad dat jste vytvořil sám. Odkud jste tyto informace načerpal? Jaká je struktura zdroje těchto informací?
Popravdě nějak netuším co vlastně chcete.
Jestli ten list "Příklad dat" jsou vaše zdrojové data a potřebujete z nich dostat tabulku v listu "Tabulka přístroje", tak by se možná lépe hodila kontingenční tabulka.
Taky záleží, co s tou "Tabulkou přístroje" dále děláte. Jestli to tisknete nebo přes to zdáváte nové výrobky...?
Vycházím tedy z toho, že Příklad dat jsou zdrojová data. V novém listě KT - přístroj je Kontingenční tabulka. V ní si postupně vyfiltruji jeden přístroj, který se zobrazí ve výsledné tabulce.
Možná jsem úplně mimo. Pokud jo, tak snad to chápe někdo jiný nebo je potřeba upřesnit zadání. Firemní data samozřejmě posílat nemusíte. stačí když zachováte stejnou strukturu, stejnou pozici a vyrobky a výrobce nahraďte třeba barvami, zvýřaty, rostlinami apod. A nemusí být všech 20 000 položek, stačí jich pár.
Vyzkoušejte
Pokud to nespěchá, tak bych se na to mohl mrknout.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.