Текущее время: Чт, мар 28 2024, 17:22

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




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

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


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

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


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

Зарегистрирован:
Пт, окт 21 2016, 09:55
Сообщения: 27
Спасибо за ответ, написал данный код, но сваливается в ошибку то прорабатывает макрос, то нет. Есть варианты, что я сделал не так?
Открываю книгу, нажимаю изменить значения (новый выбор) и сваливается.
С уважением.
Code:
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, 17:21 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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

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

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

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

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


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

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


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

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


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

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