Это кажеться таким трудным, на самом деле все просто, нужно написать в EXEL скрипт, который считывал бы строки и передавал бы SQL Server через хранимую процедуру, которую я напишу, и нужен еще один маленький скриптик, который бы получав данные от SQL Server вставлял бы их! Только вот я с VBA не очень дружу, а SQL пожалуйста!
mon, если форма прайсов от раза к разу поставщиком не изменяется, а только изменяется их наполнение (строки и/или цены и/или количество), то создай в Экселе книгу соответствия. Делается так: открываешь свежие прайсы, открываешь сохранённую из SQL таблицу со списком товара (это будет твой эталон), сохраняешь её под названием, например, "Обработчик", далее тебе нужно слева от этого столбца вставить необходимое количество столбцов для наименований товара каждого из поставщиков в следующем соотношении: Поставщик1 дает товар Аспирин (так, как в твоем эталоне) под названиями Аспирин 0,5; Аспирин 500 мг; аСПЕРИИН 5,0 (ну очепятка у него). Далее, Поставщик2 дает Асп.0,5; асп. 500; аспирин Шипучий 5.
Справа от эталонного столбца ставишь СУММЕСЛИ(СтолбецПрайсаПоставщик_1_Товары;ЯчейкаАспирин05;СтолбецПрайсаПоставщик_1_Цена)+то же, но ЯчейкаАспирин500мг+ ... для всех возможных Аспиринов Поставщика1 (удобно делать мастером формул)
Правее делаешь то же для Поставщика 2 и т.д.
В результате, когда ты открываешь эту книгу, в правых колонках выбираются данные из прайсов, важно только, чтобы прайсы каждого из них имели строго определённые названия, типа ПрайсПоставщик1, 2, ... Недопустимо ПрайсПост1от01,01,06 ПрайсПост1от05,05,06 - формула такого не отследит.