Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ргр инфа.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
816.64 Кб
Скачать

3.Расчет локальной сметы

3.1. Постановка задачи

Используя средства MS Excel, необходимо спроектировать документ локальной сметы, в которой представлен расчет сметной стоимости отдельных видов строительных работ.

Тема расчетной сметы: (Устройство ростверков ленточных монолитных проектов 008-08-AC)

В результате расчета сметы должны быть рассчитаны следующие значения:

  • общая сумма основных затрат

  • общая сумма материалов и механизмов

  • транспортные расходы

  • накладные расходы

  • сметная прибыль

  • итого

  • в том числе НДС (18%)

Используя средства VBA, по нажатию соответствующей кнопки (элемент рабочего листа) с помощью форм и элементов управления на них организовать:

  • ввод исходных данных, выполнение итоговых расчетов (форма 1),

  • построение диаграмм различного вида (форма 2).

Построение диаграмм производится с помощью отдельной формы, на которой отображаются данные, используемые для построения диаграммы с возможностью отключение отдельных отображаемых значений. На данной форме осуществляется выбор одного из трех типов диаграммы, а также возможность ввода названия диаграммы. Типы диаграмм: Объемный вариант линейчатой диаграммы, пирамидальная диаграмма, нестандартная на основе типа 2.

3.2.Порядок расчета локальной сметы, смета с отображением зависимых ячеек

Калькуляция стоимости работ№1

Устройство ростверков ленточных монолитных

Порядок заполнения сметы:

  • оформить шапку таблицы;

  • внести наименование работ и материалов по разделам и заполнить колонку 4;

  • в колонках 5, 7 все данные вносятся из таблицы (исходные данные);

  • в колонке 6 (количество материала) – черным цветом отмечены исходные данные, красным – данные рассчитываются следующим образом: произведение расхода в типовом проекте (7) на общее количество по разделу (6).

  • в колонках 8, 9 сначала просчитываются данные, стоящие не в выделенных строках (данные не по разделам)

  • стоимость в кол. 8: произведение цены материала (5) (строка стоимость работ) на расход в типовом проекте (7)

  • в колонках 10, 11 сначала просчитываются данные, стоящие не в выделенных строках (данные не по разделам)

  • общая стоимость в кол. 10: произведение цены материала (5) (строка стоимость работ) на количество (6)

  • стоимость в кол. 11: произведение цены материала (5) на количество (6)

  • данные по разделам в колонках 10, 11 просчитываются как сумма данных по колонкам 10, 11 по разделу.

  • заполнения сметы cверить данные в расчетной таблице с оригиналом;

Порядок подсчета итогов:

  • Общую сумму основных затрат (сумма по разделам в колонке 10)(S1)

  • Общую сумму материалов и механизмов (сумма по разделам в колонке 11) (S2)

  • Транспортные расходы: 15%  от основных затрат

  • Накладные расходы: 50 % от ФОТ (ФОТ= S1 - S2)

  • Сметная прибыль: 30 % от ФОТ

  • ИТОГО: по смете (S1+транспортные расходы + накладные расходы + сметная прибыль)

  • В том числе НДС (18%): (НДС уже заложен в сумму ИТОГО, т.е. вычисляется (18/118))

Рисунок 1. Локальная смета в с отображением зависимых ячеек

3.3.Расчетная схема в режиме отображения формул

Рисунок 2. Смета в режиме отображения формул

3.4.Главная форма “Изменение исходных данных”

Рисунок 3. Форма «Изменения исходных данных»

3.4.1. Описание элементов управления, представленных на форме, их назначение и уникальные имена, используемые в процедурах

3.4.2.Листинг процедур формы «Изменение исходных данных»

Код программы:

Option Explicit

Dim i As Integer

Private Sub CommandButton4_Click()

UserForm1.Hide

End Sub

Private Sub SpinButton1_SpinUp()

TextBox1.Value = CStr(CDbl(TextBox1.Value) + 0.5)

End Sub

Private Sub SpinButton1_SpinDown()

TextBox1.Value = CStr(CDbl(TextBox1.Value) - 0.5)

End Sub

Private Sub SpinButton2_SpinUp()

TextBox2.Value = CStr(CDbl(TextBox2.Value) + 0.5)

End Sub

Private Sub SpinButton2_SpinDown()

TextBox2.Value = CStr(CDbl(TextBox2.Value) - 0.5)

