Страницы: 1
RSS
отображение а поле формы значения соответствующей ячейки, как заставить форму отображать текущее значение ячейки к которой оно относится??
 
Добрый день, форумчане!
помогите решить следующую задачу.
Разработал таблицу. Для ее заполнения создал форму для заполнения.
Заблокировал лист от внесения изменений не через форму.
Предусмотрел возможность корректировки значений через эту же форму при постановки курсора в строку, котрую надо корректировать.
Столкнулся с проблемой, если не заполнить все поля формы, то незаполненные она затирает пустыми значениями.
Вижу 2 варианта решения.
Либо научить форму заполнять только те поля, которые подверглись редактированию при ее открытии
Либо заставить форму отображать в своих полях текущие значения ячеек из строки, где стоит курсор.
Но!
пока не понимаю как это сделать...
Помогите пож.!!!!
 
Чем помочь? Разработать таблицу, создать форму для ее заполнения(далее по списку, все перечислять не буду). И выложить Вам решение.
divemaster, почитайте-ка Правила. Особое внимание п1, п2.3.
Я сам - дурнее всякого примера! ...
 
в общем Ваш слоган отражает написанное в Вашем сообщении...
формы все созданы.
просто не понимаю как подступиться к решению последнего вопроса..
и как говорится, не надо путать патриотизм с идиотизмом... хотелось бы чего-нить по существу...
наверняка кто-то с такой проблемой сталкивался и как-то решал.
 
Используйте, например, в коде обработчика события активации формы
Код
TextBox1.ControlSource = "B" & ActiveCell.Row
 
или

   TextBox1.Value = ActiveCell

туда же
Живи и дай жить..
 
anvg, спасибо за совет, но честно говоря не получается.
сейчас форма активируется нажатием на Command Button3
в форме прописан скрипт:
Код
Private Sub CommandButton3_Click()
 Dim act_cell
 
 act_cell = ActiveCell.Row
 
 For i = 6 To 1000
 If (Cells(i, 1).Value = "" ;)  Then
 act_cell = i
 Exit For
 End If
 Next
 
Next
 
 Cells(ActiveCell.Row, 1).Value = tb_1.Text
 Cells(ActiveCell.Row, 2).Value = Calendar1.Value
 Cells(ActiveCell.Row, 3).Value = Calendar2.Value
 Cells(ActiveCell.Row, 4).Value = tb_2.Text
 Cells(ActiveCell.Row, 5).Value = ComboBox1.Value
 Cells(ActiveCell.Row, 6).Value = tb_9.Text
 Cells(ActiveCell.Row, 7).Value = tb_4.Text
 Cells(ActiveCell.Row, 9).Value = ComboBox5.Value
 Cells(ActiveCell.Row, 11).Value = tb_8.Text
 Cells(ActiveCell.Row, 12).Value = tb_10.Text
 Cells(ActiveCell.Row, 13).Value = ComboBox2.Value
 Cells(ActiveCell.Row, 14).Value = ComboBox4.Value
 Cells(ActiveCell.Row, 15).Value = tb_7.Text
 Cells(ActiveCell.Row, 17).Value = ComboBox6.Value
 Cells(ActiveCell.Row, 1 8) .Value = ComboBox7.Value
 ActiveCell.Cells.Offset(1).Activate

таким образом заполняются ячейки из формы.
понимаю, что глупый вопрос, но как и куда включить Вашу команду?
 
мы до вечера будем гадать что это за форма и где она активируется.. в этом коде она, кстати, не активируется..

пример?!
Живи и дай жить..
 
Активация формы - это показ формы пользователю, а не сохранения результата работы пользователя с элементами формы (как я понял, Private Sub CommandButton3_Click() делает именно это). Для примера, такой код
Код
Private Sub UserForm_Activate()
    tb_1.ControlSource = Cells(ActiveCell.Row, 1).Address
    tb_2.ControlSource = Cells(ActiveCell.Row, 4).Address
End Sub

Связь полей ввода с ячейкой не только заполняет их значениями ячеек, но и изменение в любом связанном поле ввода приводит к изменению значения в связанной ячейке.
Правда, никогда ранее этим не пользовался, поэтому не могу понять, почему эти изменения не отображаются в ячейках пока форма не закрыта. Естественно, это накладывает ограничение. То есть, если предусмотрена возможность отмены действий (простое закрытие формы без сохранения изменений в ячейках), то такой вариант не подойдёт. Используйте тогда
Код
Private Sub UserForm_Activate()
    tb_1.Text = Cells(ActiveCell.Row, 1).Value
    tb_2.Text = Cells(ActiveCell.Row, 4).Value
End Sub

Действие обратное записи значений полей ввода в ячейки.
 
Цитата
Столкнулся с проблемой, если не заполнить все поля формы, то незаполненные она затирает пустыми значениями.
Проверять: если ТекстБокс не пуст, то значение из него в ячейку - тогда не будет затирать.
 
прикладываю свою таблицу...
наверное, я совсем чайник ... )) не хочет работать и все..
 
95.16 КБ... А нарисовать пример с парой контролов на форме на 15 КБ - никак?
 
Юрий, не судите строго...
не успел.
вопрос очень горящий...
 
Да не сужу - подсказываю, как ускорить получение ответа)
 
Юра, я это подсказал еще во втором ответе, в 08:08:36.
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему
Наверх