Здравствуйте! Как порядочная домохозяйка, пытаюсь упростить себе жизнь. И меня посетила "гениальная" идея создания в эксель автоматического списка покупок. В общем и целом имеется: Лист 1 (Меню) - на нем условный календарик на 5 недель, с расписанием удобным для меня, когда и что готовить. Сделала всё выпадающими списками, что бы при желании менять блюда под обстоятельства. Рядом таблица со списком продуктов (с ней у меня и проблема, к этому вернусь с объяснениями) Лист 2 (Рецепты) - просто огромная табличка где в первой колонке расписаны блюда (Толченка, Сырный, Котлеты) по категориям (Гарниры, Мясо, Суп) и по горизонтали продукты, расписанные как рецепты.
И вот в чем проблема/трудность/задача/ Прошел месяц, я захожу в таблицу, выставляю из выплывающих списках новое меню на месяц, нажимаю на номер недели в списке покупок и он автоматически выдает те продукты и в том количестве что мне нужно из меню которое я выставила. При этом всем, естественно количество Блюд и Продуктов будет добавляться.
Не уверенна понятно ли, что имеется и что хочу, но это 100% используется в складском учёте и в подобном направлении
В конце концом, может как то по другому организовать всю эту систему, но смысл должен остаться тот же - зашел выбрал блюда, и рядом БАХ список продуктов на неделю, это просто потрясающе удобно
И возможно есть темы, которые подобное уже разбирали, но я не знаю как это называется, что бы найти. В общем, за любую помощь буду благодарна
Файл с Меню прикреплен
Здравствуйте! Как порядочная домохозяйка, пытаюсь упростить себе жизнь. И меня посетила "гениальная" идея создания в эксель автоматического списка покупок. В общем и целом имеется: Лист 1 (Меню) - на нем условный календарик на 5 недель, с расписанием удобным для меня, когда и что готовить. Сделала всё выпадающими списками, что бы при желании менять блюда под обстоятельства. Рядом таблица со списком продуктов (с ней у меня и проблема, к этому вернусь с объяснениями) Лист 2 (Рецепты) - просто огромная табличка где в первой колонке расписаны блюда (Толченка, Сырный, Котлеты) по категориям (Гарниры, Мясо, Суп) и по горизонтали продукты, расписанные как рецепты.
И вот в чем проблема/трудность/задача/ Прошел месяц, я захожу в таблицу, выставляю из выплывающих списках новое меню на месяц, нажимаю на номер недели в списке покупок и он автоматически выдает те продукты и в том количестве что мне нужно из меню которое я выставила. При этом всем, естественно количество Блюд и Продуктов будет добавляться.
Не уверенна понятно ли, что имеется и что хочу, но это 100% используется в складском учёте и в подобном направлении
В конце концом, может как то по другому организовать всю эту систему, но смысл должен остаться тот же - зашел выбрал блюда, и рядом БАХ список продуктов на неделю, это просто потрясающе удобно
И возможно есть темы, которые подобное уже разбирали, но я не знаю как это называется, что бы найти. В общем, за любую помощь буду благодарна
Sub xs()
Application.ScreenUpdating = False 'очистим старый список
a = Cells(Rows.Count, "k").End(xlUp).Row 'нижняя ячейка списка If a > 3Then 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 > 0Then
k = 2'начальный столбец For l = 1To 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) IfIsNumeric(q) Then
q = q + 3
Range("l" & q) = Range("l" & q).Value + n Else
Range("k" & p) = o
Range("l" & p) = n EndIf
k = m ' Next EndIf EndIf Next
Application.ScreenUpdating = True EndSub
вдруг правильно
Sub xs()
Application.ScreenUpdating = False 'очистим старый список
a = Cells(Rows.Count, "k").End(xlUp).Row 'нижняя ячейка списка If a > 3Then 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 > 0Then
k = 2'начальный столбец For l = 1To 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) IfIsNumeric(q) Then
q = q + 3
Range("l" & q) = Range("l" & q).Value + n Else
Range("k" & p) = o
Range("l" & p) = n EndIf
k = m ' Next EndIf EndIf Next
Application.ScreenUpdating = True EndSub
Если притянуться еще к ингредиентам и единицы измерения с отделом... и пожалуйста, сделайте диапазон таблицы с ингредиентами безграничным, что бы можно было добавлять рецепты
Если притянуться еще к ингредиентам и единицы измерения с отделом... и пожалуйста, сделайте диапазон таблицы с ингредиентами безграничным, что бы можно было добавлять рецепты pankkris