Уважаемые знатоки) Прошу вашей помощи в решении задачи: нужен макрос или формулы для заполнения ячеек согласно условию в столбце С, если введено Значение1, найти на другом листе нужную рецептуру и заполнить ячейки вертикально, если Значение2, то другую. Может есть готовое решение
Уважаемые знатоки) Прошу вашей помощи в решении задачи: нужен макрос или формулы для заполнения ячеек согласно условию в столбце С, если введено Значение1, найти на другом листе нужную рецептуру и заполнить ячейки вертикально, если Значение2, то другую. Может есть готовое решение toxin0777
Спасибо большое, я так понял формулами совсем не гибко, дело в том что данные будут вноситься постоянно и будет неудобно. Может у вас есть похожий код в VBA? Я не силен в макросах, но может получится переделать из похожего. Еще раз спасибо.
Спасибо большое, я так понял формулами совсем не гибко, дело в том что данные будут вноситься постоянно и будет неудобно. Может у вас есть похожий код в VBA? Я не силен в макросах, но может получится переделать из похожего. Еще раз спасибо.toxin0777
Сорри за много вопросов, но самому мне не доработать табличку, изначально не совсем правильно поставил вопрос. Надо чтобы поиск происходил по разным диапазонам и находил количество нужных компонентов. Пример в файле)
Сорри за много вопросов, но самому мне не доработать табличку, изначально не совсем правильно поставил вопрос. Надо чтобы поиск происходил по разным диапазонам и находил количество нужных компонентов. Пример в файле)toxin0777
Добрый день, в процессе заполнения таблицы столкнулся с проблемой что при вводе данных не содержащихся в листе с рецептурой макрос прекращает работу и приходится переоткрывать файл чтобы макрос заработал. Подскажите пожалуйста, что изменить в коде, чтобы он игнорировал отличные от рецептуры данные? Заранее спасибо)
Добрый день, в процессе заполнения таблицы столкнулся с проблемой что при вводе данных не содержащихся в листе с рецептурой макрос прекращает работу и приходится переоткрывать файл чтобы макрос заработал. Подскажите пожалуйста, что изменить в коде, чтобы он игнорировал отличные от рецептуры данные? Заранее спасибо)toxin0777
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Columns(3)) Is Nothing Then Exit Sub If Target = "" Then Exit Sub
Dim x, y, i&, j& With Sheets("Рецептура") x = .Range("B3").CurrentRegion.Value y = .Range("P2").CurrentRegion.Value End With
Application.EnableEvents = False For i = 1 To UBound(x) If x(i, 1) = Target.Value Then For j = 2 To UBound(x, 2) If x(i, j) <> "" Then Target.Offset(j - 1) = x(i, j) Target.Offset(j - 1, 1) = y(i, j - 1) End If Next j End If Next i Application.EnableEvents = True End Sub
[/vba]
toxin0777, привет попробуйте так
[vba]
Код
Option Explicit Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Columns(3)) Is Nothing Then Exit Sub If Target = "" Then Exit Sub
Dim x, y, i&, j& With Sheets("Рецептура") x = .Range("B3").CurrentRegion.Value y = .Range("P2").CurrentRegion.Value End With
Application.EnableEvents = False For i = 1 To UBound(x) If x(i, 1) = Target.Value Then For j = 2 To UBound(x, 2) If x(i, j) <> "" Then Target.Offset(j - 1) = x(i, j) Target.Offset(j - 1, 1) = y(i, j - 1) End If Next j End If Next i Application.EnableEvents = True End Sub