VBA и EXCEL

Узнай цену своей работы

Формулировка задачи:

У меня следующая проблема:
на одном листе у меня есть таблица с данными и расчётами, выпадающие списки. На новом листе мне нужно создать форму, на которой должна быть кнопка "новая запись" и в полях, где выпадающие списки, нужно изменить значения и чтобы АВТОМАТИЧЕСКИ поменялись данные во всей таблице сохранить эти изменения.
У меня получается всё, кроме того, чтобы данные в таблице изменяли по нажатию кнопки "Сохранить".
Помогите, пожалуйста:)

Решение задачи: «VBA и EXCEL»

textual
Листинг программы
Dim x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12 As Double
Dim i As Integer
Private Sub chast_invest_Change()
chast_invest.Text = Val(invest.Text) * Val(chust_doh.Text)
End Sub

Private Sub chast_nakop_Change()
chast_nakop.Text = (1 - Val(koef_spog.Text)) * Val(chust_doh.Text)
End Sub

Private Sub chast_spog_Change()
chast_spog.Text = Val(koef_spog.Text) * Val(chust_doh.Text)
End Sub

Private Sub chust_doh_Change()
chust_doh.Text = Val(vnp.Text) - Val(pod_real.Text)
chast_nakop.Text = (1 - Val(koef_spog.Text)) * Val(chust_doh.Text)
chast_spog.Text = Val(koef_spog.Text) * Val(chust_doh.Text)
chast_invest.Text = Val(invest.Text) * Val(chust_doh.Text)

End Sub

Private Sub CommandButton6_Click()
If MsgBox("Підтвердть вихід із форми користувача", vbYesNo, "Вікно запиту") = vbYes Then
Unload UserForm1
End If

End Sub

Private Sub derg_borg_Change()
derg_vutr.Text = Val(derg_borg.Text) - Val(podatok.Text)

End Sub

Private Sub derg_vutr_Change()
derg_vutr.Text = Val(derg_borg.Text) - Val(podatok.Text)
End Sub

Private Sub invest_Change()
chast_invest.Text = Val(invest.Text) * Val(chust_doh.Text)

End Sub

Private Sub koef_nak_Change()
koef_nak.Text = 1 - Val(koef_spog.Text)


End Sub

Private Sub koef_spog_Change()
koef_nak.Text = 1 - Val(koef_spog.Text)
chast_spog.Text = Val(koef_spog.Text) * Val(chust_doh.Text)
chast_nakop.Text = (1 - Val(koef_spog.Text)) * Val(chust_doh.Text)

End Sub

Private Sub nast_Click()
If ActiveCell.Offset(1, 0).Value <> "" Then
ActiveCell.Offset(1, 0).Select
vnp.Value = ActiveCell.Value
pod_real.Value = ActiveCell.Offset(0, 1).Value
chust_doh.Value = ActiveCell.Offset(0, 2).Value
chast_nakop.Value = ActiveCell.Offset(0, 3).Value
chast_spog.Value = ActiveCell.Offset(0, 4).Value
chast_invest.Value = ActiveCell.Offset(0, 5).Value
derg_vutr.Value = ActiveCell.Offset(0, 6).Value
derg_borg = ActiveCell.Offset(16, 0).Value

Else
MsgBox "Останній запис"
End If

End Sub
Private Sub nove_Click()
i = 1
'Змінні
x1 = vnp.Text
x2 = pod_real.Text
x3 = chust_doh.Text
x4 = chast_nakop.Text
x5 = chast_spog.Text
x6 = chast_invest.Text
x7 = derg_vutr.Text
i = 2
x8 = koef_spog.Text
x9 = koef_nak.Text
x10 = invest.Text
x11 = podatok.Text
x12 = derg_borg.Text

'Поля
koef_spog.Text = ""
koef_nak.Text = ""
invest.Text = ""
podatok.Text = ""
derg_borg.Text = ""
vnp.Text = ""

koef_spog.Enabled = True
koef_nak.Enabled = True
invest.Enabled = True
podatok.Enabled = True
pod_real.Enabled = False
chust_doh.Enabled = False
chast_nakop.Enabled = False
chast_spog.Enabled = False
derg_vutr.Enabled = False
chast_invest.Enabled = False
vnp.Enabled = True
derg_borg.Enabled = True

