Страницы: 1
RSS
Импорт данных из листа Excel на другой лист Excel (2)
 
Я очень извиняюсь, что нарушил правила (великоват формат фото).    
   Обещаю внимательно читать правила.    
   Однако в связи с тем, что тема закрыта вынужден открыть эту с соблюдением всех требований.  
 
Суть моей предыдущей темы следующая:  
 
Добрый вечер, господа профи.  
Я очень и очень прошу помощи в следующем:  
В книге "Report_D" есть 3 листа:"Отчет 1","Отчет 2","Отчет 3"  
На листе "Отчет 1" есть кнопка "ИМПОРТ ДАННЫХ"  
В "Отчет 1" с определенным интервалом времени различные операторы вносят информацию.  
Нужно чтобы внеся данные на лист оператор нажал на кнопку "ИМПОРТ ДАННЫХ" и все данные что он внес импортировались на D:\speech\Reports\Report_2012 в лист "Direct"  
Проблема также в том, чтобы при нажатии на кнопку "ИМПОРТ ДАННЫХ" данные экспортировались друг под другом в листе "Direct".  
Большое Вам спасибо.  
 
На что уважаемым , R Dmitry был предоставлен макрос:  
 
Sub AddRecord()  
'===========================================================­===================  
'* Автор R Dmitry (Дмитрий Русак dg_rusak@mail.ru skype: RDG_Dmitry)          |  
'* WM:_R269866874234 U144446690328                                            |  
'===========================================================­===================  
Dim cn As Object, cmd As Object  
Set cn = CreateObject("ADODB.Connection")  
Set cmd = CreateObject("ADODB.Command")  
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _  
     "Data Source=" & ThisWorkbook.FullName & _  
        ";Extended Properties=""Excel 8.0;HDR=no"";"  
        With cmd  
   .ActiveConnection = cn  
   .CommandText = "insert INTO [Direct] in 'D:\Report 2012.xls' [Excel 8.0;] select * FROM [Отчет 1$]"
   .Execute  
 
 End With  
 
cn.Close  
Set cn = Nothing  
Set cmd = Nothing  
End Sub  
 
 
Однако при полной проверке путей, наименований все время выбивает ошибку:  
«Обьект «Direct» не найден ядром базы данных Microsoft Jet.  Проверьте существование обьекта и правильность имени и пути.  
и выбивает ошибку желтым на: .Execute  
 
Большое Вам спасибо за помощь.
 
Перепробовал все возможные варианты. Однако же действительно без Вашей помощи никак. И дальше выбивает ошибку:  
 
«Обьект «Direct» не найден ядром базы данных Microsoft Jet. Проверьте существование обьекта и правильность имени и пути.  
и выбивает ошибку желтым на: .Execute
 
В книге они действительно есть листы Отчет 2 и Отчет 3, но никаких действия с ними не предполагается. Тем не менее Вы эти листы упоминаете - с какой целью?    
Report_2012 - это отдельная книга? Какова структура данных листа Direct? В какие столбцы копировать информацию? Ведь Вы ничего об этом не сказали.
 
Проверяйте.
 
Большое спасибо за ответ и помощь,Юрий М  
Отвечаю: В листах Отчет 2 и Отчет 3 есть данные, из которых подтягивается информация. Однако я уже понял, что для данного макроса они не важны.  
Report_2012 является отдельной книгой. Туда я подтягиваю суммы.  
Цифры в колонке С - операторы,которые выполнили заказ на определенную сумму.  
В основном Вы правильно сделали за что Вам большое спасибо.  
Однако проблема в следующем:  
 Информация, что ввел оператор в колонки (А,В,С) книги Report_D вырезается при нажатии на кнопку "Импорт Данных"  и вставляется в D:\speech\Reports\Report_2012.xls (лист Direct) в таком же порядке, как и ввел оператор. Книга Report_2012 закрывается оператором  
 Следующий оператор снова вносит данные в колонки (А,В,С) книги Report_D и снова давит кнопку "Импорт Данных". Информация располагается под данными, которые были выгружены в D:\speech\Reports\Report_2012.xls (лист Direct) первым оператором.  
  Ваш макрос копирует данные и вставляет в нужное место. Однако когда стереть и писать дальше - макрос не забрасывает ниже, а копирует на место. Очень и очень Вам спасибо.
 
Я исходил из того, что оператор каждый раз вводит данные в НОВУЮ строку. И у меня в книгу копируется ВЕСЬ диапазон с листа "Лист 1". Так что вся существующая информация на листе книги Report_2012.xls будет "затираться" новой. Это равносильно тому, что сверить диапазоны в двух книгах и добавить в конец таблицы новые данные. Но это значительно сложнее. Вопрос: что не так?
 
Правильно ли я понял - нужно именно вырезать данные с исходного листа и поместить их ниже существующих данных в другой книге?
 
........... $ забыл поставить
Спасибо
 
Нет. Все правильно и Вы все верно написали в макросе.  
Оданк Вы верно сказали то, о чем я столько писал:  
Нужно чтобы информация на листе книги Report_2012.xls не "затиралась" новой.  
Спасибо Вам.
 
Другой вариант.
 
Спасибо Вам за помощь. Все работает превосходно!
 
Добрый вечер,R Dmitry.  
Спасибо за помощь. Решил использовать и Ваш макрос.  
К сожалению проблема при запуске макроса аналогичная.  
И дальше выбивает ошибку:  
 
«Обьект «Direct$» не найден ядром базы данных Microsoft Jet. Проверьте существование обьекта и правильность имени и пути.  
и выбивает ошибку желтым на: .Execute  
 
Может стоит поставить еще где-то знак $ Спасибо
 
сбросьте свои файлы мне в почту, я тогда подскажу, что и где не так.  
А то как то не научился я, по мысленному каналу, читать структуру Вашего файла.  
;))
Спасибо
Страницы: 1
Читают тему
Наверх