Текущее время: Пт, авг 01 2025, 14:00

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июн 11 2009, 11:04 
Начинающий
Начинающий

Зарегистрирован:
Ср, май 27 2009, 05:54
Сообщения: 15
Добрый день.

Необходимо выгрузить данные сгруппированные по области планирования в Эксель через OLE обекты
на отдельный лист по каждой выбранной области планирования. Необходим пример.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июн 11 2009, 11:27 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
amivanov написал(а):
Добрый день.

Необходимо выгрузить данные сгруппированные по области планирования в Эксель через OLE обекты
на отдельный лист по каждой выбранной области планирования. Необходим пример.


посмотрите тут Ole2, Excel, WinWord
там были несколько примеров

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июн 11 2009, 12:21 
Начинающий
Начинающий

Зарегистрирован:
Ср, май 27 2009, 05:54
Сообщения: 15
Спасиба посмотрел.
А как записать в ABAP'e следующее выражение экселя.

Sheets("123").Copy After:=Sheets(1)

Написал:
....
CALL METHOD OF application 'WORKSHEETS' = sheet.
call method of sheet 'COPY'.
Создает копию новой книги. А надо создать копию выбранного листа и вставить рядом. Не понятно как записать параметры. Какие тут правила интерпретации?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июн 11 2009, 13:11 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 30 2005, 14:16
Сообщения: 17
Откуда: Москва
Попробуйте так

CALL METHOD OF app 'Sheets' = sheet
EXPORTING
#1 = '123'.
CALL METHOD OF sheet 'Select'.

CALL METHOD OF sheet 'Copy' = copy
EXPORTING
#2 = 'Sheets(1)'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Вт, июн 16 2009, 09:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
amivanov написал(а):
Добрый день.

Необходимо выгрузить данные сгруппированные по области планирования в Эксель через OLE обекты
на отдельный лист по каждой выбранной области планирования. Необходим пример.


Весьма простая задача при использовании моего модуля выгрузки в MS Office. Пример вывода на разные листы ZWWW_MANY_SHEETS.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Пн, июл 27 2009, 06:55 
Начинающий
Начинающий

Зарегистрирован:
Ср, май 27 2009, 05:54
Сообщения: 15
Два варианта действий:
1. Вызвать макрос копирования, написанный в VBA.
2. Сделать так

CALL METHOD OF ls_excel 'Worksheets' = ls_worksheets
EXPORTING #1 = 1.
CALL METHOD OF ls_worksheets 'Activate'

* Create sheets
CALL METHOD OF ls_worksheets 'Copy' = sheetn
EXPORTING #2 = ls_worksheets.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Вт, июл 28 2009, 11:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 19 2008, 21:02
Сообщения: 202
Откуда: Moscow, Russia.
Пол: Мужской
Parazit написал:
Весьма простая задача при использовании моего модуля выгрузки в MS Office. Пример вывода на разные листы ZWWW_MANY_SHEETS.


Я решил не создавать отдельную тему, а спросить здесь же. Вопрос тот же, как выгрузить данные в шаблон, при этом копируя листы. Сделал все как описано в примере ZWWW_MANY_SHEETS, но всё равно не выходит.
Мне не совсем понятно зачем нужна область A_CopyList и Z_Protect? (создать, создал по аналогии, но назначения их еще не ясна.) И еще, на что еще можно обрать внимание? Может мелочь какую упустил.

З.Ы. Сразу оговорюсь, просто вывод данных в Excel работает, не удается только размножать листы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Вт, июл 28 2009, 12:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 19 2008, 21:02
Сообщения: 202
Откуда: Moscow, Russia.
Пол: Мужской
Всё, Я тоже разобрался. У меня оказывается макрос не был прописан для моего шаблона.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июл 30 2009, 09:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
k_aleksei написал:
Всё, Я тоже разобрался. У меня оказывается макрос не был прописан для моего шаблона.

Пардон, был в отпуске! Рад, что всё получилось! :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июл 30 2009, 09:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
k_aleksei написал:
Parazit написал:
Весьма простая задача при использовании моего модуля выгрузки в MS Office. Пример вывода на разные листы ZWWW_MANY_SHEETS.

