Приветствую всех форумчан. Нужна Ваша помощь. Хочется автоматизировать свою работу) Ситуация: Каждый день на складе собирают заказы использую расходники и упаковочные материалы. Упаковщики дают отчеты по расходу. Есть прайс на материалы. Нужно создать табличку с данными упаковщиков и суммой расхода по каждому заказу для выставления счетов заказчикам. Материалы могут добавляться.
Приветствую всех форумчан. Нужна Ваша помощь. Хочется автоматизировать свою работу) Ситуация: Каждый день на складе собирают заказы использую расходники и упаковочные материалы. Упаковщики дают отчеты по расходу. Есть прайс на материалы. Нужно создать табличку с данными упаковщиков и суммой расхода по каждому заказу для выставления счетов заказчикам. Материалы могут добавляться.DariaDol
Здравствуйте, а почему только по расходу? Приход сами будете корректировать? Вдруг забудете приход оприходовать? остаток-то как считать? Есть много макросов по учету товаров на складе, в т.ч от разных поставщиков и отпуску товара разным потребителям со справочниками контрагентов Или только расход контролируете? А не поощрит ли Вас Управление за нормальное отображение финансово-хозяйственной деятельности? Вроде все к этому приходят.
Здравствуйте, а почему только по расходу? Приход сами будете корректировать? Вдруг забудете приход оприходовать? остаток-то как считать? Есть много макросов по учету товаров на складе, в т.ч от разных поставщиков и отпуску товара разным потребителям со справочниками контрагентов Или только расход контролируете? А не поощрит ли Вас Управление за нормальное отображение финансово-хозяйственной деятельности? Вроде все к этому приходят.Exo
А что такое вестибюль? А что такое широкополосный интернет?
Нужно создать табличку с данными упаковщиков и суммой расхода по каждому заказу
При активном листе "price" запустить макрос [vba]
Код
Sub Itogo() Dim i As Long Dim iLastRow As Long Dim j As Integer Dim Itogo As Double Dim Price As Worksheet Set Price = ThisWorkbook.Worksheets("price") iLastRow = Cells(Rows.Count, "A").End(xlUp).Row For i = 2 To iLastRow - 1 Itogo = 0 For j = 2 To 7 If Not IsEmpty(Cells(i, j)) Then Itogo = Itogo + Cells(i, j) * Price.Cells(j, "B") End If Next Cells(i, "H") = Itogo Next For j = 2 To 7 Cells(iLastRow, j) = WorksheetFunction.Sum(Range(Cells(2, j), Cells(iLastRow - 1, j))) * Price.Cells(j, "B") Next End Sub
[/vba]
Цитата
Нужно создать табличку с данными упаковщиков и суммой расхода по каждому заказу
При активном листе "price" запустить макрос [vba]
Код
Sub Itogo() Dim i As Long Dim iLastRow As Long Dim j As Integer Dim Itogo As Double Dim Price As Worksheet Set Price = ThisWorkbook.Worksheets("price") iLastRow = Cells(Rows.Count, "A").End(xlUp).Row For i = 2 To iLastRow - 1 Itogo = 0 For j = 2 To 7 If Not IsEmpty(Cells(i, j)) Then Itogo = Itogo + Cells(i, j) * Price.Cells(j, "B") End If Next Cells(i, "H") = Itogo Next For j = 2 To 7 Cells(iLastRow, j) = WorksheetFunction.Sum(Range(Cells(2, j), Cells(iLastRow - 1, j))) * Price.Cells(j, "B") Next End Sub
Kuzmich, Все работает! Спасибо огромное за помощь! А как бы мне еще сделать, что бы добавлялись колонки при добавлении номенклатуры на странице price
Kuzmich, Все работает! Спасибо огромное за помощь! А как бы мне еще сделать, что бы добавлялись колонки при добавлении номенклатуры на странице priceDariaDol
как бы мне еще сделать, что бы добавлялись колонки при добавлении номенклатуры на странице price
Попробуйте так: [vba]
Код
Sub Itogo() Dim i As Long Dim iLastRow As Long Dim j As Integer Dim Itogo As Double Dim Price As Worksheet Dim KolName As Integer Dim iLastColumn As Integer iLastColumn = Cells(1, Columns.Count).End(xlToLeft).Column Range(Cells(1, 2), Cells(1, iLastColumn)).ClearContents 'очищаем шапку на листе file Set Price = ThisWorkbook.Worksheets("price") iLastRow = Cells(Rows.Count, "A").End(xlUp).Row KolName = Price.Cells(Rows.Count, "A").End(xlUp).Row Price.Range("A2:A" & KolName).Copy Range("B1").PasteSpecial xlPasteValues, Transpose:=True 'формируем шапку Cells(1, KolName + 1) = "Итого" For i = 2 To iLastRow - 1 Itogo = 0 For j = 2 To KolName If Not IsEmpty(Cells(i, j)) Then Itogo = Itogo + Cells(i, j) * Price.Cells(j, "B") End If Next Cells(i, KolName + 1) = Itogo Next For j = 2 To KolName Cells(iLastRow, j) = WorksheetFunction.Sum(Range(Cells(2, j), Cells(iLastRow - 1, j))) * Price.Cells(j, "B") Next End Sub
[/vba]
Цитата
как бы мне еще сделать, что бы добавлялись колонки при добавлении номенклатуры на странице price
Попробуйте так: [vba]
Код
Sub Itogo() Dim i As Long Dim iLastRow As Long Dim j As Integer Dim Itogo As Double Dim Price As Worksheet Dim KolName As Integer Dim iLastColumn As Integer iLastColumn = Cells(1, Columns.Count).End(xlToLeft).Column Range(Cells(1, 2), Cells(1, iLastColumn)).ClearContents 'очищаем шапку на листе file Set Price = ThisWorkbook.Worksheets("price") iLastRow = Cells(Rows.Count, "A").End(xlUp).Row KolName = Price.Cells(Rows.Count, "A").End(xlUp).Row Price.Range("A2:A" & KolName).Copy Range("B1").PasteSpecial xlPasteValues, Transpose:=True 'формируем шапку Cells(1, KolName + 1) = "Итого" For i = 2 To iLastRow - 1 Itogo = 0 For j = 2 To KolName If Not IsEmpty(Cells(i, j)) Then Itogo = Itogo + Cells(i, j) * Price.Cells(j, "B") End If Next Cells(i, KolName + 1) = Itogo Next For j = 2 To KolName Cells(iLastRow, j) = WorksheetFunction.Sum(Range(Cells(2, j), Cells(iLastRow - 1, j))) * Price.Cells(j, "B") Next End Sub