cancel
Showing results for 
Search instead for 
Did you mean: 

Bex Analyzer Toolbar in Excel

i807185
Associate
Associate
0 Kudos

Hi,

I have a customer usind Bex Analyzer (Excel) for reporting.

Does anyone know or maybe someone had to do it already if there is a <b>possbility to "grey out" buttons on the Bex Analyzer Toolbar in Excel (e.g. the "tools" button or the "settings" button)?</b>

I would appreciate any information on that very much.

Thanks for your help

Christian

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi

I don't know of a way to do that.

In our sys we use the Auth to block users from changing Query's and Workbooks.

This is the main concern, I dont see a concern in some of the other option available viw Setting and Tools.

Reg's

Edan

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

I suggest you a very simple VBA code, to add to your workbook :

Private Sub WorkBook_Open()

Application.CommandBars("Business Explorer").Active = False

End Sub

This will desactivate the toolbar.

But... in my opinion, it's more secure to hide an object.

Regards,

Dieu

Former Member
0 Kudos

Hi Christian,

As per your requirement, for your Customer , you or your Basis guy need to creat role for your Customer, in that you / Basis guy can assign the authorization for paricular reports/modeling/ query design etc , Your Customer can't change / delete the your reports. by using Trasanction Code PFCG.

Go to T Code PFCG , in that give me your Customer Role name (As per your naming client Conventions)--> create --> in that Tab Authorizations > Maintian Authorizations data and generate profiles double click on Display the authorization Data in that you can select BIW you can choose the activity as display and save and Generate. and next go to next Tab Role --> in that give me your Customer user id and name from date to date and save.

Now after creation of your query assign in to particular role of yourCustomer. so your customer cannot change / delete etc . it will shows as Gray Color, your Customer cannot Change your query design etc.. then this query can save it as workbook and assign in to your customer role. in the same way your customer cannot change / delete etc. Your customer only diplay the workbook.

I hope it may usefull Christian

Thanks

Bhima

Former Member
0 Kudos

Hi Christian,

"Greying out" might be difficult. Invisible is easy. Inactive is also easy.

To make a command bar control inactive:

Sub test1()

Dim c As CommandBar, b As CommandBarControl

Set c = CommandBars("Business Explorer")

Set b = c.Controls(1)

b.OnAction = "test1"

MsgBox "This control is inactive"

End Sub

To make a command bar control invisible:

Sub test2()

Dim c As CommandBar, b As CommandBarControl

Set c = CommandBars("Business Explorer")

Set b = c.Controls(1)

b.Visible = False

End Sub

To change appearance of a control, you change its faceID.

Sub test3()

Dim c As CommandBar, b As CommandBarControl

Set c = CommandBars("Business Explorer")

Set b = c.Controls(1)

b.FaceId = 330

b.OnAction = "test3"

MsgBox "This control is inactive"

End Sub

- Pete

i807185
Associate
Associate
0 Kudos

Hi Pete,

Thanks a lot. I guess that's what I am looking for. I am not a VBA expert, so can you tell me:

What is the menu path I have to use to put in that type of coding you provided me with to make Bex Analyzer command bars "invisible" or "inactive" and it appears like for every workbook I execute.

I only know the menu path in Excel when I execute a BW workbook and want to use VBA coding in that workbook which is: Tools-Macros-Visual Basic Editor.

Former Member
0 Kudos

Hi Christian,

If you want this function to run when a workbook opens, you would put the code in the code window of "ThisWorkbook".

Tools >> Macros >> Visual Basic Editor is a good start.

If the Project Explorer window is not visible, then use View >> Project Explorer (or Ctrl+R) to make it visible.

Locate your workbook in the Project Explorer window. It will be named something like VBAProject(xxxxx) where xxxx = your workbook name. If the workbook was opened from the BW server, the name in parentheses might be something like xSAPtemp1234.xls.

If you see a "+" to the left of the VBAProject name, then click to expand it. You should now see at least two folders under the VBAProject name:

+ Microsoft Excel Objects

+ Modules.

Expand the Excel Objects. Under the Microsoft Excel Objects heading, you will see icons representing each of the worksheets in your workbook, and an icon that is named ThisWorkbook. That is where you would want to put the code if you want it to run every time that the workbook is opened.

Select the ThisWorkbook icon, right-click, select View Code. The code window should open on the right side of your screen.

As an example, to execute the "test3" subroutine when the workbook opens, you would use the code below:

Private Sub Workbook_Open()

Call test3

End Sub

The code for test3 subroutine would be added to either a new (Insert >> Module) or existing Module.

- Pete