1 / 1 / 0
Регистрация: 20.04.2016
Сообщений: 37
|
|
1 | |
Заполнение таблицы, со сбором данных из другой книги28.04.2016, 20:44. Показов 4697. Ответов 21
Метки нет (Все метки)
Учет-Отчет.rar Здравствуйте, помогите пожалуйста нубу!
Есть две книги Отчёт и Учёт, Открываем книгу Учёт, там есть кнопка2. И при её нажатии хотелось бы что бы происходило следующее.... Открывалась книга отчёт, копировалась информация из колонки L (Статус) и вставлялась в таблицу книги Учёт в указанную в отчёте дату (Колонка N) и номер (Колонка E) И есть один нюанс, Если в отчёте № одинаковые два подряд а Рядом со статусом стоит 1 а ниже нуль, то в этом случае эти два числа статуса суммируются и копируется в учёт.
0
|
28.04.2016, 20:44 | |
Ответы с готовыми решениями:
21
VBA заполнение таблицы из другой книги Сравнить столбцы таблицы одной книги со столбцами таблицы другой книги Перенос данных с одного листа одной книги на другой лист другой книги с константой Триггер на заполнение поля в дочерней таблице из другой таблицы при вводе данных в дочернюю |
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 8
|
|
29.04.2016, 10:04 | 2 |
И мне тоже интересно решение, подскажите плиз!)
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
29.04.2016, 12:25 | 3 |
Сообщение было отмечено Andrey312608 как решение
Решение
Такой вариант.
1
|
1 / 1 / 0
Регистрация: 20.04.2016
Сообщений: 37
|
|
29.04.2016, 16:06 [ТС] | 4 |
Да, всё работает, но на обработку уходит более пол часа, так как строк более 700.
Можно ли как то ускорить процесс?)
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
29.04.2016, 17:05 | 5 |
На 700 строках там нечему тормозить. Либо ваш файл (файлы) чем-то существенно отличается от выложенного, либо тогда я где-то ошибся, но где, мне сказать сложно, у меня на файлах, которые были выложены в сообщении №1 (по 57 строк в каждом), работает меньше секунды.
0
|
1 / 1 / 0
Регистрация: 20.04.2016
Сообщений: 37
|
|
01.05.2016, 11:03 [ТС] | 6 |
Спасибо)) Очень помогли) На счёт времени, не знаю тогда в чём дело) Но своё дело ваш код выполняет, а это уже очень хорошо))
0
|
1 / 1 / 0
Регистрация: 20.04.2016
Сообщений: 37
|
|
06.05.2016, 12:52 [ТС] | 7 |
Столкнулся с проблемой, есть такое ощущение что код не находит какую-то информацию и процесс повторяется снова и снова по циклу до бесконечности. Курсор рисует ожидание. Может каким то образом сделать чтобы иформация если не нашлась то закрыть процесс.
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
06.05.2016, 15:55 | 8 |
Прервать макрос Ctrl + Break.
Еще вариант.
1
|
1 / 1 / 0
Регистрация: 20.04.2016
Сообщений: 37
|
|
07.05.2016, 18:06 [ТС] | 9 |
Спасибо вам большое. Все работает. Но при переносе кода в файл на работе, код не работает. Скинул бы сразу оригинал, но к сожалению невозможно. Файлы на рабочем месте идентичные с моими примерами здесь, единственное там в книге "учёт" больше листов. Поэтому я изменил в коде uchet.Sheets(1) поменял на uchet.Sheets("новое имя"). Но при нажатии кнопки ничего не происходит. Долго мучился, разбирался... как об стенку. Прошу помочь подсказать в чём может быть причина. Или может быть подпишите действие строк. Попробую сам разобрать. Спасибо.
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
07.05.2016, 19:55 | 10 |
Ну да, если листов несколько, то при работе с диапазонами нужно точно указывать uchet.Sheets("инкассация").Range(...), либо можно просто написать Range(...), но тогда нужно точно знать какой лист какой книги на этот момент активен.
Вы можете зайти в редактор и, нажимая F8, пошагово выполнить макрос. В окне Locals будет видно как меняются значения переменных. Можно будет попробовать отследить, в чем разница.
0
|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 8
|
|
10.05.2016, 09:15 | 11 |
У меня всё нормально, проблему с листом решил заменой цифры, sheet(1) на (2) и всё. У меня другая проблема, в отчёте есть ещё одна колонка, время, как сделать так что бы если время меньше 6:00 то сумму защитывать за предыдущий день?
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
10.05.2016, 10:59 | 12 |
Простой вариант - добавить столбец с измененной датой, и настроить работу макроса на этот столбец.
Например в A1 дата, в B1 время, в С1 измененная дата. Формула для C1: Код
=ЕСЛИ(B1>=0,25;A1;A1-1)
0
|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 8
|
|
10.05.2016, 13:46 | 13 |
Скину пример отчёта на всякий, может и мне помочь сможете... Ваш код подходит очень хорошо, нужны только небольшие изменения. Как макросом сделать что бы если в книге Отчёт время в колонке P меньше 6:00 то сумму защитывать за предыдущий день.
И ещё момент в колонке дата у меня выгружается дата с временным каким-то значением.... выглядит это так 26.04.2016 12:00:15. И поэтому макрос его не видит.... Можно ли как то сделать так что бы макрос только дату цеплял, а время нет из колонки O.
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
10.05.2016, 15:28 | 14 |
...
0
|
1 / 1 / 0
Регистрация: 20.04.2016
Сообщений: 37
|
|
10.05.2016, 18:26 [ТС] | 15 |
Не получилось, посмотрел по примеру. До 6:00 не все переносятся, только первые пять.
0
|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 8
|
|
10.05.2016, 18:44 | 16 |
Ну да( Может проблема с значением... 0,25. Может его поменять на другое?
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
10.05.2016, 20:02 | 17 |
Всё правильно, первые пять переносятся, остальные - нет. В остальных везде больше 6 часов. Посмотрите внимательнее.
Речь про столбец P из книги "отчет" сообщения №13.
0
|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 8
|
|
10.05.2016, 20:22 | 18 |
разобрался.. почему не читает код. в столбце P(время) время вот такого формата время. 01.01.1900 10:15:00
Добавлено через 2 минуты с 35 строки и 59 сроки меньше 6:00
0
|
1250 / 408 / 52
Регистрация: 14.06.2009
Сообщений: 629
|
|
10.05.2016, 20:34 | 19 |
В 35 строке 1 день 15 минут. Далее везде тоже больше 1-го дня.
Если есть отдельный столбец с датой и отдельный столбец с временем, то почему время записывается таким образом? Т.е. может быть дата 01.04.2016, а рядом время 28 дней 15 минут? Откуда берется столбец с временем?
0
|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 8
|
|
10.05.2016, 20:43 | 20 |
С программы. но там важно только значение времени. можно как нибудь в расчёт брать только часы и минуты. а дни не учитывать? (02.01.1900 6:15:00)
0
|
10.05.2016, 20:43 | |
10.05.2016, 20:43 | |
Помогаю со студенческими работами здесь
20
Автоматическое заполнение таблицы данными из другой таблицы при соблюдении определенного условия Автоматическое заполнение таблицы данными из другой таблицы Заполнение таблицы по данным из другой таблицы Заполнение таблицы данными из другой таблицы UPDATE данных таблицы из другой таблицы другой базы данных Автозаполнение таблицы из листов другой книги Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |