Nechcem sa dohadovať (strata času), tak krátko:
-Head1 sa má mazať rovnako ako ostatné. Myslel som na to hneď v prvom príspevku (otázka 2). Odpoveď je jasná - ÁNO mazať.
-Na môj prvý súbor ? Dal som iba jeden, a ten fungoval tak, ako boli do tej doby keď som ho postoval špecifikované požiadavky. Ak sa pridala požiadavka na nemazanie v prípade kompletného zaplnenia, pripísal som len potrebnú podmienku.
-Je šuma-fuk koľko riadkov, ale dotyčný písal do 150 riadkov = no problém (maximálne dočasne vypnúť ScreenUpdating). Každopádne, ak by spomenul, že to chce na 20000 Rows, tak určite nie takto, ale cez pole, a jedno načítanie a jeden zápis celého poľa naraz. Ale o tom nebola reč.
-Stačí keď Vám v kóde akokoľvek uhladenom a krátkom nefunguje jedna jediná vec, tým pádom kód proste nefunguje. A to som napísal. Často stačí iba jediná drobná podmienka od uživateľa, a kód sa znásobí do dĺžky aj komplikovanosti.
-Vo Vašom novšom kóde, rovnako nieje vyriešený problém odstránenia Head1 - takže opäť nefunguje, nech je akokoľvek krátky. Elegantná metóda xlDown a spol, sa niekedy nedá jednoducho použiť.
-Tento nový kód dokonca akonáhle raz zapíše hodnoty do Head5, ďalšie spustenie už nič neurobí. Ďalšie posledné hodnoty už proste neposunie.
Pripravil som novú verziu, ak by si uživateľ prial napr. zmazať riadky, kde už nič nieje, tak napr. takto.