Hello, I want to update values in repetitive sections in terms of an external value. In repetitive sections I have the stats of my monsters and when the level of group is changed (the external value), I want to update 3 variables for all my monsters. Here is the code I have wrote. The external value and the repetitive sections (the 6 others have the same structure) : < div class = "char" style = " color: black; font-weight: bold; font-size: large;" > Niveau du groupe : < input class = "textbox-stat" type = "number" name = "attr_NvGroupe" value = "1" /></ div >< br >< br > < div class = "dark_row" > < div class = "title" style = " font-effect:engrave; margin-top:35px;" > Enahora </ div > < fieldset class = "repeating_En" > < div class = "dark_row" style = " font-size:20px;line-height:25px;" > < div class = "arme-title" style = " margin-left:75px; margin-top: 10px;" > Nom </ div > < div class = "arme-title" style = " margin-left:60px;" > FO </ div > < div class = "arme-title" style = " margin-left:30px;" > DEX </ div > < div class = "arme-title" style = " margin-left:25px;" > PO </ div > < div class = "arme-title" style = " margin-left:58px;" > Dégâts </ div > < div class = "arme-title" style = " margin-left:50px;" > PdV </ div > < div class = "arme-title" style = " margin-left:28px;" > XP </ div > < div class = "arme-title" style = " margin-left:80px;" > Description </ div > </ div > < div class = "dark_row" > < button type = "roll" title = "bestiaireEnDesc" name = "roll_En_desc" value = "&{template:bestiaire} {{name=@{En_name &#125; }} {{image=[Image](@{En_image})}} {{description=@{En_Description &#125; }} {{carac1=@{En_FO &#125; }} {{carac2=@{En_DEX &#125; }} {{carac3=@{En_PO &#125; }} {{pdv=@{En_PdV &#125; }}" ></ button > < input class = "textbox" type = "text" name = "attr_En_name" style = " width:120px;" /> < input class = "textbox-stat" type = "number" name = "attr_En_FO" style = " width:50px;text-align:center;" /> < input class = "textbox-stat" type = "number" name = "attr_En_DEX" style = " width:50px;text-align:center;" /> < input class = "textbox-stat" type = "number" name = "attr_En_PO" style = " width:50px;" /> < input class = "textbox-stat" type = "number" name = "attr_En_Deg" style = " width:40px;text-align:center;" > d10+ </ input > < input class = "textbox-stat" type = "number" name = "attr_En_DegModif" style = " width:40px;text-align:center;" /> < input class = "textbox-stat" type = "number" name = "attr_En_PdV" style = " width:50px;" /> < input class = "textbox-stat" type = "number" name = "attr_En_Xp" style = " width:50px;" /> < textarea class = "textareaboxStat" type = "text" name = "attr_En_Description" style = " vertical-align: top; width:200px;" ></ textarea > < br > < button type = "roll" style = " margin-left:180px;" title = "bestiaireEnForce" name = "roll_En_FO" value = "&{template:enyllion} {{perso=@{En_name &#125; }} {{name=Force}} {{Carac=[[@{En_FO}+?{Modificateur|0}]]}} {{Roll=[[1D100]]}}" ></ button > < button type = "roll" style = " margin-left:30px;" title = "bestiaireEnDexterité" name = "roll_En_DEX" value = "&{template:enyllion} {{perso=@{En_name &#125; }} {{name=Dexterité}} {{Carac=[[@{En_DEX}+?{Modificateur|0}]]}} {{Roll=[[1D100]]}}" ></ button > < button type = "roll" style = " margin-left:30px;" title = "bestiaireEnPouvoir" name = "roll_En_PO" value = "&{template:enyllion} {{perso=@{En_name &#125; }} {{name=Pouvoir}} {{Carac=[[@{En_PO}+?{Modificateur|0}]]}} {{Roll=[[1D100]]}}" ></ button > < button type = "roll" style = " margin-left:75px;" title = "bestiaireEnDegats" name = "roll_En_Degats" value = "&{template:degats} {{perso=@{En_name &#125; }} {{name=Dégats}} {{Roll=[[@{En_Deg}d10+@{En_DegModif}]]}}" ></ button > < div class = "arme-title" style = " margin-left:114px;" > Image </ div > < textarea class = "textareaboxStat" type = "text" name = "attr_En_Image" style = " vertical-align: top; width:200px; margin-left: 10px;" ></ textarea > </ div > < br > < br > </ fieldset > And here the sheet worker on ( "sheet:opened change:NvGroupe" , function (){ getSectionIDs ( "repeating_En" , "repeating_Ky" , "repeating_No" , "repeating_Am" , "repeating_Te" , "repeating_dem" , "repeating_drag" function ( ids ) { const fieldnames = []; ids . forEach ( id => fieldsnames . push ( 'repeating_En' + id + '_En_Deg' , 'repeating_En' + id + '_En_DegMod' , 'repeating_En' + id + '_En_PdV' , 'repeating_Ky' + id + '_Ky_Deg' , 'repeating_Ky' + id + '_Ky_DegMod' , 'repeating_Ky' + id + '_Ky_PdV' , 'repeating_No' + id + '_No_Deg' , 'repeating_No' + id + '_No_DegMod' , 'repeating_No' + id + '_No_PdV' , 'repeating_Am' + id + '_Am_Deg' , 'repeating_Am' + id + '_Am_DegMod' , 'repeating_Am' + id + '_Am_PdV' , 'repeating_Te' + id + '_Te_Deg' , 'repeating_Te' + id + '_Te_DegMod' , 'repeating_Te' + id + '_Te_PdV' , 'repeating_dem' + id + '_dem_Deg' , 'repeating_dem' + id + '_dem_DegMod' , 'repeating_dem' + id + '_dem_PdV' , 'repeating_drag' + id + '_drag_Deg' , 'repeating_drag' + id + '_drag_DegMod' , 'repeating_drag' + id + '_drag_PdV' ,)); getAttrs ([ "NvGroupe" , fieldnames ], function ( values ) { var enDeg = parseInt ( values . repeating_En_En_Deg ); var enDegMod = parseInt ( values . repeating_En_En_DegMod ); var enPdv = parseInt ( values . repeating_En_En_PdV ); var amDeg = parseInt ( values . repeating_Am_Am_Deg ); var amDegMod = parseInt ( values . repeating_Am_Am_DegMod ); var amPdv = parseInt ( values . repeating_Am_Am_PdV ); var kyDeg = parseInt ( values . repeating_Ky_Ky_Deg ); var kyDegMod = parseInt ( values . repeating_Ky_Ky_DegMod ); var kyPdv = parseInt ( values . repeating_Ky_Ky_PdV ); var noDeg = parseInt ( values . repeating_No_No_Deg ); var noDegMod = parseInt ( values . repeating_No_No_DegMod ); var noPdv = parseInt ( values . repeating_No_No_PdV ); var teDeg = parseInt ( values . repeating_Te_Te_Deg ); var teDegMod = parseInt ( values . repeating_Te_Te_DegMod ); var tePdv = parseInt ( values . repeating_Te_Te_PdV ); var demDeg = parseInt ( values . repeating_dem_dem_Deg ); var demDegMod = parseInt ( values . repeating_dem_dem_DegMod ); var demPdv = parseInt ( values . repeating_dem_dem_PdV ); var dragDeg = parseInt ( values . repeating_drag_drag_Deg ); var dragDegMod = parseInt ( values . repeating_drag_drag_DegMod ); var dragPdv = parseInt ( values . repeating_drag_drag_PdV ); var niveau = parseInt ( values . NvGroupe ); var coeff = 1.15 ; var enDegTot = 0 ; var kyDegTot = 0 ; var noDegTot = 0 ; var amDegTot = 0 ; var teDegTot = 0 ; var demDegTot = 0 ; var dragDegTot = 0 ; var enDegNv = 0 ; var kyDegNv = 0 ; var noDegNv = 0 ; var amDegNv = 0 ; var teDegNv = 0 ; var demDegNv = 0 ; var dragDegNv = 0 ; var enDegModNv = 0 ; var kyDegModNv = 0 ; var noDegModNv = 0 ; var amDegModNv = 0 ; var teDegModNv = 0 ; var demDegModNv = 0 ; var dragDegModNv = 0 ; var enPdvNv = 0 ; var kyPdvNv = 0 ; var noPdvNv = 0 ; var amPdvNv = 0 ; var tePdvNv = 0 ; var demPdvNv = 0 ; var dragPdvNv = 0 ; if ( niveau > 1 ) { enDegTot = (( enDeg * 10 ) + enDegMod ) * ( coeff ^( niveau - 1 )); kyDegTot = (( kyDeg * 10 ) + kyDegMod ) * ( coeff ^( niveau - 1 )); noDegTot = (( noDeg * 10 ) + noDegMod ) * ( coeff ^( niveau - 1 )); amDegTot = (( amDeg * 10 ) + amDegMod ) * ( coeff ^( niveau - 1 )); teDegTot = (( teDeg * 10 ) + teDegMod ) * ( coeff ^( niveau - 1 )); demDegTot = (( demDeg * 10 ) + demDegMod ) * ( coeff ^( niveau - 1 )); dragDegTot = (( dragDeg * 10 ) + dragDegMod ) * ( coeff ^( niveau - 1 )); enDegNv = Math . floor ( enDegTot / 10 ); enDegModNv = enDegTot % 10 ; noDegNv = Math . floor ( noDegTot / 10 ); noDegModNv = noDegTot % 10 ; kyDegNv = Math . floor ( kyDegTot / 10 ); kyDegModNv = kyDegTot % 10 ; amDegNv = Math . floor ( amDegTot / 10 ); amDegModNv = amDegTot % 10 ; teDegNv = Math . floor ( teDegTot / 10 ); teDegModNv = teDegTot % 10 ; demDegNv = Math . floor ( demDegTot / 10 ); demDegModNv = demDegTot % 10 ; dragDegNv = Math . floor ( dragDegTot / 10 ); dragDegModNv = dragDegTot % 10 ; enPdvNv = enPdv * ( coeff ^( niveau - 1 )); noPdvNv = noPdv * ( coeff ^( niveau - 1 )); kyPdvNv = kyPdv * ( coeff ^( niveau - 1 )); amPdvNv = amPdv * ( coeff ^( niveau - 1 )); tePdvNv = tePdv * ( coeff ^( niveau - 1 )); demPdvNv = demPdv * ( coeff ^( niveau - 1 )); dragPdvNv = dragPdv * ( coeff ^( niveau - 1 )); setAttrs ({ repeating_En_En_Deg: enDegNv , repeating_En_En_DegMod: enDegModNv , repeating_En_En_PdV: enPdvNv , repeating_No_No_Deg: noDegNv , repeating_No_No_DegMod: noDegModNv , repeating_No_No_PdV: noPdvNv , repeating_Ky_Ky_Deg: kyDegNv , repeating_Ky_Ky_DegMod: kyDegModNv , repeating_Ky_Ky_PdV: kyPdvNv , repeating_Am_Am_Deg: amDegNv , repeating_Am_Am_DegMod: amDegModNv , repeating_Am_Am_PdV: amPdvNv , repeating_Te_Te_Deg: teDegNv , repeating_Te_Te_DegMod: teDegModNv , repeating_Te_Te_PdV: tePdvNv , repeating_dem_dem_Deg: demDegNv , repeating_dem_dem_DegMod: demDegModNv , repeating_dem_dem_PdV: demPdvNv , repeating_drag_drag_Deg: dragDegNv , repeating_drag_drag_DegMod: dragDegModNv , repeating_drag_drag_PdV: dragPdvNv }); } }); }); }); Thanks for your help.