Вводим новый заказ: выбираем товар (на пример, "крокодил") и в поле цена появляется цена из листа "Прайс" Функция ВПР работает - все хорошо. Проблема возникает при необходимости менять прайс, т.к. цена в старых заказах тоже меняется. Можно конечно "копировать" - "специальная вставка" - "значения", тогда при изменении прайса цена в уже внесенных заказах не меняется. Подскажите как сразу вместе с ВПР подставить данные которые потом не будут менятся. Спасибо
Вводим новый заказ: выбираем товар (на пример, "крокодил") и в поле цена появляется цена из листа "Прайс" Функция ВПР работает - все хорошо. Проблема возникает при необходимости менять прайс, т.к. цена в старых заказах тоже меняется. Можно конечно "копировать" - "специальная вставка" - "значения", тогда при изменении прайса цена в уже внесенных заказах не меняется. Подскажите как сразу вместе с ВПР подставить данные которые потом не будут менятся. СпасибоShaih
Тогда только макросом. И решите, что Вы делаете: прайс-лист (который обновляется и дальше заказы "танцуют" от него) или перечень заказов по прайс-листу? UPD Думаю, как-то так [vba]
Код
Sub tt() Application.ScreenUpdating = False With Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row).Offset(0, 1) .Formula = .Value End With Application.ScreenUpdating = True End Sub
[/vba] После заполнения нужных позиций запускаете макрос и он в заполненных строках автоматически меняет формулы на их значения
UPD2 Можно так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range With Target If .Count > 1 Then Exit Sub Set rng = .Offset(0, 1) If .Column = 2 And rng.HasFormula Then If Not IsError(rng) Then rng.Formula = rng.Value End With End Sub
[/vba] Вставляете в код листа Заказы и макрос сам все меняет по мере ввода данных
Тогда только макросом. И решите, что Вы делаете: прайс-лист (который обновляется и дальше заказы "танцуют" от него) или перечень заказов по прайс-листу? UPD Думаю, как-то так [vba]
Код
Sub tt() Application.ScreenUpdating = False With Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row).Offset(0, 1) .Formula = .Value End With Application.ScreenUpdating = True End Sub
[/vba] После заполнения нужных позиций запускаете макрос и он в заполненных строках автоматически меняет формулы на их значения
UPD2 Можно так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range With Target If .Count > 1 Then Exit Sub Set rng = .Offset(0, 1) If .Column = 2 And rng.HasFormula Then If Not IsError(rng) Then rng.Formula = rng.Value End With End Sub
[/vba] Вставляете в код листа Заказы и макрос сам все меняет по мере ввода данныхМВТ
Сообщение отредактировал МВТ - Четверг, 30.04.2015, 17:50