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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д