Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос для создания базы данных
 
Добрый день!
Несколько дней пытаюсь написать макрос, но, к сожалению, моих знаний VBA оказалось недостаточно.
Задача очень проста:
На листе "Вводные данные" есть таблица, которую необходимо заполнить менеджеру при опросе клиентов.
После заполнения данных, при нажатии кнопки макрос должен скопировать данные из диапазона В1:В6 на лист "База данных", транспонировав их. При этом, при вводе новых данных на листе "Вводные данные" и запуске макроса он должен записывать данные на лист "База данных" в конец таблицы (это у меня и не получается сделать, макрос просто все время перезаписывает строку).
Помогите, пожалуйста, довести до ума.
Спасибо.
 
Цитата
KACTET написал: должен записывать данные на лист "База данных" в конец таблицы, это у меня и не получается
А где то что "получается"? В файле макросов нет.
Последнюю заполненную строку в столбце (например первом) можно определить так
Код
lRow = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
Согласие есть продукт при полном непротивлении сторон.
 
Цитата
KACTET написал: Помогите, пожалуйста, довести до ума.
Чтобы что-то довести до ума, это что-то нужно видеть)) Наверное, Вы сохранили книгу без поддержки макросов...
 
Здравствуйте. В формате .xlsx макросы не живут. Сохраните файл в 2003 или в формате .xlsm и выложите файл с макросом.
 
Добавил книгу с макросом, который получилось записать.
Алгоритмически я понимаю, что нужно запустить цикл поиска первой пустой строки в таблице и при ее нахождении скопировать данные с первого листа.
Но как это написать на VBA, к сожалению, не знаю.
 
Цитата
KACTET написал: запустить цикл поиска первой пустой строки
зачем-же цикл? Можно найти последнюю заполненную и от нее плясать (пост №2)
Код
Sub СозданиеБД()
    Range("B1:B6").Copy
    With Sheets("База данных")
        .Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    End With
    Application.CutCopyMode = False
End Sub
Изменено: Sanja - 19 Мар 2015 22:31:02
Согласие есть продукт при полном непротивлении сторон.
 
Добавил строку в макрос, теперь он копирует данные с листа "Вводные данные" на лист "База данных" в ту ячейку, которая была выделена последней.
Изменено: KACTET - 19 Мар 2015 23:13:43
 
Цитата
теперь он копирует данные ... в ту ячейку, которая была выделена последней
ну я так и написал, что ищем последнюю ЗАПОЛНЕННУЮ!
К ней +1 не пробовали добавить?
Добавил Ваш мкрос в пост №6
Изменено: Sanja - 19 Мар 2015 22:37:15
Согласие есть продукт при полном непротивлении сторон.
 
Sanja, огромное спасибо, то, что нужно!
Изменено: KACTET - 19 Мар 2015 23:13:22
Страницы: 1
Читают тему (гостей: 1)