Форум программистов  
Главная  |  Правила форума  |  Исходники Delphi  |  Основы Delphi  |  Блог программистов  |  Рассылка  |  Повторная активизация e-mail  | 

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



О проблемах с регистрацией и почтой пишите сюда - post@programmersforum.ru, по необходимости будем регистрировать вручную. И проверяйте папку спам!



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

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

icq: 482648532
skype: d_ober1
По умолчанию

Я немного изменил вашу форму
Вложения
Тип файла: rar Ввод вывод.rar (57.1 Кб, 369 просмотров)
__________________
Анализ,обработка данных Недорого
Прием благодарностей WebMoney WMR- R300799646346 WMU - U225793961398 WME E107914361028
doober вне форума   Ответить с цитированием
Старый 20.11.2009, 12:51   #3
hamlook
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 68
Репутация: 10
По умолчанию

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

icq: 5836318
skype: ExcelVBA.ru
По умолчанию

Цитата:
Как сделать обновление нумерации после удаления строки?
Достаточно изменить в макросе пару строк (например, убрать cell = cell.Row - 1), и выполнить нумерацию строк при помощи формул типа этой:
Код:

  Ячейка: A2      Формула  (стиль A1):   =ЕСЛИ(B2<>"";СТРОКА()-1;"")
                  Формула  (стиль R1C1): =ЕСЛИ(RC[1]<>"";СТРОКА()-1;"")

Пример файла:



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

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

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

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

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

icq: 5836318
skype: ExcelVBA.ru
По умолчанию

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

Код:

cell.EntireRow.Cells(1) = cell.Row - 1

EducatedFool вне форума   Ответить с цитированием
Старый 27.09.2010, 14:34   #8
getikalex
Форумчанин
 
Регистрация: 13.06.2010
Сообщений: 73
Репутация: 10
По умолчанию

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

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

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

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

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

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


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




05:16.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

Forex с Admiral Markets — это надежно


Работа на Forex с 2000 года. Очное и дистанционное обучение. Выгодные условия.
магазин горящих туров


более 1000 горящих предложений ежедневно
Бэбиблог - соц сеть для будущих мам


RusProfile.ru


Справочник российских юридических лиц и организаций.