Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Цикл с автосуммированием

Автор And_rey, 23.06.2016, 20:51:29

« назад - далее »

And_rey

Доброго времени суток. Такая проблема. Есть спецификация заказа с перечнем изделий которые нужно изготовить. Есть страница с перечнем деталей и количеством для этого изделия. Помогите с кодом программы которая будет проходить по позициям спецификации, находить по коду изделие в базе изделий и на странице "нормы на заказ" формировать общую потребность в материалах и фурнитуре. Пример результата на странице "нормы на заказ". Сам пример файла прикладываю. Заранее спасибо.

китин

вот такая страшная формула массива =ЕСЛИОШИБКА(ИНДЕКС('База изделий'!$H$3:$H$22;НАИМЕНЬШИЙ(ЕСЛИ(ПОИСКПОЗ(ЕСЛИ('База изделий'!$H$3:$H$22<>"";'База изделий'!$H$3:$H$22);ЕСЛИ('База изделий'!$H$3:$H$22<>"";'База изделий'!$H$3:$H$22);0)=СТРОКА('База изделий'!$G$3:$G$22)-2;СТРОКА('База изделий'!$G$3:$G$22)-2);СТРОКА(A1)));"")

And_rey

Да, спасибо так работает. Но формула действительно страшная)). Но хотелось бы сделать это с помощью VBA. Помогите с кодом.

китин

Цитата: And_rey от 24.06.2016, 12:06:18Но хотелось бы сделать это с помощью VBA
ну тогда ждите макрописцев

A-Michael

Не совсем ясен критерий расчёта. У Вас на листе "СпУцификация" указано 4 изделия, на каждое расходуется по 8 шурупов  всего должно быть 32 (4*8=32), а на листе "норма на заказ" почему-то аж 120. Зато ДСП вместо 3,9 всего 2,8.
К чему бы это?
Может я чего не понял?? :)
Я - не волшебник, я ещё только учусь...

And_rey

На листе "норма на заказ" пример результата (суммы там неточные), тут важен сам формат итоговых данных т.е суммировать нужно по 3-м столбцам. Извиняюсь за ошибки))

Юрий М

Суммы там неточные... И Вы до сих пор не исправили файл? Как сверяться - правильный результат или нет?

And_rey

Блин, вроде вкладывал исправленный. Загружаю еще раз.

Юрий М

А  этот набор:
ДСП
Шуруп
Заглушка
Петля
Шкант

Может расширяться?

Юрий М

Уточню свой вопрос: столбцы А и В на итоговом листе уже заполнены и нужно только посчитать столбец С. Так?

Юрий М

Странное дело: автор, вроде заинтересованное лицо, находится в теме, а на простые вопросы не отвечает... А оно мне надо, сидеть и ждать ответ?

Kuzmich

И у меня получилось 32 шурупа, а не 24 как у вас.

китин

и у меня 24. беспредел какой то >:(

And_rey

Извиняюсь, не всегда получается быть в сети. Да получается 32 шурупа (поэтому и хочу это автоматизировать, потому, что у меня всегда получается много таких ошибок когда делаю это руками). Изначально страница норма на заказ пустая. Я вписываю в спецификацию заказ нужные мне изделия которые есть в "базе изделий", например нажимаю кнопку "посчитать нормы" и формуются данные на странице "норма на заказ" исходя из состава материалов на странице "база изделий"

sv2015

#14
добрый день,вариант макроса,кнопки test и очистка

Sub test()
    Dim z, i&, j&, m&, t$: z = Range("C2:I" & Range("C" & Rows.Count).End(xlUp).Row).Value
    With CreateObject("scripting.dictionary"): .CompareMode = 1
   For i = 1 To UBound(z): t = z(i, UBound(z, 2))
     If Not IsEmpty(t) And Not IsEmpty(z(i, 1)) Then
         If .exists(t) = False Then
           m = m + 1: .Item(t) = m: For j = 1 To UBound(z, 2): z(m, j) = z(i, j): Next
         Else
           z(.Item(t), 1) = z(.Item(t), 1) + z(i, 1)
         End If
      End If
   Next
  Sheets("норма на заказ").Range("A1").Resize(.Count, UBound(z, 2)).Value = z
   End With
  Sheets("норма на заказ").Columns("B:E").Delete Shift:=xlToLeft
   sort
End Sub


 

Яндекс.Метрика Рейтинг@Mail.ru