If you step through the subroutine are values/data showing up in the Cstr(iReadPresetsIn(iLoop))? Sounds like your ActiveX isn't passing the values.