Je to poriadna pakáren, ten kód :)
Bolo by ho treba prekopať asi celý, okrem toho čo písal Honza53, treba sa pozrieť na používanie Split(), a polí celkovo, znížil by sa počet cyklov, lebo horizontálne pole sa dá spojiť naraz cez Join().
Ale najväčší problém si tam robíte v tom, že predpokladáte rovnako ako v liste, nevykonanie udalosti keď zadáte
Application.EnableEvents = False
Chyba! Toto vo formulári nefunguje. Na to si musíte deklarovať nejaký globálny príznak formulára typu Boolean, ktorý si obhospodárite sami. Teda si vždy pri vyvolaní zmeny prvku najskôr skontrolujte tento príznak, a konajte na základe toho.
Nechce sa mi to terazky celé študovať, prekopávať, keď štúdiom kódu sa nedá vždy presne vydedukovať čo by dotyčný chcel dosiahnuť. Na to by bol potrebný mimo iného príklad konkrétneho správania pri konkrétnych akciách užívateľa a konkrétnych hodnotách vstupov a výstupov. Plus lepší, pochopiteľnejší popis (pochopiteľnejší pre nás, lebo mi vieme, že Vy viete čo chcete, ale my do Vašej hlavy nevidíme, takže pre nás je treba vysvetľovať to inak. Proste ako pre niekoho, kto netuší čo u Vás znamená súprava, prečo sa musí kopírovať kombinácia napr "Ce(Pra)" šesť krát a pod...).
citovat