Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Передача данных из формы1 в форму2 со вставкой в ячейки данных

Автор Игорь_Минск, 26.12.2011, 11:45

« назад - далее »

Игорь_Минск

Порядок действий:
Запускаем UserForm1.
Заполняем поля textbox1 и textbox2
Вызываем форму UserForm1. На форме UserForm1 есть кнопка запуска формы UserForm2. Запускаем FormUser2.
Выбираем из списка (диапазон ячеек H6:H9 ) в cobobox1 одно из значений. Нажимаем кнопку "ОК".
Передаем данные из формы UserForm2 в combobox1 в форму UserForm1 в combobox2. - КАК ЭТО СДЕЛАТЬ ????
Причем нужно не потерять введенные ранее значения в textbox1 и textbox2.
label1 должен изменить значение равное combobox1 (combobox2 из формы UserForm2).- КАК ЭТО СДЕЛАТЬ ????
В форме UserForm1 отображаются ранее введенные данные в textbox1, textbox2, а так же combobox1 (взятые из UserForm2) и Label1 равный значению combobox1.
Нажимаем кнопку "ОК" на UserForm1 - автоматически заполняются ячейки D9 (вставить из textbox1) F9 (из вставить из textbox2) J6 (из UserForm1 combobox1).

Пожалуйста, подскажите.
Данных textbox-ов и combobox-ов на обеих формах много (по 10-15 штук на форме), соответственно передавать надо различные данные. В примере упрощенный вариант, чтобы понять суть действий.
Заранее благодарен.

Игорь_Минск

#1
Может кому поможет, выкладываю решение
Разобрался:

для UserForm1 код:

Private Sub CommandButton1_Click()
'вставляем ячейки
    Range("D9").Value = UserForm1.TextBox1.Text
    Range("F9").Value = UserForm1.TextBox2.Text
    Range("J6").Value = UserForm1.ComboBox1.Text
    UserForm1.Hide
End Sub
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Private Sub CommandButton3_Click()
UserForm2.Show 1
End Sub
Private Sub UserForm_Initialize()
'ссылка на ячейки - диапазон в экселе H6:H9 для ComboBox1
ComboBox1 = ""
   With ComboBox1: .RowSource = "$H$6:$H$9": .Value = .List(0): End With
   Label1 = UserForm1.ComboBox1.Text
End Sub

для UserForm2:

Private Sub CommandButton1_Click()
' передача значений в UserForm1
UserForm1.ComboBox1 = UserForm2.ComboBox2.Text
UserForm1.Label1 = UserForm2.ComboBox2.Text
UserForm2.Hide
End Sub
Private Sub CommandButton2_Click()
UserForm2.Hide
End Sub
Private Sub UserForm_Initialize()
'ссылка на ячейки - диапазон в экселе H6:H9 для ComboBox2
ComboBox2 = ""
   With ComboBox2: .RowSource = "$H$6:$H$9": .Value = .List(0): End With
End Sub
Private Sub Form_Activate()
ComboBox2.Text = UserForm1.ComboBox1.Text
UserForm1.ComboBox1.Text = ""
End Sub