Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2009, 19:46   #1
hamlook
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 85
По умолчанию Ввод данных через форму

Доброво вам уважаемые.
Нашел на этом сайте как сделать форму для ввода данных. Подстроил ее под себя, с этим проблемм не возникло.
Но захотелось большего )))
Помогите пожалуйста сделать вторую форму под названием "Удалить запись". При ее активации необходимо чтобы строка с заданным №пп копировалась на лист "Архив" с добавлением новой информации. И соответственно на Лист1 эта строка должна удалится из списка.
Вложения
Тип файла: rar Ввод вывод.rar (50.0 Кб, 373 просмотров)
hamlook вне форума Ответить с цитированием
Старый 19.11.2009, 23:30   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я немного изменил вашу форму
Вложения
Тип файла: rar Ввод вывод.rar (57.1 Кб, 517 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.11.2009, 12:51   #3
hamlook
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 85
По умолчанию

Спасибо большое!!! То что нужно!!!
С нумерацией только небольшие проблеммы (на Лист1). При удалении строки и последующим вводом новых данных запись нумеруется исходя из количества строк. Поэтому номера могут повторятся.
Как сделать обновление нумерации после удаления строки?
hamlook вне форума Ответить с цитированием
Старый 20.11.2009, 15:59   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Как сделать обновление нумерации после удаления строки?
Достаточно изменить в макросе пару строк (например, убрать cell = cell.Row - 1), и выполнить нумерацию строк при помощи формул типа этой:
Код:
  Ячейка: A2      Формула  (стиль A1):   =ЕСЛИ(B2<>"";СТРОКА()-1;"")
                  Формула  (стиль R1C1): =ЕСЛИ(RC[1]<>"";СТРОКА()-1;"")
Пример файла:



PS: Не знаю, как Вам, а мне кажется крайне неудобным удаление строк таким способом...
Не проще ли удалять строки без лишних форм?
Выделили ячейку, нажали кнопку "удалить строку", подтвердили удаление, - и всё.
А так мало того, что приходится вводить номер строки, так ещё надо и дату с фамилией...
EducatedFool вне форума Ответить с цитированием
Старый 20.11.2009, 16:57   #5
hamlook
Пользователь
 
Регистрация: 22.05.2009
Сообщений: 85
По умолчанию

Спасибо EducatedFool
С формулами у меня проблемм нет. Я раньше все делал только с помощью формул. Только недавно узнал что макросом можно удивительные вещи творить ))))
По поводу удаления... Это только называется удалением. На самом деле это сохранение информации о произведенных действиях и о том кто это делал. Это важно. Удаляется только из рабочего списка. А рабочий список постоянно обновляется и поэтому, если применить формулы, через определенное время они закончатся и надо будет их дополнительно копировать. А люди которые работают с этим списком не все способны это сделать. Я еще не знаю получится ли меня их научить работать с формой. Хотя стараюсь все сделать намного упрощенней.
Если нет других вариантов, то я в макрос пропишу после добавления строки данных, добавлять в следующую строку (ячейку) формулу.
hamlook вне форума Ответить с цитированием
Старый 27.09.2010, 14:53   #6
getikalex
Пользователь
 
Регистрация: 13.06.2010
Сообщений: 73
По умолчанию

А можно ли формулу для нумерации строк из указанного примера
=ЕСЛИ(B2<>"";СТРОКА()-1;"")
=ЕСЛИ(RC[1]<>"";СТРОКА()-1;"")
вводить из макроса при добавлении новой строки ?
Дело в том, что если кому-то поручить ввод данных, то обяснять что еще нужно вводить вручную функцию в первый столбец... не всякий поймет.

пробовал из макроса так:
cell.Formula = "=ЕСЛИ(B2<>"""",СТРОКА()-1,"""")"
cell.Formula = "=ЕСЛИ(B2<>"""";СТРОКА()-1;"""")"
но ccылку B2 для каждой строки менять не хочет...

Последний раз редактировалось getikalex; 27.09.2010 в 15:05.
getikalex вне форума Ответить с цитированием
Старый 27.09.2010, 15:13   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте так:

Код:
cell.EntireRow.Cells(1) = cell.Row - 1
EducatedFool вне форума Ответить с цитированием
Старый 27.09.2010, 15:34   #8
getikalex
Пользователь
 
Регистрация: 13.06.2010
Сообщений: 73
По умолчанию

Если копировать из предыдущей строки - так то оно, конечно пойдет, если в предыдущей строке формула уже есть.
Но если начинать с начала - то предыдущей вроде как нет.
Т.е. начать, и ввести хотябы одну строку придется самому.
Мне придется отправить для ввода данных не очень смышленого товарища далеко от себя. Может сдуру удалить, или подправить первую ячейку, и тогда замучаюсь по телефону обяснять что вводить.
Хотелось бы защиту от дурака - ввод из макроса.

Еще думал оформить таблицей, чтоб автоподстановка формул была и защитить столбец. Но тогда другая беда - не работает ввод в последнюю строку. Оно будет вводить не в последнюю строку таблицы, а под таблицей...

Последний раз редактировалось getikalex; 27.09.2010 в 15:38.
getikalex вне форума Ответить с цитированием
Старый 01.10.2010, 13:29   #9
getikalex
Пользователь
 
Регистрация: 13.06.2010
Сообщений: 73
По умолчанию

Спасибо за подсказку Igor.Go
Получилось
Вложения
Тип файла: rar Ввод по форме.rar (58.6 Кб, 374 просмотров)

Последний раз редактировалось getikalex; 02.10.2010 в 11:02.
getikalex вне форума Ответить с цитированием
Старый 24.03.2013, 17:11   #10
kunar80
Новичок
Джуниор
 
Регистрация: 24.03.2013
Сообщений: 1
По умолчанию А редактировать как?

Спасибо всем участникам. По вводу данных проблем нет, да и не было. Хотя некоторые полезные для себя моменты в теме нашёл. Но подскажите, как табличные данные через форму редактировать? Как прописать, чтобы NextRow вычислялась как крайняя левая ячейка (т.е. ячейка колонки А) в строке с активной в данный момент ячейкой?
Исходник прилагаю. Заранее СПАСИБО!
Вложения
Тип файла: zip Редактор через форму.zip (13.2 Кб, 160 просмотров)
kunar80 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод переменной в форму Исраил JavaScript, Ajax 2 21.09.2009 01:02
Редактирование css через форму с сервера mcbes PHP 3 22.02.2009 05:41
создание базы данных через форму mistx Microsoft Office Excel 7 16.10.2008 07:55
роблемы с добавлением данных в таблицу через другую форму на дельфи Барби Помощь студентам 1 09.10.2008 12:49
Закачка картинок через форму Romanbl4 PHP 18 04.02.2008 15:30