Страницы: 1
RSS
Редактирование выбранной строки через форму
 
Здравствуйте!

Уважаемые профессионалы, вновь обращаюсь за Вашей помощью.

В приложенном примере на листе "Данные" есть 3 кнопки, но только одна из них рабочая:

При нажатии кнопки "Добавить новую запись" выходит форма, по итогам заполнения которой создается новая строка  с данными. А вот для реализации двух других кнопок у меня не хватает знаний:

Необходимо, чтоб при нажатии кнопки "Редактировать выбранную строку" выходила эта же форма,  но уже с заполненными данными из выбранной  строки, (напротив которой стоит "п") , и, чтобы после редактирования нужных полей и сохранения изменений, изменения переносились бы в таблицу.

И такая же история с кнопкой "Создать из копии":  нужно, чтобы открывалась форма с заполненными полями из выбранной строки, а сохранялась бы уже в виде новой записи (строки).

Пожалуйста, расскажите, как это можно реализовать в данном примере.
 
Цитата
Gleb174 написал:
с заполненными данными из выбранной  строки, (напротив которой стоит "п")
А если я выбрал строку без буквы "п"  нет, строка не выбрана, что ли? Зачем эта буква вообще?
 
Gleb174, если Вы сами сделали первую форму, то знаний у Вас хватит и для реализации оставшихся кнопок.
Прежде всего не нужно делать разные формы для добавления, редактирования и копирования, только замените текст в кнопке "Добавить" на "Сохранить".
Объявите глобальную переменную, например v_f, в код формы добавьте процедуру
Код
Private Sub UserForm_Activate()
которая будет автоматически запускаться при открытии формы и если значение переменной v_f равно нулю, то нужно будет добавить новую запись, следовательно все Ваши тектбоксы очищаются, если же значение 1 или 2, то текстбоксы заполняются значениями из текущей строки листа.
Так же процедура срабатывающая по нажатию кнопки "Сохранить" должна также проанализировать переменную v_f и если она равна единице, то значения текстбоксов заносятся в текущую строку, в противном случае добавляется новая строка.
Ну и в конце навести на кнопки "Добавить", "Редактировать" и "Копировать" процедуры, которые сначала будут присваивать переменной v_f значения 0, 1 и 2 соответственно.
Успехов!

P.S. Не забудьте в случае редактирования и копирования проверять не на пустой ли строке стоит курсор.
P.P.S. Где Вы откопали такую процедуру написания суммы прописью? Даже моя процедура, которую я написал когда только-только начал писать на VBA и то в три раза короче, правда она в баксах-гривнах не пишет, только в рублях.  
Изменено: Ts.Soft - 01.05.2016 19:40:17
Не стреляйте в тапера - он играет как может.
 
Сделал макрос для редактирования записи (см. модуль листа, Sub EditRow()). В файле желтым цветом выделены ячейки, которые изменил в процессе тестирования.
Возможны ошибки - я просто показал принцип
Вместо буквы "п" добавил возможность выбора строки щелчком по ячейке и простановки "галочки" (можете убрать если не понравится)
Внесены коррективы в макрос нажатия кнопки на форме
С добавлением из копии попробуйте сами разобраться
Согласие есть продукт при полном непротивлении сторон
 
А зачем усложнять всякими буквами "п" и прочими отметками? Та строка на которой стоит курсор и должна быть редактируемой/копируемой
Не стреляйте в тапера - он играет как может.
 
А вот и реализация.
Цитата
Ts.Soft написал:
Прежде всего не нужно делать разные формы для добавления, редактирования и копирования, только замените текст в кнопке "Добавить" на "Сохранить".
Сделал ещё и смену текста заголовка ))
От себя добавлю: давайте контролам вменяемые имена: TextBox1 ни о чём не говорит. А вот, например, TextBox_INN - сразу понятно.
И добавьте в процедуру кнопки проверку - нет ли незаполненных полей.
Для примера показал два ТекстБокса. Остальные сделайте сами по аналогии.
Страницы: 1
Читают тему
Наверх