Шаг 27 - Обмен данными между формой и таблицей

Задача. Я хочу сделать ряд справок и страницу с константами. Одной из констант будет фамилия директора, которая используется в справках. При изменении этой константы фамилия в справке должна автоматически меняться. И я хочу менять фамилию из формы.

Создаем лист Константы и на нем ячейке даем имя.

27_1.gif (5072 b)

И любое количество листов со справками. Ссылаясь на ячейку с фамилией.

27_2.gif (4881 b)

Как вы понимаете, сколько я листов не создам, воспользовавшись ссылкой на ячейку =director, стоит мне изменить данные в ячейки с фамилией директора она везде поменяется. Это само нормально. Вот только менять я хочу из формы, например, чтобы с константами спрятать лист подальше от пользователя. Ну давайте создавать форму. Идем в редактор VBA:

27_3.gif (7413 b)

При запуске формы мы должны прочитать данные с листа:

Private Sub UserForm_Activate()
	Worksheets.Item("Konst").Activate
	UserForm1.TextBox1.Text = Range("Director").Text
End Sub

При нажатии на кнопку "Новый" заменить данные на листе константы (автоматически поменяются на справках):

Private Sub CommandButton2_Click()
	Range("Director").Value = UserForm1.TextBox1.Text
End Sub

По нажатию на "Хватит" закрыть форму:

Private Sub CommandButton1_Click()
	Unload Me
End Sub

Как видите использование констант в тех случаях, где это разумно на отдельном листе позволяет просто создать форму. Потом форму можно скрыть и вызвать из меню для замены значений.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.