Суть проблемы: Есть поле "B", необходимо что бы при выборе в поле "А" значений 1,2,3 и тд в поле "B" попадали соответствующие значения 1,2,3..., а при выборе например 5, в поле "B" нужно вбивать значение руками, при этом при повторном использовании данная схема не должна нарушаться.
Суть проблемы: Есть поле "B", необходимо что бы при выборе в поле "А" значений 1,2,3 и тд в поле "B" попадали соответствующие значения 1,2,3..., а при выборе например 5, в поле "B" нужно вбивать значение руками, при этом при повторном использовании данная схема не должна нарушаться.Foocys
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A1"), Target) Is Nothing Then Select Case Target.Value Case 0, 1, 2, 3, 4, 6, 7, 8, 9: Range("B1") = Target.Value Case Else: Range("B1") = "" End Select End If End Sub
[/vba]
Дополнение Можно заменить [vba]
Код
Range("B1") = Target.Value
[/vba]на[vba]
Код
Range("B1").Formula = "=A1"
[/vba] тогда будет формула.
Код макроса вставить в модуль листа [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A1"), Target) Is Nothing Then Select Case Target.Value Case 0, 1, 2, 3, 4, 6, 7, 8, 9: Range("B1") = Target.Value Case Else: Range("B1") = "" End Select End If End Sub
Большое спасибо, сейчас попробуем. Дополнительный вопрос: возможно ли использовать этот макрос, если например при выборе 2 или 3 в поле "а" в поле "B" попадало значение из листа 2. Наглядный пример:
есть 5 видов доставки, в первых 4х стоимость фиксирована, в 5м всегда разная (вводиться в ручную). Стоимость доставки указана на листе2 (кроме 5 вида). На листе 1 в поле "А" выбираем вид доставки в поле "В" попадает соответствующая стоимость указанная на листе 2, соответсвено при выборе 5го вида в поле "В" стоимость вводиться в ручную.
Большое спасибо, сейчас попробуем. Дополнительный вопрос: возможно ли использовать этот макрос, если например при выборе 2 или 3 в поле "а" в поле "B" попадало значение из листа 2. Наглядный пример:
есть 5 видов доставки, в первых 4х стоимость фиксирована, в 5м всегда разная (вводиться в ручную). Стоимость доставки указана на листе2 (кроме 5 вида). На листе 1 в поле "А" выбираем вид доставки в поле "В" попадает соответствующая стоимость указанная на листе 2, соответсвено при выборе 5го вида в поле "В" стоимость вводиться в ручную.Foocys
Дополнительный вопрос: возможно ли использовать этот макрос
Точно такой нельзя. А если чуть поправить - можно. Наглядного примера не видно. Прочтите правила форума. Там есть рекомендации как добавить к сообщению наглядный пример (файл *.xls).
Цитата (Foocys)
Дополнительный вопрос: возможно ли использовать этот макрос
Точно такой нельзя. А если чуть поправить - можно. Наглядного примера не видно. Прочтите правила форума. Там есть рекомендации как добавить к сообщению наглядный пример (файл *.xls).AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
В принципе ЭТО можно было сделать только макросом, но вы просили
Цитата (Foocys)
Ввод значений и формула в одной ячейке
поэтому получился гибрид. Макроса и формулы. Код макроса в модуле листа, на котором выпадающий список.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("B1"), Target) Is Nothing Then iRow = Sheets("вид достави").Cells(5, 2).End(xlDown).Row Select Case Target.Value Case "А", "Б", "В", "Г": Range("B2").Formula = "=VLOOKUP(B1,'вид достави'!A2:B" & iRow & ",2,0)" Case Else: Range("B2") = "" End Select End If End Sub
[/vba]
Макрос в зависимости от значения в В1 в ячейку В2 вставляет формулу или ничего. Формула использует функцию ВПР, о которой можно прочитать в справке. Диапазон в функции динамический. Последнюю ячейку определяет макрос.
Цитата (Foocys)
Как это реализовать
В принципе ЭТО можно было сделать только макросом, но вы просили
Цитата (Foocys)
Ввод значений и формула в одной ячейке
поэтому получился гибрид. Макроса и формулы. Код макроса в модуле листа, на котором выпадающий список.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("B1"), Target) Is Nothing Then iRow = Sheets("вид достави").Cells(5, 2).End(xlDown).Row Select Case Target.Value Case "А", "Б", "В", "Г": Range("B2").Formula = "=VLOOKUP(B1,'вид достави'!A2:B" & iRow & ",2,0)" Case Else: Range("B2") = "" End Select End If End Sub
[/vba]
Макрос в зависимости от значения в В1 в ячейку В2 вставляет формулу или ничего. Формула использует функцию ВПР, о которой можно прочитать в справке. Диапазон в функции динамический. Последнюю ячейку определяет макрос.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Насколько я понял, при выборе Д необходимо цену ввести на 2м листе. Мне необходимо что бы цена вводилась в той же ячейке, в которой она выводиться со второго листа. Это необходимо для того, что бы использовать данную ячейку в формулах для подсчета.
Насколько я понял, при выборе Д необходимо цену ввести на 2м листе. Мне необходимо что бы цена вводилась в той же ячейке, в которой она выводиться со второго листа. Это необходимо для того, что бы использовать данную ячейку в формулах для подсчета.Foocys
Насколько я понял, при выборе Д необходимо цену ввести на 2м листе
Нет. При выборе Д цену можно вводить в В2 на первом листе. При этом вы "забьете" именованную формулу "цена". Но формулу легко вернуть, так как в В2 сделан выпадающий список, в котором выбрать можно только имя именованной формулы. Создание такого выпадающего списка имеет особенность. В источнике, перед знаком равно нужно поставить пробел.
Цитата (Foocys)
Насколько я понял, при выборе Д необходимо цену ввести на 2м листе
Нет. При выборе Д цену можно вводить в В2 на первом листе. При этом вы "забьете" именованную формулу "цена". Но формулу легко вернуть, так как в В2 сделан выпадающий список, в котором выбрать можно только имя именованной формулы. Создание такого выпадающего списка имеет особенность. В источнике, перед знаком равно нужно поставить пробел.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.