Здравствуйте! Как порядочная домохозяйка, пытаюсь упростить себе жизнь. И меня посетила "гениальная" идея создания в эксель автоматического списка покупок. В общем и целом имеется: Лист 1 (Меню) - на нем условный календарик на 5 недель, с расписанием удобным для меня, когда и что готовить. Сделала всё выпадающими списками, что бы при желании менять блюда под обстоятельства. Рядом таблица со списком продуктов (с ней у меня и проблема, к этому вернусь с объяснениями) Лист 2 (Рецепты) - просто огромная табличка где в первой колонке расписаны блюда (Толченка, Сырный, Котлеты) по категориям (Гарниры, Мясо, Суп) и по горизонтали продукты, расписанные как рецепты.
И вот в чем проблема/трудность/задача/ Прошел месяц, я захожу в таблицу, выставляю из выплывающих списках новое меню на месяц, нажимаю на номер недели в списке покупок и он автоматически выдает те продукты и в том количестве что мне нужно из меню которое я выставила. При этом всем, естественно количество Блюд и Продуктов будет добавляться.
Не уверенна понятно ли, что имеется и что хочу, но это 100% используется в складском учёте и в подобном направлении
В конце концом, может как то по другому организовать всю эту систему, но смысл должен остаться тот же - зашел выбрал блюда, и рядом БАХ список продуктов на неделю, это просто потрясающе удобно
И возможно есть темы, которые подобное уже разбирали, но я не знаю как это называется, что бы найти. В общем, за любую помощь буду благодарна
Файл с Меню прикреплен
Здравствуйте! Как порядочная домохозяйка, пытаюсь упростить себе жизнь. И меня посетила "гениальная" идея создания в эксель автоматического списка покупок. В общем и целом имеется: Лист 1 (Меню) - на нем условный календарик на 5 недель, с расписанием удобным для меня, когда и что готовить. Сделала всё выпадающими списками, что бы при желании менять блюда под обстоятельства. Рядом таблица со списком продуктов (с ней у меня и проблема, к этому вернусь с объяснениями) Лист 2 (Рецепты) - просто огромная табличка где в первой колонке расписаны блюда (Толченка, Сырный, Котлеты) по категориям (Гарниры, Мясо, Суп) и по горизонтали продукты, расписанные как рецепты.
И вот в чем проблема/трудность/задача/ Прошел месяц, я захожу в таблицу, выставляю из выплывающих списках новое меню на месяц, нажимаю на номер недели в списке покупок и он автоматически выдает те продукты и в том количестве что мне нужно из меню которое я выставила. При этом всем, естественно количество Блюд и Продуктов будет добавляться.
Не уверенна понятно ли, что имеется и что хочу, но это 100% используется в складском учёте и в подобном направлении
В конце концом, может как то по другому организовать всю эту систему, но смысл должен остаться тот же - зашел выбрал блюда, и рядом БАХ список продуктов на неделю, это просто потрясающе удобно
И возможно есть темы, которые подобное уже разбирали, но я не знаю как это называется, что бы найти. В общем, за любую помощь буду благодарна
Sub xs() Application.ScreenUpdating = False 'очистим старый список a = Cells(Rows.Count, "k").End(xlUp).Row 'нижняя ячейка списка If a > 3 Then Range("k4:l" & a).Clear 'определим размеры* таблицы на листе Рецепты b = Sheets("Рецепты").Cells(Rows.Count, "b").End(xlUp).Row 'нижняя строка c = Sheets("Рецепты").Cells(4, Columns.Count).End(xlToLeft).Column 'правый столбец 'определим диапазон недели d = Range("m2").Value e = Application.Match(d, Range("a:a"), 0) 'верхняя строка f = Range("a" & e).MergeArea.Cells.Count + e - 1 'нижняя строка 'пройдемся циклом по неделе For Each g In Range("b" & e & ":h" & f) h = g.Value 'значение ячейки If h <> "" Then i = Application.Match(h, Sheets("Рецепты").Range("b1:b" & b), 0) 'строка блюда j = Application.Count(Range(Sheets("Рецепты").Cells(i, 3), Sheets("Рецепты").Cells(i, c))) 'кол-во инг. 'вытащим ингридиенты If j > 0 Then k = 2 'начальный столбец For l = 1 To j m = Sheets("Рецепты").Cells(i, k).End(xlToRight).Column 'столбец со значанием n = Sheets("Рецепты").Cells(i, m).Value 'вес* o = Sheets("Рецепты").Cells(4, m).Value 'наименование p = Cells(Rows.Count, "k").End(xlUp).Row + 1 'строка вставки (1) q = Application.Match(o, Range("k4:k" & p), 0) 'строка вставки (2) If IsNumeric(q) Then q = q + 3 Range("l" & q) = Range("l" & q).Value + n Else Range("k" & p) = o Range("l" & p) = n End If k = m ' Next End If End If Next Application.ScreenUpdating = True End Sub
[/vba]
вдруг правильно [vba]
Код
Sub xs() Application.ScreenUpdating = False 'очистим старый список a = Cells(Rows.Count, "k").End(xlUp).Row 'нижняя ячейка списка If a > 3 Then Range("k4:l" & a).Clear 'определим размеры* таблицы на листе Рецепты b = Sheets("Рецепты").Cells(Rows.Count, "b").End(xlUp).Row 'нижняя строка c = Sheets("Рецепты").Cells(4, Columns.Count).End(xlToLeft).Column 'правый столбец 'определим диапазон недели d = Range("m2").Value e = Application.Match(d, Range("a:a"), 0) 'верхняя строка f = Range("a" & e).MergeArea.Cells.Count + e - 1 'нижняя строка 'пройдемся циклом по неделе For Each g In Range("b" & e & ":h" & f) h = g.Value 'значение ячейки If h <> "" Then i = Application.Match(h, Sheets("Рецепты").Range("b1:b" & b), 0) 'строка блюда j = Application.Count(Range(Sheets("Рецепты").Cells(i, 3), Sheets("Рецепты").Cells(i, c))) 'кол-во инг. 'вытащим ингридиенты If j > 0 Then k = 2 'начальный столбец For l = 1 To j m = Sheets("Рецепты").Cells(i, k).End(xlToRight).Column 'столбец со значанием n = Sheets("Рецепты").Cells(i, m).Value 'вес* o = Sheets("Рецепты").Cells(4, m).Value 'наименование p = Cells(Rows.Count, "k").End(xlUp).Row + 1 'строка вставки (1) q = Application.Match(o, Range("k4:k" & p), 0) 'строка вставки (2) If IsNumeric(q) Then q = q + 3 Range("l" & q) = Range("l" & q).Value + n Else Range("k" & p) = o Range("l" & p) = n End If k = m ' Next End If End If Next Application.ScreenUpdating = True End Sub
Если притянуться еще к ингредиентам и единицы измерения с отделом... и пожалуйста, сделайте диапазон таблицы с ингредиентами безграничным, что бы можно было добавлять рецепты
Если притянуться еще к ингредиентам и единицы измерения с отделом... и пожалуйста, сделайте диапазон таблицы с ингредиентами безграничным, что бы можно было добавлять рецепты pankkris