Script does not update field value if the line is not entered

SOLVED

$VERIF_MOD

Local Char ZPRODCOD(30)
Local Char ZPRODCODOLD(30)
Local Integer YESNO
YESNO =2

For i=0 To max([M:POH2]NBLIG -1)
For [F:ITM] Where [F:ITM]ITMREF = [M:POH2]ITMREF(i)

ZPRODCODOLD = [M:POH2]ZPRODCOD(i)
ZPRODCOD=[ITM]ZPRODCOD

if [M:POH2]ZPRODCOD(i) <> ZPRODCOD
Call OUINON("Do you want to update field?\Line: "+ num$([M:POH2]POPLIN(i))+"\"+" Article: "+ [M:POH2]ITMREF(i)+"\Old value: "+ZPRODCODOLD+"\New value: "+ZPRODCOD,YESNO) FROM GESECRAN
if YESNO = 2 :[M:POH2]ZPRODCOD(i) = ZPRODCOD
Affzo [M:POH2]ZPRODCOD(i)
endif 
endif
Next
Next
Return

Hello 

Im trying to modify field value if it is diffrent than in table ITMMASTER.

It works but i have to activate manually each line then click Save otherwise field will be not modified.

What i want to do: Everytime when someone click Save button, field value is checked and modified, even if the line wasnt activated.

Do you know guys how to fix this?

Thanks,

Andrew