End Sub

Private Sub SpinButton3_SpinUp()

TextBox3.Value = CStr(CDbl(TextBox3.Value) + 0.5)

End Sub

Private Sub SpinButton3_SpinDown()

TextBox3.Value = CStr(CDbl(TextBox3.Value) - 0.5)

End Sub

Public Sub clear()

L1.Caption = ""

L2.Caption = ""

L3.Caption = ""

L4.Caption = ""

L5.Caption = ""

L6.Caption = ""

L7.Caption = ""

For i = 27 To 33

Worksheets(1).Range("I" & i) = ""

Next i

End Sub

Private Sub TextBox1_Change()

clear

End Sub

Private Sub TextBox2_Change()

clear

End Sub

Private Sub TextBox3_Change()

clear

End Sub

Private Sub UserForm_Initialize()

TextBox1.Value = Worksheets(1).Cells(8, 6)

TextBox2.Value = CStr(Worksheets(1).Cells(14, 6))

TextBox3.Value = CStr(Worksheets(1).Cells(17, 6))

L1.Caption = ""

L2.Caption = ""

L3.Caption = ""

L4.Caption = ""

L5.Caption = ""

L6.Caption = ""

L7.Caption = ""

CommandButton3.Enabled = False

End Sub

Private Sub CommandButton1_Click()

If MsgBox("Вы уверены,что хотите изменить значения?", vbYesNo + vbQuestion, "Коректировка данных") = vbYes Then

Worksheets(1).Cells(8, 6) = TextBox1.Value

Worksheets(1).Cells(14, 6) = TextBox2.Value

Worksheets(1).Cells(17, 6) = TextBox3.Value

Else

Exit Sub

End If

End Sub

Private Sub CommandButton2_Click()

Dim a1 As Single, a2 As Single, a3 As Single

Dim a4 As Single, a5 As Single, a6 As Single, a7 As Single

CommandButton3.Enabled = True

If CDbl(TextBox1.Value) <> Worksheets(1).Cells(8, 6) Or CDbl(TextBox2.Value) <> Worksheets(1).Cells(14, 6) Or CDbl(TextBox3.Value) <> Worksheets(1).Cells(17, 6) Then

If MsgBox("Данные были изменены принять изменения?", vbYesNo + vbQuestion, "Корректировка данных") = vbYes Then

Worksheets(1).Cells(8, 6) = Val(TextBox1.Value)

Worksheets(1).Cells(14, 6) = Val(TextBox2.Value)

Worksheets(1).Cells(17, 6) = Val(TextBox3.Value)

Else

TextBox1.Value = Worksheets(1).Cells(8, 6)

TextBox2.Value = Worksheets(1).Cells(14, 6)

TextBox3.Value = Worksheets(1).Cells(17, 6)

End If

End If

a1 = Worksheets(1).Cells(8, 10) + Worksheets(1).Cells(14, 10) + Worksheets(1).Cells(17, 10) + Worksheets(1).Cells(20, 10)

a2 = Worksheets(1).Cells(8, 11) + Worksheets(1).Cells(14, 11) + Worksheets(1).Cells(17, 11) + Worksheets(1).Cells(20, 11)

a3 = Worksheets(1).Cells(27, 8) * 0.15

a4 = (Worksheets(1).Cells(27, 8) - Worksheets(1).Cells(28, 8)) * 0.5

a5 = (Worksheets(1).Cells(27, 8) - Worksheets(1).Cells(28, 8)) * 0.3

a6 = Worksheets(1).Cells(27, 8) + Worksheets(1).Cells(29, 8) + Worksheets(1).Cells(30, 8) + Worksheets(1).Cells(31, 8)

a7 = Worksheets(1).Cells(32, 8) / 1.18 * 0.18

L1.Caption = Format(a1, "##,###.00")

L2.Caption = Format(a2, "##,###.00")

L3.Caption = Format(a3, "##,###.00")

L4.Caption = Format(a4, "##,###.00")

L5.Caption = Format(a5, "##,###.00")

L6.Caption = Format(a6, "##,###.00")

L7.Caption = Format(a7, "##,###.00")

End Sub

Private Sub CommandButton3_Click()

If L1.Caption <> "" Then

UserForm2.Show

Else

MsgBox "Подсчитайте итоги", vbCritical + vbOKOnly

End If

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]