Страницы: 1
RSS
Перенос в бланк данных из верхних строк при его заполнении данными из таблицы
 
В Листе 10 находится макрос из приёма «Заполнение бланков данными из таблицы», предложенный Sanja и объединённый БМВ с макросом из приёма «Быстрый ввод даты и времени без разделителей».

Когда добавляю снизу в исходную таблицу на Листе 10 строку, например Строку 5, и вношу в неё данные (в моё примере число «3)», то всё в порядке- эти данные при галочке в Столбце 1 на Строке 5 переносятся в Бланк на Листе 8.

Если же  добавляю сверху в исходную таблицу на Листе 10 строку, например Строку 2, и вношу в неё данные (в моём примере число «5)», то эти данные при галочке в Столбце 1 на Строке 2 не переносятся в Бланк на Листе 8. Выскакивает #НД.

Помогите пожалуйста внести изменения в Пример, чтобы данные, вносимые в строки, которые вставляю в исходную таблицу выше Строки 2, переносились бы в бланк  на Листе 8.

 
Дело не в макросах. Сделайте верхнюю границу диапазона в ВПР'ах абсолютной
=ВПР("a";Лист10!$A$2:B301;2;0)

Хм...не помогло.
Тогда сделайте исходную таблицу полностью 'умной', включая первый столбец с 'галками'
Изменено: Sanja - 29.11.2018 16:58:17
Согласие есть продукт при полном непротивлении сторон
 
Sanja,
в ячейку AY11 бланка на Листе 8  вы внесли формулу =ВПР("a";Таблица1;2;0). Подскажите пожалуйста, можно ли заменить в этой формуле "Таблица1", на "Лист10" (исходный лист, из которого берутся данные для заполнения бланка)? Вы сами присвоили Таблице номер "1" и как это делается?

В модернизированном вами приёме «Заполнение бланков данными из таблицы»,по https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=5&TID=46664&am...   первый столбец с галками не охвачен "Умной таблицей", но всё работает и данные из подставляемых сверху строк в исходной таблицы переносятся в бланк.
 
См. в Диспетчере Имен имя 'Данные'
Согласие есть продукт при полном непротивлении сторон
 
Sanja,

В каждой из ячеек бланка (Лист 8), в которые подставляются значения из исходной таблицы (Лист 10), необходимо изменить формулу: с  =ВПР("a";Лист10!диапазон;столбец;0)  на =ВПР("a";Данные;столбец;0). Покажите пожалуйста, как возможно ускорить работу по внесению изменений в однотипные формулы в ячейках бланка, чтобы вручную не изменять  каждую формулу,.  

 
Если в Ваших изначальных формулах (ВПР) диапазон исходной таблицы указан одинаковый, то Найти - Заменить. Другого способа не знаю  :(  
Согласие есть продукт при полном непротивлении сторон
 
Или можно такой макрос попробовать. Для активного листа
Код
Sub ReRangeInVPR()
Dim cl As Range, fComma&, sComma&
On Error Resume Next
With ActiveSheet
    For Each cl In .Cells.SpecialCells(xlCellTypeFormulas)
        If cl.Formula Like "*VLOOKUP*" Then
            fComma = WorksheetFunction.Search(",", cl.Formula)
            sComma = WorksheetFunction.Search(",", cl.Formula, fComma + 1)
            cl.Formula = Replace(cl.Formula, Mid(cl.Formula, fComma + 1, sComma - fComma - 1), "Данные", , , vbTextCompare)
        End If
    Next
End With
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Sanja,

Cпасибо, усовершенствованный приём «Заполнение бланков данными из таблицы»  работает, а макрос для автоматического изменения формул в ячейках- вообще супер.

1)В Диспетчере имен создала диапазон с именем Данные, в котором указала Лист 10, в котором содержится исходная таблица для подстановки данных в бланк.

2)Создала «умную таблицу» на Листе 10. Не включила в её диапазон столбец A, в котором будем ставить галки  для выбора значений, которые хотим видеть в бланке.  

3)Внесла ваш макрос в исходный код Листа 8 и все (!) содержащиеся в активных ячейках формулы автоматически «переконвертировались»   с  =ВПР("a";Лист10!диапазон;столбец;0)  на =ВПР("a";Данные;столбец;0).  Одно дело если таких формул в ячейках Листе 8 пару штук, можно «перебить» их вручную. А когда во многих ячейках формулы- макрос помогает избежать продолжительной «механической» работы. Важно, что макрос сработает если его запустить в Листе 8 через Run sub на вкладке «Run».

Страницы: 1
Наверх