2 Eilsa :
súbor "Filter makrom 3.xlsm" - širšie stĺpce.
2 lopi007 :
súbor "Filter makrom 3 duplicita.xlsm" - Jáj no ale veď Vy myslíte overenie, či sa daný údaj už v liste nenachádza medzi predtým vloženými. Teda nie duplicitný záznam vo filtrovanom ListBoxe (o ktorom sa primárne bavíme), ale duplicitný záznam medzi vloženými záznamami. Myslíte to teda takto ?
Aháá, do prázdneho riadku, a ja reku že do prázdnej bunky... Preto mi to nešlo do hlavy, som myslel, že sa hocikedy môže meniť hociktorá bunka, a má sa zistiť či sa zapisuje nová hodnota, ale v prípade že tam už bola, tak nič. Preto som cez Undo zisťoval predošlý stav. No nič, no ...
To je fakt divná tabuľka aj požiadavka. Nedáva mi to zmysel. Ale budiš...
2 Siki-00 : Až teraz som si všimol, že mi v príspevku z "5.9.2016 13:21" nenahralo prílohu s tými v ňom spomínanými riešeniami. Tak ich prikladám teraz.
2 lopi007 : No a riešenie duplicít by veľmi záležalo na presnej požiadavke testovaných dátových typov, a pre Vás platnej definície duplicitného záznamu.
2 Eilsa: príloha
2 lopi007: zatiaľ ma nenapadá schodné filtrovanie duplicít, keď ani neviem čo považujete za duplicitu (zhodné všetky stĺpce ???, alebo je ako smerodajný teda duplicitomerný iba jeden z nich ? ...)
2 Siki-00:
No to asi nepôjde. Viaceré podmienky na viaceré stĺpce ako "OR" sa totiž nedajú aplikovať v jednoduchom filtri. Na to je Rozšírený filter, ale ten kopíruje data, teda by ste potreboval zdrojový list, čo nechcete. Potom je možnosť jeden pomocný stĺpec, ktorý zaistí TRUE/FALSE na filter.
1. Filter1: V makre sa filter spustí jediným riadkom kódu (teraz je to na 3 stĺpce). Veľké/malé písmená nevadia, ale rozlišuje diakritiku.
2. Filter2: Ak by ste to chcel aj s nerozlišovaním diakritiky (teda pri zadaní "cara" nájde aj "cara aj "čára"), tak sa bude musieť použiť v pomocnom stĺpci buď UDF funkcia v každom riadku
3. Filter3: Alebo makro toto TRUE/FALSE vloží do pomocného stĺpca naraz do všetkých buniek. Rovnako ako 2, nerozlišuje diakritiku.
Vyskúšajte na Vašich dátach (v prípade 2, najmä rýchlosť).
2 Eilsa:
Moje nervy, ale veď Vy nemôžete len tak mírnix týrnix meniť rozmiestnenie a formu dát, s ktorými pracuje presne na mieru optimalizované makro ! Pre to je megadôležité, aby ste vždy dodali presný popis toho čo chcete, aj s reálnym rozmiestnením dát, reálnych parametrov, formátov, veľkostí, typov a pod. Aj keď dáta sú vymyslené ich forma sa v takto špecializovanom prípade nemôže bez znalosti makra meniť. Viete koľkokrát ste zmenil/a zadanie ? Ani tú prílohu neotváram, nemám už čas. Uvidím, či večer alebo zajtra nájdem na Vás silu. S Vami je to fakt ťažké...
2 lopi007:
Nie, duplicity tam riešené niesú, nebola požiadavka/potreba. Rovnako platí to o čase.
To treba podstatne prerobiť ...
Tak aj ja pridám príklad
Výpis položky "pod seba" vo filtrovacom formulári:
?!? Nečítate čo píšem, veď som písal, že tú chybu s výpisom jedinej položky "pod seba" som opravil a poslal opravenú verziu, a Vy naďalej používate starú a upozorníte na tú chybu.
Tlačítka "Hľadať predo" ... :
To nie ste ochotný urobiť jednoduchú logickú dedukciu, a jednoduchý pokus, že by ste stlačil a vyskúšal rovnaké tlačítko na rovnakom mieste a obdobne znejúcim názvom ? Je to len otázka prekladu SK a CZ Excelu.
"Hľadať predo" = "Předchozí"
"Hľadať ďalej" = "Další"
Tlačítko Uložiť:
Zabudnite na tlačítko Uložiť. Tiež som Vám to už písal. Okrem tohto sa už k tomu fakt opäť vyjadrovať nemienim. Ten formulár na liste Data, NIEJE opakujem NIEJE upraviteľný ! Tak ho naprogramoval výrobca Excelu, a tak ho Vy môžete alebo nemusíte používať. Žiadne tlačítko Zavrieť na Uložiť nezmeníte ! Pre to aby ste pridali záznam do Tabuľky urobíte:
-pravý klik na liste Data niekde v stĺpcoch A:O
-stlačiť na formulári "Nové"
-Vyplniť údaje
-ak chcete, pridať ďalší záznam, tak ešte raz stlačíte "Nové", predošlý nový záznam od tejto chvíle už JE (opakujem JE v Tabuľke). Teda nezatvárate formulár. Ak ale nechcete pridávať ďalšie záznamy, stlačíte "Zavrieť", a od tejto chvíle záznam JE (opakujem JE) v Tabuľke.
-možnosť, aby ste mali tento formulár otvorený neustále (ako píšete, aby ste ho nezatváral) - NEEXISTUJE.
2 dvojbodby (dvojtečky "::")
To je jednoduché, mali ste ich v hlavičkách stĺpcov, ktoré ste dodal, tak som ich zmazal. Tie druhé tam samozrejme dopĺňa (iba vo formulári) samotný Excel.
Teraz bez urážky, ale to si snáď robíte srandu ? V jednom príspevku napíšete, že tam nesmie byť tlačítko Vložiť. V druhom príspevku napíšete, že tam musí byť namiesto Zavrieť, tlačítko Vložiť. Pritom toto NIEJE makrom generovaný formulár, ale natívna formulárová funkcionalita samotného Excelu - čiže nejde zmeniť.
V inom príspevku napíšete, že to nechcete na pravý klik, ale na tlačítko, a v ďalšom príspevku napíšete, že to chcete na pravý klik.
Kritériá : Keď zobrazím ten natívny formulár na zadávanie nových dát, napr. tlačítkom na liste, tam kliknem na Kritériá, a zobrazí sa mi toto, kde si môžem zadať filter niektorého poľa, a vpravo vidím tlačidlá "Hľadať predo" a "Hľadať ďalej".
Píšte, prosím, do viet bodky a čiarky, a vždy popisujte presne ktorý máte na mysli formulár. Fakt sa to zle lúšti.
Alebo takto Vám, bude objekt Tabuľka počítať zvyšné veci.
Samozrejme tie výpočty môže robiť aj makro, a vloží tak výsledky (deň, mesiac, rok), ale vek by som určite riešil vloženým vzorcom (nie hodnotou), alebo ho počítať až vo finále, kde budete s dátami pracovať. Na výstupe. Vek, ako je známo, sa časom (žiaľ) mení :)
Všetky ostatné makrá som odstránil.
Kritériá : Veď to skúste, je to filter vyhľadávania. Stlačíte Kritériá, vypíšete nejaké hľadané kritérium, a dáte Hľadať predo, alebo Hľadať ďalej.
Aké tlačítko "Vložiť" ??? Myslíte tým tlačítko "Nové" (prvé tlačítko, možný rozdiel verzie a lokalizácie Excelu) ? Prečo by ste mali zatvárať ten formulár ? Stlačím Nové, vypíšem, stlačím Nové vypíšem, zase stlačím Nové a vypíšem ... koľko chcem, potom stlačím Zavrieť, a mám tam všetko.
Len poupravený vzorec od Pavlus. Nemusí byť nikde v bunke uložené písmeno ("A", "B"...), len prvý znak názvu súboru stačí vytiahnuť, trošku kratším vzorcom ako hore uvedený.
=HLOOKUP(MID(CELL("filename";A1);FIND("[";CELL("filename";A1))+1;1);'Z:\kopirovani_dat\[Zdroj.xlsm]List1'!$1:$2;2;FALSE)
=VVYHLEDAT(ČÁST(POLÍČKO("filename";A1);NAJÍT("[";POLÍČKO("filename";A1))+1;1);'Z:\kopirovani_dat\[Zdroj.xlsm]List1'!$1:$2;2;NEPRAVDA)
Príloha by to snáď objasnila...
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.