Текущее время: Чт, июл 31 2025, 17:43

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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