Věřím, že to půjde rozdělit dle požadavku. č.řádku id_faktury zazmam_služby cena_služby 65533 3005 sluzba xxx 5,50 65534 3005 sluzba xxy 15,50 65535 3006 sluzba xxz 25,50 65536 3007 sluzba yyy 25,80 65537 3007 sluzba yyz 25,80 Po seřazení dle faktury a služby si doplňte do tabulky index řádku, jak doporučují výše. List má 65536 řádků, z tohoto řádku vyčíst číslo faktury, další řádek nesmí obsahovat shodné číslo faktury, jinak musíte najít poslední záznam předchozího čísla faktury resp. prvního rozdílného čísla faktury, nemusí být zrovna o jednu menší... Řádek zapamatovat jako poslední pro první list, přičíst 65537 a získat potenciální index rozdělení druhého listu (hlídat překročení celkového počtu řádků v tabulce), stejný postup pro zjištění bodu rozdělení, dokola ve smyčce do udolání zapamatovat pro každý list od a do ... třeba do pole. Pokud tabulku načtete do recordsetu, tak ji taky můžete celou projít ve smyčce a jen si počítat záznamy v proměnné, porovnávat atd. a určit řádky pro rozdělení do listů... Výše je to komplikovanější, ale mohlo by to být rychlejší... Pak vybírat dotazem čísla řádku od do (nebo čísla faktur od do), měnit parametry dle zjištěných míst rozdělení, naplnit recorset dle dotazu a pomocí QueryTable poslat do listu excelu získaného např. pomocí CreateObject, přidávat listy za každý záznam s "od" a "do". Postačí pořešit ve VBA, využít ADO, než bude na ten novější office... Nejlépe přímo z Excelu. Nebo to bude to VBA pod Accessem? Aplikace ve vb6? Možná nedokáži postup založený na selském rozumu dost dobře popsat, omlouvám se, líp to nedovedu... Každopádně přeji příjemnou zábavu a doufám, že Vám někdo zkušenější poradí něco jednoduššího, rychlejšího a celkově lepšího... :) ... aby ty řádky rozdělení vysypal přímo dotaz...
|