Текущее время: Пн, май 01 2017, 00:39

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Выбор данных из BEx
СообщениеДобавлено: Пт, окт 21 2016, 11:03 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 21 2016, 10:55
Сообщения: 5
Здравствуйте.
Изучаю sap bw.
В данный момент я сделал запрос, вывел его на "Технический лист", на листе "Отчет" нарисовал шапку и под шапку хочу подставить данные с технического листа, а собственно из BEx запроса.
Вариант подстановки запроса под шапкой на листе отчетности не подходит.
Хочу отметить, что bex запрос, и та таблица которая выводится - динамическая. И копировать нужно таблицу выкидывая 2 первые строки, так как там не значения, а шапка.
Вопрос: как выделить динамическую таблицу BEx запроса и скопировать ее на лист отчета в нужное место? Делал с помощью vba статическую таблицу, там все более или менее просто, можно хоть формулами экселя все сделать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выбор данных из BEx
СообщениеДобавлено: Вт, окт 25 2016, 10:31 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 439
http://sapland.ru/articles/stats/2013/1/ispolizovanie-kollektsii-pri-obrabotke-vihodnih-dannih-bex-zaprosov.html


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выбор данных из BEx
СообщениеДобавлено: Вт, окт 25 2016, 12:24 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 21 2016, 10:55
Сообщения: 5
Спасибо за ответ, написал данный код, но сваливается в ошибку то прорабатывает макрос, то нет. Есть варианты, что я сделал не так?
Открываю книгу, нажимаю изменить значения (новый выбор) и сваливается.
С уважением.
Код:
Public Function BEx() As BExApplication
    Set BEx = Application.Run("BExAnalyzer.xla!GetBEx", ThisWorkbook)
End Function
Sub BExOnRefresh(ParamArray varname())

    If varname(0) = "DP_2" Then
   
        'откуда
        DPOffsetC = varname(1).Column
        DPOffsetR = varname(1).Row + 2
       
        DPOffsetLC = varname(1).Column + varname(1).Columns.Count - 1
        DPOffsetLR = varname(1).Row + varname(1).Rows.Count - 2
       
        'куда
        shiftR = 34
        shiftC = 2
       
        Dim mRng As Range
            Set mRng = Sheets("Технический лист").Range(Cells(DPOffsetR, DPOffsetC), Cells(DPOffsetLR, DPOffsetLC))
           
                If Application.CountA(mRng) = 0 Then
                    MsgBox "Empty!!!"
                    Exit Sub
                        Else
                            mRng.Copy
                            Sheets("Ведение данных").Cells(shiftR, shiftC).PasteSpecial xlPasteValues
                 End If
       
    End If
   
End Sub


Изображение
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выбор данных из BEx
СообщениеДобавлено: Сб, дек 03 2016, 18:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 13:10
Сообщения: 686
Откуда: Москва
Пол: Мужской
Если не будет получаться с готовыми решениями, напишите в эту тему, я накидаю кое-что своё, оно по другим принципам сделано, но возможно сгодится.

Избегайте обращений к листу по заголовкам:
Sheets("Технический лист").Range(Cells(DPOffsetR, DPOffsetC), Cells(DPOffsetLR, DPOffsetLC))

Лучше по имени:

Лист4.Range(Cells(DPOffsetR, DPOffsetC), Cells(DPOffsetLR, DPOffsetLC))

А то захочется переименовать лист -- и ищи в коде все вхождения. Или пользователь переименует.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

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


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

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