Страницы: 1
RSS
Расчет расхода без промежуточных строк
 
Доброе время суток.
Есть таблица с типоразмерами фасадов. Как подсчитать расход не копируя формулу фасада под каждый типоразмер.
Пример во вложении.
Изменено: Альбина297 - 05.10.2016 01:22:34
 
Цитата
Не знаю как сформулировать вопрос
А как считать по формуле расход вручную вы знаете?
Вот и напишите, что должно и где получится.
 
Упростила пример.
 
На Лист4 сделайте кнопку и привяжите к ней макрос
Код
Sub Raschet()
Dim i As Long
Dim iLastRow As Long
Dim Diapazon As Range
Dim FoundMaterial As Range
Dim FAdr As String
Dim iSumma As Double
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 Set Diapazon = Range("A3:A" & iLastRow)
  For i = 36 To 38
      iSumma = 0
    Set FoundMaterial = Diapazon.Find(Cells(i, 2), , xlValues, xlWhole)
    FAdr = FoundMaterial.Address
    Do
      iSumma = iSumma + Cells(FoundMaterial.Row, 3) / 1000 * _
      Cells(FoundMaterial.Row, 4) / 1000 * Cells(FoundMaterial.Row, 6)
      Set FoundMaterial = Diapazon.FindNext(FoundMaterial)
    Loop While FoundMaterial.Address <> FAdr
      Cells(i, 4) = WorksheetFunction.RoundUp(iSumma, 2)
  Next
End Sub
 
На Листе4 Это можно просуммировать согласно формуле суммапроизведения, А на листе1 Хотелось бы получить то же самое.
Спасибо за отклик
 
Цитата
на листе1 Хотелось бы получить то же самое.
По аналогии на Лист1 сделайте кнопку и привяжите к ней макрос
Код
Sub Raschet_forЛист1()
Dim i As Long
Dim iLastRow As Long
Dim Diapazon As Range
Dim FoundMaterial As Range
Dim FAdr As String
Dim iSumma As Double
 iLastRow = Range("A13").End(xlDown).Row
 Set Diapazon = Range("A13:A" & iLastRow)
  For i = 21 To 23
      iSumma = 0
    Set FoundMaterial = Diapazon.Find(Cells(i, 2), , xlValues, xlWhole)
    FAdr = FoundMaterial.Address
    Do
      iSumma = iSumma + Cells(FoundMaterial.Row, 3) / 1000 * _
      Cells(FoundMaterial.Row, 4) / 1000 * Cells(FoundMaterial.Row, 6)
      Set FoundMaterial = Diapazon.FindNext(FoundMaterial)
    Loop While FoundMaterial.Address <> FAdr
      Cells(i, 4) = WorksheetFunction.RoundUp(iSumma, 2)
  Next
End Sub
Страницы: 1
Наверх