Мне не совсем понятно зачем нужна область A_CopyList и Z_Protect?


Для области A_CopyList применяется макрос копирования листов CopySheets. Т.к. области обрабатываются моим ФМ в алфавитном порядке, то приставка A_ гарантирует, что копирование листов выполняется до их заполнения.
Для области Z_Protect применяется макрос ProtectSheet для защиты листов от изменения. Он соотвественно вызывается после заполнения данных, ибо Z_. Сделал его специально, чтобы защитить от измененй только ячейки, а разворачивание уровней разрешить.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июл 30 2009, 09:48 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 19 2008, 21:02
Сообщения: 202
Откуда: Moscow, Russia.
Пол: Мужской
[quote="Parazit
Для области A_CopyList применяется макрос копирования листов CopySheets. Т.к. области обрабатываются моим ФМ в алфавитном порядке, то приставка A_ гарантирует, что копирование листов выполняется до их заполнения.
Для области Z_Protect применяется макрос ProtectSheet для защиты листов от изменения. Он соотвественно вызывается после заполнения данных, ибо Z_. Сделал его специально, чтобы защитить от измененй только ячейки, а разворачивание уровней разрешить.[/quote]

Не, это всё понятно. Я сейчас бьюсь над тем как имя листам подставлять динамически. Напомню, сейчас там стоит 'List_' & I. И в зависимости от счетчика столько листов он и создаст.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июл 30 2009, 12:42 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 19 2008, 21:02
Сообщения: 202
Откуда: Moscow, Russia.
Пол: Мужской
А кто нибудь знает VBA? Пытаю переименновать листы, написал макрос. Идея такая:
цикл от 1 до N " где N число листов
поочередно определяю номер активного листа
обращаюсь к ячейке на этом листе (в ячейке бедет лежать "Имя")
присваиваю это "Имя" для активного листа
и делаю активным
конецЦикла.

For I = 1 To N
Set sours = ThisWorkbook.Worksheets("List_" & I)
ActiveSheet.Name = sours.Cells(1, 3).Value
Worksheets("List_" & I).Activate
Next I

Ну чё то он спотыкается, и ничего не отрабатывает. Как можно подправить? Или может это вообще бредовая идея?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июл 30 2009, 13:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
k_aleksei написал:
А кто нибудь знает VBA? Пытаю переименновать листы, написал макрос. Идея такая:
цикл от 1 до N " где N число листов
поочередно определяю номер активного листа
обращаюсь к ячейке на этом листе (в ячейке бедет лежать "Имя")
присваиваю это "Имя" для активного листа
и делаю активным
конецЦикла.

For I = 1 To N
Set sours = ThisWorkbook.Worksheets("List_" & I)
ActiveSheet.Name = sours.Cells(1, 3).Value
Worksheets("List_" & I).Activate
Next I

Ну чё то он спотыкается, и ничего не отрабатывает. Как можно подправить? Или может это вообще бредовая идея?

Почему бы не так:
Code:
Sub CopySheets(R As Range)
  Dim N As Long, I As Long
 
  N = R.Value
  R.Value = ""
 
  For I = 2 To N
    Worksheets("Лист_1").Copy after:=ActiveSheet
    ActiveSheet.Name = "Лист_" & I
  Next I
End Sub


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июл 30 2009, 13:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 19 2008, 21:02
Сообщения: 202
Откуда: Moscow, Russia.
Пол: Мужской
ROKO написал:
Почему бы не так:
Code:
Sub CopySheets(R As Range)
  Dim N As Long, I As Long
 
  N = R.Value
  R.Value = ""
 
  For I = 2 To N
    Worksheets("Лист_1").Copy after:=ActiveSheet
    ActiveSheet.Name = "Лист_" & I
  Next I
End Sub


И чё? Это макрос копирует листы.. У меня это есть и работатет! Я теперь пытаюсь эти листы переименовать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в EXCEL на нескольких листах
СообщениеДобавлено: Чт, июл 30 2009, 13:32 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Code:
  For I = 2 To N
    Worksheets("Лист_1").Copy after:=ActiveSheet
    ActiveSheet.Name = "Лист_" & I
  Next I

Это и есть переименование, оно же все в цикле, будут разные названия.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB