оО пасиб тоже пригодится а по поводу самой темы ее можно закрыть я нашол ошибку свою причем она до бонально проста аш стыдно сказать
ну чтоб другие не повторяли всетаки скажу
str:='C'+IntToStr(i+11);
str2:=Excel.Range[str];
Excel2.Range[str]:=str2;
в строчке выделеной красным получалось что я считывал информацию с тойже строчки в которую надо было записать в другом документе, а т.к. в документах с которых я считывал информацию строчка всегда находилась на одном месте то получалось что дальше я просто считывал пусты естрочки и записывал в общем надо сделать так:
str:='C'+IntToStr(i+11);
str2:=Excel.Range[
'C12']; //всегда одна и таже позиция
Excel2.Range[str]:=str2;