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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.01.2009, 08:44   #1
mabru
Пользователь
 
Регистрация: 03.01.2009
Сообщений: 20
По умолчанию как из одного одной книги экспортировать данные на другой лист

Знания в работе с excel на зачаточном уровне, много рыл на форуме, но либо темы подходящей не нашел, либо не понял как сделать.
Есть две книги excel одна выгружается периодически, период от одного дня до недели из бухгалтерской программы, это оборотно-сальдовая ведомость по дебиторам предприятия. Вторую веду я отслеживая платежи по месяцам, мне необходимо чтобы данные из книги с оборотно сальновой ведомостью копировались в мою книгу в столбцы соответствующие месяцу из столбца дебетоские обороты 1 книги в столбец начислено второй книги и соответственно из столбца кредиторски обороты 1 книги в столбец оплачено второй книги. При этом необходимо чтобы я мог корректировать на в какие столбцы переносятся данные в соотвентсвии с месяцами.
Задача усложнена тем что в оборотной ведомость дебиторы могут быть указаны несколько раз в зависимости от наличия у них различных платежей, а мне нужна только общая задолженность дебитора.
в обоих таблицах есть совпадающие данные это счет дебитора нужно при чтобы макрос или формула сверяла сведения из оборотной ведомости книга 1 и при совпадении счетов копировались данные в книгу два из колонки дебиторские обороты (F) в колонку начислено соответствующего месяца из колонки кредиторские обороты (G) в колонку оплачено.
Кроме того было бы совсем отлично если бы при сверке данных таблиц и обнаружении отсутсвия в таблице 2 счета дебитора при появлении нового дебитора макрос мог копировать сведения о новом дебиторе в таблицу дебиторской задолженности в соответствии с номером счета дебитора
Вложения
Тип файла: rar оборотка и отчет по дебиторам.rar (68.8 Кб, 26 просмотров)
mabru вне форума
Старый 04.01.2009, 10:14   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Основную суть задачи, хоть и не без труда, вроде понял...

Но нужны уточнения:

1) Макрос, как я понимаю, будет храниться в книге "1дз". Но, поскольку он будет брать данные из другой книги ("оборотка"), ему (макросу) надо как-то найти эту книгу на компьютере. Для этого надо знать, где находится файл (искать той же папке, что и "1дз", либо в макросе должен быть прописан полный путь к папке), а также знать имя этого файла.

2) Соответственно, надо знать, какие листы в этих файлах обрабатывать
(хорошо, если количество листов в книгах постоянное, или названия листов не меняются)

Можно, конечно, сделать так, что макрос сам будет запрашивать, где взять тот или иной файл.

3)
Цитата:
При этом необходимо чтобы я мог корректировать на в какие столбцы переносятся данные в соотвентсвии с месяцами.
Насколько я понимаю, месяц (и, соответственно, и номер столбца) можно определить, основываясь на данных файла "оборотка" - там в 1 ячейке указана дата.
Если эта дата всегда присутствует в этом файле, то можно на основании неё определять столбец.

4) Если в оборотке к дебитору относятся 3 строки:
Цитата:
600002230 НДОУ*Детский*сад*N*220* 6207300000
600002230 НДОУ*Детский*сад*N*220* 6208400900
600002230 НДОУ*Детский*сад*N*220* **********
то данные нужно брать только из последней. Правильно?
EducatedFool вне форума
Старый 04.01.2009, 11:34   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот что пока получилось (см. вложение).

Для запуска макроса нажимаем на желтую кнопочку в книге "1дз"

Макрос при запуске попросит выделить часть столбца, в ктоорый требуется занести данные.
Выделите, к примеру, ячейку Y5.

Цветовое выделение участвующих в обработке ячеек сделано лишь для наглядности.

Красным цветом помечены не найденные в оборотной ведемости позиции.
Вложения
Тип файла: rar оборотка и отчет по дебиторам.rar (77.4 Кб, 41 просмотров)
EducatedFool вне форума
Старый 04.01.2009, 11:52   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Я последнюю часть задания забыл прочитать
поэтому в макросе реализовано не всё.

В ближайшее время исправлю

И ещё:
Цитата:
Кроме того было бы совсем отлично если бы при сверке данных таблиц и обнаружении отсутсвия в таблице 2 счета дебитора при появлении нового дебитора макрос мог копировать сведения о новом дебиторе в таблицу дебиторской задолженности в соответствии с номером счета дебитора
Не совсем понял, из какой книги в какую надо копировать.
Если из "1дз" в "оборотку", то данных в "1дз" явно недостаточно.
Если из оборотки в 1дз, то чем заполнять предыдущие столбцы?

(добавлено)
Вот теперь понятно.
Посмотри пока такой вариант.
А добавление строк в 1дз сейчас реализую.
Вложения
Тип файла: rar оборотка и отчет по дебиторам.rar (76.7 Кб, 27 просмотров)

Последний раз редактировалось EducatedFool; 04.01.2009 в 13:11.
EducatedFool вне форума
Старый 04.01.2009, 12:14   #5
mabru
Пользователь
 
Регистрация: 03.01.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Основную суть задачи, хоть и не без труда, вроде понял...

Но нужны уточнения:

1) Макрос, как я понимаю, будет храниться в книге "1дз". Но, поскольку он будет брать данные из другой книги ("оборотка"), ему (макросу) надо как-то найти эту книгу на компьютере. Для этого надо знать, где находится файл (искать той же папке, что и "1дз", либо в макросе должен быть прописан полный путь к папке), а также знать имя этого файла.
Файл будет находится в той же папке название файла Оборотка.xls

