Поиск и изменение данных в таблицах Excel (VBA)


Рубрика: Учебные материалы
Метки: |
Поиск и изменение данных в таблицах Excel (VBA)

Работа заключается в следующем. Создается пользовательская форма поиска и изменения данных, в моем примере это UserForm5 . Поиск состоит из следующих процедур: из раскрывающегося списка выбирается дата реализации продукта, затем в список ListBox заносятся все продукты, которые были реализованы в ресторане в указанную дату. После чего, необходимо выбрать в ListBox конкретный продукт, затем заполняются два текстовых поля

(TextBox) соответствующими данными (название и количество). Изменять можно только количество проданного товара. Для этого в TextBox необходимо внести новое количество товара и нажать кнопку «Изменить» При этом измененные данные попадают в таблицу на листе «Реализация» и происходит перерасчет суммы.

 

 

В форме использованы следующие элементы: ComboBox1 (раскрывающийся список для выбора даты). ListBox1 – список, в который попадают все продукты, реализованные в указанную дату. Два текстовых поля TextBox, две кнопки и четыре надписи Label.

 

Программы для этой формы следующие:

Сначала вводятся переменные для обозначения строк:

Dim sss, ads

 

Private Sub ComboBox1_Change()

' эта процедура очищает ранее заполненные поля формы, и после выбора из списка

' конкретной даты заполняет соответствующими названиями продуктов ListBox1

ListBox1.Clear

TextBox1.Text = " "

TextBox2.Text = " "

1 For sss = 1 To 5000

If ComboBox1.Text = Sheets("Реализация").Cells(sss, 1).Text Then

ListBox1.AddItem Sheets("Реализация").Cells(sss, 3).Text

End If

Next

End Sub

 

Private Sub CommandButton1_Click()

'эта процедура для кнопки "Изменить". После выбора конкретного продукта значение из текстового поля «количество» попадает в соответствующую ячейку рабочего листа «реализация»

For sss = 1 To 8000

If ComboBox1.Text = Sheets("Реализация").Cells(sss,1).Text And ListBox1.Text = Sheets("Реализация").Cells(sss, 3).Text Then

Worksheets("Реализация").Cells(sss, 4) = TextBox2.Text

End If

Next

ListBox1.Clear

TextBox1.Text = " "

TextBox2.Text = " "

End Sub

 

Private Sub CommandButton2_Click()

UserForm5.Hide

End Sub

 

Private Sub ListBox1_Click()

'после выбора конкретной даты в ListBox1 заполняются остальные данные -

' название продукта и количество.

For sss = 1 To 8000

If ComboBox1.Text = Sheets("Реализация").Cells(sss, 1).Text And ListBox1.Text = Sheets("Реализация").Cells(sss, 3).Text Then

TextBox1.Text = Sheets("Реализация").Cells(sss, 3).Text

TextBox2.Text = Sheets("Реализация").Cells(sss, 4).Text

End If

Next

End Sub

 

Private Sub UserForm_Activate()

' при активизации формы "Поиск" сначала данные сортируются по убыванию даты

' реализации продуктов, затем заполняется список с датами из первого столбца таблицы.

Sheets("Реализация").Select

Range("A2:C8000").Select

Selection.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlNo, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

1 For ads = 2 To 8000

If Sheets("Реализация").Cells(ads, 1).Text = "" Then Exit Sub

If Sheets("Реализация").Cells(ads, 1).Text = Sheets("Реализация").Cells(ads + 1, 1).Text Then GoTo 3

ComboBox1.AddItem Sheets("Реализация").Cells(ads, 1).Text

3 Next

End Sub

Так же, не плохо бы Вам знать как скрыть панели инструментов на титульном листе. Для этого необходимо в программном модуле рабочей книги создать следующую программу:

Private Sub Workbook_open()

Sheets("Титульный").Select

Application.CommandBars("Control Toolbox").Visible = False

Application.CommandBars("Picture").Visible = False

Application.CommandBars("PivotTable").Visible = False

Application.CommandBars("External Data").Visible = False

Application.CommandBars("Forms").Visible = False

Application.CommandBars("Chart").Visible = False

Application.CommandBars("Reviewing").Visible = False

Application.CommandBars("WordArt").Visible = False

Application.CommandBars("Web").Visible = False

Application.CommandBars("Visual Basic").Visible = False

Application.CommandBars("Standard").Visible = False

Application.CommandBars("Formatting").Visible = False

Application.CommandBars("Drawing").Visible = False

Application.DisplayFormulaBar = False

Application.DisplayStatusBar = False

End Sub

 

Что бы при открытии работы открывался сразу нужный лист необходимо сделать следующее:

Сделайте двойной щелчок на элементе «Эта книга» в редакторе Visual Basic (Alt+F11). . Наберите следующую программу:

Private Sub Workbook_Open()

Sheets("Главное меню"). Activate

' ну и код приветствия

MsgBox "Вас приветствует информационно- аналитическая система...."

End Sub

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Комментарий будет опубликован после проверки

(обязательно)