U mňa víťazí metóda 3, teda polia. Čas 9 s.
Porovnaj Zdroj s DB.xlsm (8 MB)
Metódu 4 nepoužívať ! To som len začal včera v noci špekulovať s filtrom, ale vzhľadom na dosiahnutý čas cez polia, je to zbytočné.
Nevidel som ešte riešenie od mepexg, tak si to prípadne porovnajte.
EDIT: Tak som testol makro na dátach od mepexg, trvá tam až 3:30 ale dá správne hodnoty, pritom PQ iba 0:20. Takže keď sa dopiluje nevracanie záznamov DB bude to dokonalé riešenie podstatne odolnejšie voči chybám ako makro.
Makro tu síce nikto nespomínal, ale jedno mi urobí tento modelový súbor
21121 nových hľadá medzi 213841 v DB, nenájde 7301
za 7 min, druhé za 3 min, a tretie makro za cca 20 s. Ešte nad tým zajtra podúmam, a snáď dodám, keď prídem dom...
No tak ešte pár úprav. Na stiahnutie prázdny zošit (kvôli veľkosti) ako príloha, a tieto ďalšie hotové ako linky:
Nacitaj Slovenský slovník Azet (plný).xlsm
Slovenský pravopis.txt
Slovník slovenského jazyka.txt
Synonymický slovník.txt
Slovník cudzích slov.txt
Nacitaj Slovenský slovník Azet (všetko).zip
Kód je vlastne každému na 2 veci, keď je to už stiahnuté, uvádzam ho len pre prípad, že sa chce niekto s tým hrať či hľadať chyby.
Slovníky majú množstvo duplicít medzi sebou, ale to už nechám na Vás.
Na Excel 2003 by sa to muselo ešte upraviť na rozdelenie na viac stĺpcov, a to sa mi nechce.
Po malej úprave makra si môžete stiahnuť všetky 4 slovníky. Sledujte StatusBar. Snáď je to správne, ale kontrolovať to nebudem :)
EDIT: Upravené aj pre Excel 2003. No počíta sa maximálne s 2 stĺpcami. Vyskúšajte.
Pr.
Urobil som Vám radšej makro na výcuc slov zo Slovenského slovníku na AZET-e. Je to 70K slov. Makro nechajte dobehnúť, zobrazia sa v stĺpci A.
Skúste ešte toto, vylúčenie 3 po sebe idúcich samohlások/spoluhlások, príliš som to netestoval - ide hokej ...
Ak sa niekomu chce, tak mrknite, či na to idem správne. Teda iba čo sa výsledku týka. To, že používam metódu textu neriešme. Tých pár sek. spracovania stringov nás nezabije.
Aj keď som vyradil opakujúce sa časti po sebe, aj tak je pri priezvisku 80K kombinácií. A to sa mi vážne nechce medzi tým rúčo hľadať nejaký zmyselný výsledok...
EDIT:
Napadlo ma ešte nezahrnúť do výsledkov tie, ktoré obsahujú 3 po sebe idúce samohlásky alebo spoluhlásky. Dodám niekedy medzi hokejmi :)
No ja som si zo zaujímavosti urobil rekurzívny algoritmus, a mne za pár sekúnd vyjde 1 000 000 kombinácií, a to som zakázal 2 rovnaké znaky po sebe. Dostanem sa po "GJEAEJAE". Kde chodíte na také malé čísla ?
Ak to nechám dobehnúť, čo je niekoľko minút, tak mám 3 709 118 kombinácií.
Kurňa niečo robím zle, musím na to ešte mrknúť.
Neskôr si pozriem Vaše spomínané linky...
EDIT: Aha, no tak nič, celú logiku mám na prd. Ignorujte pls...
a) Vzorec sa mi zdá fakt dlhý ...
b) Obyčajná podmienka prepočet nevyrieši ?
xlnc by to, čo vymýšľate, nazval "bejkárny". A správne. Prerobil som to, zatiaľ bez CLEAN (lebo ničí aj CHR(10), ale to by sa dalo vybaviť dočasným nahradením...), ale :
-nieje mysliteľné, aby makro prechádzalo každé jedno písmenko, zisťovalo si o ňom všemožné formátovanie (font, veľkosť, rez, farba, index, ...)
-potom prečistilo nadbytočné medzery, s tým, že bude po každom výmaze prepočítavať a prepisovať formáty všetkých písmeniek po jednom, aby boli tak ako predtým výmazom nadbytočnej medzery
-až potom skontrolovalo podmienky vkladania textu Zač/Kon
-a následne zopakovalo cirkus s premiestňovaním formátov každého písmenka
S toho vyplýva toto moje riešenie, ktoré nepočíta so žiadnym iným formátom textu, iba podľa presne daných pravidiel. Teda tie kľúčové slová "služba", "príslužba", "dodatok", "neop.", "Začiatok hod." & Chr(10) & "Koniec hod." sa zafarbia, a ak bolo iné zafarbenie podľa ľubovôle kolegyne, tak sa zruší.
Čo už, presná odpoveď na otázku ... 6 strán na 1, to bude hardcore.
Príklad:
Sub Tlac1Strana()
With ActiveSheet
With .PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut
End With
End Sub
Je to možné, pretože mne to funguje. Podľa mňa nemáte korektne uložené makro v Personal.xlsb.
Otvorte si Poznámkový blok, skopčite si tam kód makra. Zatvorte všetky zošity. Vytvorte jeden nový čistý. Dajte nahrať makro, kde v okne napíšte názov makra napr. "VlozText", klávesovú skratku "m" (to bude potom Ctrl+Shift+M), prípadný nejaký krátky popis, ale hlavne nastavte uložiť do "Zošit osobných makier". Zastavte záznamník makra. Vo VBA vložte telo kódu z poznámkového bloku do nahraného makra vo VBA. Vo VBA stlačte Uložiť. Zatvorte Excel, bude sa pýtať na uloženie nového súboru napr. Zošit1, dajte nie. Ak sa opýta na uloženie Zošitu osobných makier, dajte áno. Zatvorte Excel. Naštartujte ho, a hneď si to vo VBA skontrolujte či tam máte Personal.xlsb aj s makrom. Musí tam byť. Teraz som to robil.
Prípadne si
Worksheets("makro")
zmente na
ActiveSheet
Metóda Cells je trošku rýchlejšia, odhadom 10 % ...
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.