Ano, máš pravdu, bude třeba rozpoznat, zda už je řádek kompletně vyplněný a kurzor přeskočil na další volný řádek.
Napadá mě třeba do nějakého volného sloupce zavést příznak vytištění (např. makro bude zapisovat po vytištění do tohoto sloupce "x") a budu testovat, zda předchozí řádek od aktivní buňky tento příznak nemá. Pokud ne, tak ho vytisknu a zapíšu "x".
Předpokládejme, že se automaticky plní první tři sloupce (A až C) a pro příznak si vyhradíme pátý sloupec (E). Pak by to mohlo vypadat takto:
PredRadek = Selection.Row - 1
If IsEmpty(Cells(PredRadek, 5).Value) Then
' Ještě by šlo pro jistotu doplnit případně testem na neprázdnost všech tří buněk
' Tisk prvních tří buněk z předchozího řádku
Print Cells(PredRadek, 1).Value, Cells(PredRadek, 2).Value, Cells(PredRadek, 3).Value
' Nastavení příznaku vytištění
Cells(PredRadek, 5).Value = "x"
End If
Protože v Excelu jde téměř vše udělat mnoha různými cestami, toto je jen jedna z možností, která mě momentálně napadla. Třeba přijde ještě někdo jiný s lepším řešením