Flooo
Flooo

Reputation: 1

VBA - SAP GUI Scripting - Active Row number

I am struggling with the code to read out the active row-number. I searched this forum (and others) and tried several things but I am not getting it running... I am doing a kind of find in my code, but then I will need the row number (actually the value of the 1st column) of the reference number I searched for.

test1 = session.FindById("wnd[0]/usr/tblSAPLV60PTCTRL_KOPIEREN").RowCount
' this returns the total number of records which is perfectly fine

test1 = session.FindById("wnd[0]/usr/tblSAPLV60PTCTRL_KOPIEREN").SetFocus
test1 = session.FindById("wnd[0]/usr/tblSAPLV60PTCTRL_KOPIEREN").CurrentRow
test1 = session.FindById("wnd[0]/usr/tblSAPLV60PTCTRL_KOPIEREN").VerticalScrollbar.Position
test1 = session.FindById("wnd[0]/usr/tblSAPLV60PTCTRL_KOPIEREN").getAbsoluteRow
test1 = session.FindById("wnd[0]/usr/tblSAPLV60PTCTRL_KOPIEREN").CurrentCellRow

getting this error message:

run-time error 438 - Reference SAP GUI scripting is enabled

Please let me know what I am missing or doing wrong.

Thanks in advance for your guidance

Flooo

Upvotes: 0

Views: 2821

Answers (1)

OzzyMiner
OzzyMiner

Reputation: 41

As far as I am aware you cannot directly get the row number of the selected row(s). The basic approach I use is to loop all the rows and then check if they have been selected or not, then action from there, something like:

Dim objTable as Object
Dim objRow As Object
Dim numbRows As Long

Set objTable = session.findById("wnd[0]/usr/tblSAPLCMDITCTRL_3500")

With objTable
    numbRows = objTable.RowCount
    
    For r = 0 To (numbRows - 1)
        Set objRow = .GetAbsoluteRow(r)
        If objRow.Selected Then
            ' your action here ....
        End If
    Next r
End With

Remember; you need to be able to handle scrolling additional pages otherwise you will get an error

Upvotes: 1

Related Questions