End Sub
Private Sub pod_real_Change()
pod_real.Text = Val(podatok.Text) * Val(vnp.Text)
chust_doh.Text = Val(vnp.Text) - Val(pod_real.Text)
End Sub

Private Sub podatok_Change()
pod_real.Text = Val(podatok.Text) * Val(vnp.Text)
derg_vutr.Text = Val(derg_borg.Text) - Val(podatok.Text)
End Sub
Private Sub pop_z_Click()
If ActiveCell.Row > 2 Then
ActiveCell.Offset(-1, 0).Select
vnp.Value = ActiveCell.Value
pod_real.Value = ActiveCell.Offset(0, 1).Value
chust_doh.Value = ActiveCell.Offset(0, 2).Value
chast_nakop.Value = ActiveCell.Offset(0, 3).Value
chast_spog.Value = ActiveCell.Offset(0, 4).Value
chast_invest.Value = ActiveCell.Offset(0, 5).Value
derg_vutr.Value = ActiveCell.Offset(0, 6).Value
derg_borg = ActiveCell.Offset(16, 0).Value
Else
MsgBox "Перший запис"
End If
End Sub
Private Sub UserForm_Activate()
Worksheets("Лист1").Activate
Sheets("початкові дані").Range("A1:L28").Copy Range("A1")

Range("J2").Select
Do While ActiveCell.Value <> ""
koef_spog.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop

Range("K2").Select
Do While ActiveCell.Value <> ""
invest.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop

Range("L2").Select
Do While ActiveCell.Value <> ""
podatok.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop

Range("B14").Select
koef_spog.Value = ActiveCell.Value
koef_nak.Value = ActiveCell.Offset(1, 0).Value
invest.Value = ActiveCell.Offset(2, 0).Value
podatok.Value = ActiveCell.Offset(3, 0).Value
derg_borg = ActiveCell.Offset(4, 0).Value


Range("B2").Select
vnp.Value = ActiveCell.Value
pod_real = ActiveCell.Offset(0, 1).Value
chust_doh = ActiveCell.Offset(0, 2).Value
chast_nakop = ActiveCell.Offset(0, 3).Value
chast_spog = ActiveCell.Offset(0, 4).Value
chast_invest = ActiveCell.Offset(0, 5).Value
derg_vutr.Value = ActiveCell.Offset(0, 6).Value

koef_spog.Enabled = False
koef_nak.Enabled = False
invest.Enabled = False
podatok.Enabled = False
pod_real.Enabled = False
chust_doh.Enabled = False
chast_nakop.Enabled = False
chast_spog.Enabled = False
derg_vutr.Enabled = False
chast_invest.Enabled = False
vnp.Enabled = False
derg_borg.Enabled = False
End Sub
Private Sub vnp_Change()
pod_real.Text = Val(podatok.Text) * Val(vnp.Text)
chust_doh.Text = Val(vnp.Text) - Val(pod_real.Text)
End Sub
Private Sub zber_Click()
'Доповнення
If i = 1 Then
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = vnp.Text
ActiveCell.Offset(0, 1).Value = pod_real.Text
ActiveCell.Offset(0, 2).Value = chust_doh.Text
ActiveCell.Offset(0, 3).Value = chast_nakop.Text
ActiveCell.Offset(0, 4).Value = chast_spog.Text
ActiveCell.Offset(0, 5).Value = chast_invest.Text
ActiveCell.Offset(0, 6).Value = derg_vutr.Text
End If

If i = 2 Then
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(16, 0).Value = derg_borg.Text
End If

Range("B2").Select
vnp.Value = ActiveCell.Value

Range("C2").Select
pod_real.Value = ActiveCell.Value

Range("D2").Select
chast_nakop.Value = ActiveCell.Value

Range("E2").Select
chast_spog.Value = ActiveCell.Value

Range("F2").Select
chast_invest.Value = ActiveCell.Value

Range("G2").Select
chust_doh.Value = ActiveCell.Value

Range("H2").Select
derg_vutr.Value = ActiveCell.Value


End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5