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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 13:59   #1
Dimas77
 
Регистрация: 06.01.2011
Сообщений: 6
По умолчанию Строка для ввода данных с копированием в конец таблицы

Здравствуйте всем активным участникам форума!
Прошу помочь с простой задачей.
Необходим макрос который из строки (№2) для ввода данных содержащую ячейки с проверкой данных (зависимые списки) копировать в конец таблицы.
После этого строка для ввода данных очищается для ввода следующих данных.
Процесс запускается кнопкой "Создать"
Благодарю за помощь.
проба форма ввода.rar

Последний раз редактировалось Dimas77; 12.01.2011 в 18:40.
Dimas77 вне форума Ответить с цитированием
Старый 12.01.2011, 14:06   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Процесс запускается кнопкой "Создать запись"
У меня нет такой кнопки...

Может, файл прикрепите?
EducatedFool вне форума Ответить с цитированием
Старый 12.01.2011, 14:09   #3
Dimas77
 
Регистрация: 06.01.2011
Сообщений: 6
По умолчанию

у меня тоже нет)
файл прикрепил выше
Dimas77 вне форума Ответить с цитированием
Старый 12.01.2011, 16:49   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

И у меня. Нет. Зато сальдо считается.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 12.01.2011, 18:10   #5
Dimas77
 
Регистрация: 06.01.2011
Сообщений: 6
По умолчанию

В книге есть несколько листов. (вложенный файл с одним листом) Листы однотипны по своей структуре. Каждый лист заполняется пользователями (каждый свой). Доступ пользователям к своим листам организован макросом по паролю.

Некоторые пользователи из за низкой квалификации допускали ошибки при вводе новых данных.

Ввод данных начинается с добавления новой строки в конце таблицы. Потом дата операции. В следующих столбцах с помощью зависимых списков вводятся необходимые данные.

Для снижения риска возникновения ошибки необходимо сделать ввод данных за пределами таблицы. Лучший способ в верхней закрепленной области. По такому же принципу с помощью зависимых списков.

НЕОБХОДИМО:
С помощью макроса строка с новыми данными копируется в конец (до ИТОГОВ) таблицы и очищается для ввода новых данных.

Уважение и скромную благодарность (200 яндекс - сейчас на кошельке) гарантирую

Последний раз редактировалось Dimas77; 12.01.2011 в 19:00.
Dimas77 вне форума Ответить с цитированием
Старый 12.01.2011, 19:05   #6
Dimas77
 
Регистрация: 06.01.2011
Сообщений: 6
По умолчанию

Спасибо уже половину сделал.
Dimas77 вне форума Ответить с цитированием
Старый 12.01.2011, 19:27   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub AddData()
  Dim r As Long
  If WorksheetFunction.CountBlank(Range("A2:I2")) > 4 Then
    If MsgBox("Данных маловато...  Добавить как есть?", vbCritical + vbYesNo, _
    "Выполнение приоставновлено!") = vbNo Then Exit Sub
  End If
  r = WorksheetFunction.Count(Range("A4:A10000")) + 4
  Rows(r).Insert shift:=xlDown
  Range("A2:I2").Copy Destination:=Cells(r, 1)
  Range("A2:I2").ClearContents
End Sub
Вложения
Тип файла: rar Книга526.rar (33.9 Кб, 44 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.01.2011, 16:09   #8
Dimas77
 
Регистрация: 06.01.2011
Сообщений: 6
По умолчанию

Игорь! Благодарность перевел.

Еще один момент в код:

можно ли добавить проверку формата данных
чтобы при вводе ячейку А2 (ДАТА), код проверял что это формат даты.
Исключаю возможные риски...

Спасибо.
Dimas77 вне форума Ответить с цитированием
Старый 13.01.2011, 19:27   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и Вам спасибо, замените на этот
Код:
Sub AddData()
  Dim r As Long, d As Date
  On Error Resume Next
  d = CDate(Cells(2, 1))
  If Err.Number > 0 Or Cells(2, 1) = "" Then
    Err.Clear
    MsgBox "Внесите корректную дату в ячейку А2", _
    vbCritical + vbOKOnly, Cells(2, 1) & " - это не ДАТА!!!"
    Cells(2, 1).Select
    Exit Sub
  End If
  If WorksheetFunction.CountBlank(Range("A2:I2")) > 4 Then
    If MsgBox("Данных маловато...  Добавить как есть?", vbCritical + vbYesNo, _
    "Выполнение приоставновлено!") = vbNo Then Exit Sub
  End If
  r = WorksheetFunction.Count(Range("A4:A10000")) + 4
  Rows(r).Insert shift:=xlDown
  Range("A2:I2").Copy Destination:=Cells(r, 1)
  Range("A2:I2").ClearContents
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу для обработки данных во время ввода. Васильева Зинаида Помощь студентам 9 01.11.2010 21:36
Форма для ввода данных в эксель analyst Microsoft Office Excel 2 30.06.2010 01:30
Форма ввода для таблицы Arinka Помощь студентам 6 14.05.2010 15:06
конец ввода с клавы radion_80 Помощь студентам 5 01.12.2009 16:21
Написать прогу для автоматизации ввода данных vitaleg Свободное общение 17 29.07.2009 12:54