2) Соответственно, надо знать, какие листы в этих файлах обрабатывать
(хорошо, если количество листов в книгах постоянное, или названия листов не меняются)
в файле оборотка list1 в файле 1дз лист называется дебиторы
Можно, конечно, сделать так, что макрос сам будет запрашивать, где взять тот или иной файл.

3)

Насколько я понимаю, месяц (и, соответственно, и номер столбца) можно определить, основываясь на данных файла "оборотка" - там в 1 ячейке указана дата.
Если эта дата всегда присутствует в этом файле, то можно на основании неё определять столбец.
вы правильно поняли дата всегда присутствует и на основании даты можно определять столбец

4) Если в оборотке к дебитору относятся 3 строки:


то данные нужно брать только из последней. Правильно?
совершенно верно.
Посмотрел таблицу которую вы сделали, почти то что нужно.
Есть вопросы макрос при запуске переносит сведения только из столбца F оборотки, а необходимо чтобы переносил столбцы F и G кроме того в таблице 1дз счета количество счетов контрагентов может быть больше и поэтому если их постоянно выделять красным цветом то в начале месяца поле может быть красным красно, так как долги оплачены и в оборотке не отражаются.
А вот как бы сделать так чтобе если в оборотке появился новый контрагент он автоматически добавлялся в таблицу 1дз т.е. добавлялась бы строка куда бы переносились сведения о новом контрагенте из граф В и С листа книги оборотка в графы Аи В книги 1дз соответственно.
Опять нагородил огород, надеюсь поймете
mabru вне форума
Старый 04.01.2009, 12:23   #6
mabru
Пользователь
 
Регистрация: 03.01.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Не совсем понял, из какой книги в какую надо копировать.
Если из "1дз" в "оборотку", то данных в "1дз" явно недостаточно.
Если из оборотки в 1дз, то чем заполнять предыдущие столбцы?
копировать нужно из оборотки в 1дз при этом предидущие столбцы пустые но в соответствующие дате оборотки месяц вносятся сведения из столбцов E F G оборотки.
Спасибо за быстрые ответы.
Скайп есть попробую подключиться
mabru вне форума
Старый 04.01.2009, 12:54   #7
mabru
Пользователь
 
Регистрация: 03.01.2009
Сообщений: 20
По умолчанию

Пытаюсь применить Ваш макрос к реальной таблице, пишет готово при выполнении однако сведения не вставляются :0
mabru вне форума
Старый 04.01.2009, 13:10   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от mabru Посмотреть сообщение
Пытаюсь применить Ваш макрос к реальной таблице, пишет готово при выполнении однако сведения не вставляются :0
Причин тому может быть множество.
Не увидев Вашего файла, найти причину этого явления весьма сложно.

Вот новый вариант макроса. (с добавлением строк)

ВНИМАНИЕ:
В файле 1дз должна присутствовать пустая строка с формулами в конце списка (как 189-я строка в примере - прописаны в ней только формулы)

На основе этой пустой строки формируются новые. (вставляются перед ней)

Первые ячейки новых строк выделены цветом.


Далее.
В макросе присутствуют две строки:
'Set СтолбецДляВставки = Application.InputBox(prompt:=msg1, Type:=8)
Set СтолбецДляВставки = ThisWorkbook.Worksheets(1).[y7]


Одна из этих строк должна быть закомментирована
Первая запрашивает номер столбца, а вторая назначает рабочим столбец Y (так удобнее при отладке макроса)

При запуске макроса книга ОБОРОТКА должна быть открыта. (и называться файл должен именно так)
Вложения
Тип файла: rar оборотка и отчет по дебиторам.rar (80.2 Кб, 71 просмотров)

Последний раз редактировалось EducatedFool; 04.01.2009 в 15:15.
EducatedFool вне форума
Старый 04.01.2009, 16:17   #9
mabru
Пользователь
 
Регистрация: 03.01.2009
Сообщений: 20
По умолчанию

Далее.
В макросе присутствуют две строки:
'Set СтолбецДляВставки = Application.InputBox(prompt:=msg1, Type:=8)
Set СтолбецДляВставки = ThisWorkbook.Worksheets(1).[y7]

Одна из этих строк должна быть закомментирована
Первая запрашивает номер столбца, а вторая назначает рабочим столбец Y (так удобнее при отладке макроса)
можно пояснить с макросами никогда не работал как будет работать формула для января и так далее? в ней нужно будет что-то менять? Ведь январь будет в другом столбце не Y
mabru вне форума
Старый 04.01.2009, 16:59   #10
mabru
Пользователь
 
Регистрация: 03.01.2009
Сообщений: 20
По умолчанию

Разобрался со своим файлом макрос заработал, большое спасибо.
Вопрос, Будет он теперь работать на другие месяцы?
mabru вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
снятие пароля с книги/листа из другой книги? Bezdar Microsoft Office Excel 3 25.12.2008 11:59
Вставить данные из одного листа (таблицы) в другой kartol Microsoft Office Excel 30 11.08.2008 10:43
Как мне из формы одного проекта запустить другой Diimka Помощь студентам 2 13.12.2007 21:41
Как экспортировать данные Малявка Microsoft Office Excel 5 20.10.2007 11:53