a) problém, prečo Ti nefungovalo priradenie správnej hodnoty premennej PoslRiadok je ten, že som nevedel, že začínaš s údajmi od šiesteho riadka.
V mojom kóde si Excel vyhľadá posledný riadok s použitím Aktuálnej oblasti (CurrentRegion), pričom začína od bunky A1.
Pri výbere aktuálnej oblasti musíš byť nastavený do ľubovoľnej bunky CELISTVEJ oblasti (t.j. neprerušenej nejakým prázdnym riadkom!), čo nebolo splnené, keďže medzi bunkou A1 a šiestym riadkom, ktorým začínaš, je prázdny minimálne jeden riadok (počínajúc riadkom 2, kde Ti to z tohto dôvodu zahlásilo, že Ti chýbajú údaje).
Stačí upraviť:
PoslRiadok = Range("A6").CurrentRegion.Rows.Count
pod podmienkou, že začiatok súvislej údajovej tabuľky je v bunke A6.
b) neviem, či si si prehliadol poslednú moju prílohu, lebo tam som Ti urobil aj to, čo si chcel, aby Ti MsgBox vypísal aj konkrétne stĺpce, v ktorých nie sú naplnené povinné údaje. V priloženom kóde to nemáš zapracované...