Problémem je to, že na některých PC se tisk z jednoho listu roztáhne do dvou a cca. 1,5 cm údajů je na druhém listu.
Předpokládám, že na těch "některých PC" je nainstalována jiná tiskárna.
Stačí si zvolit zobrazení "Zobrazit konce stránek" a myší potahat za okraje.
Prosím o vysvětlení, jak se vybrala oblast cílové tabulky (B4:D27) ?
Nijak, vše se řídí sloupcem B.
Proměnná MaxRadek ... ?
Ve sloupci B se najde první volný řádek, tedy proměnná MaxRadek obsahuje hodnotu např. 20
Při zápisu hodnot do tabulky se tedy vezme buňka B20 [Cells(MaxRadek, 2)], pomocí resize se výběr zvětší o počet zapisovaných výsledků (4) => výsledky se tedy zapíší do oblasti B20:E20
Asi by to makro nešlo ještě nějak zjednodušit.
Naopak pokud budeš přidávat další podmínky viz omezený počet řádků protokolu, bude kód přibývat.
Např.
Tak si ta makra odblokuj viz: https://wall.cz/index.php?m=topic&id=54219#post-54244
Povol makra!
Pravé tl. myši - > Vlastnosti- Zabezpečení -> odblokovat
Přikládám svůj pokus, není to kompletní. Chybí řazení na listě reklamace a vymazání listu souhrn. Nevím zda odstranit celý list, nebo jen data bez hlavičky, nebo i hlavičku.
No pokud nebudu brát sloučené řádky v potaz, tak je makro smaže.
Každopádně něco sem zkusil, výsledek v příloze. Netuším jak bude ovšem probíhat další zpracování. Jednotlivá data jsou "rozházená" do několika sloupců.
Slučuji několik PDF a následně je převádím na excel.
Takže dokážeš ovlivnit strukturu dat?
Protože od řádku 195 po 236 je sloupec A tvořen sloučenými buňkami, jiné řádky takto postiženy nejsou.
Pokud se buňka rozdělí, ve sloupci A má poté hodnotu např. "38 Kunštát" což neprojde testem na "číslo".
V tom zadání Ti nějak haprujou sloupce, tak sem vzorec zapsal mimo tabulku.
...ještě detail : Kam a jak prosím nejlépe zařadit tu podmínku, že zpracováváme jen položky ze zdroje co mají sl."O" prázdný
Ta podmínka je již v kódu obsažena, přesně na řádku, který zmiňuješ o post níže
If IsEmpty(rng.Offset(, 3).Value) = False Or IsEmpty(rng.Offset(, 14).Value) = True Then
Toto Dim rng As Range, rngID As Range, rngDZ As Range, rngFind As Range
Dim ID As String
je deklarace proměnných.
viz https://wall.cz/excel-navod/deklarace-promennych-a-prehled-datovych-typu-vba
Zkouším to "napasovat" na jiný sešit, stejná struktura a nic mi nenalézá.
To Ti nikdo na dálku neřekne. Nevím už, ze kterého souboru sem vycházel, ale kód sem psal na 3x, dvakrát sem vzteky soubor smazal a chtěl se to ...
Příčnou jsou "nelogické" požadavky (což je možná i důvodem, proč se do toho nikomu nechce), chceš porovnávat variabilní symboly a v spouštěcím souboru z toho uděláš nějaké ID. Další věcí je, že hodnoty ID byly zapsány s nadbytečnými mezerami což bylo příčinou nefunkčnosti.
A další zádrhele se jistě najdou např. minusové položky s VS
Tak podle mě, tam žádná chyba není. Když sem počet zkontroloval ručně dostanu se ke stejnému výsledku jako vzorec, tedy
první produkt 17 sloupec E 16 sloupec AA 1 =17
druhý produkt 30 sloupec G 16 sloupec CC 14 =30
součin.skalární
V příloze hrubý nástřel.
Jelikož je zadání takový jaký je, víc s tím dělat nebudu.
Ještě mám další variantu, kde do nového sešitu kompletně zkopíruje vybraná oblast včetně formátování a odstraní se propojení mezi sešity, které tímto způsobem vzniká.
Například takto:
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.