Hello All
As i have multiple account to be run in SAP fs10n as in my codes its running but if in any account balance is not there the macro is getting stop not moving to other account so can you please help to run the macro if its get error as no balance then it should go to next account as i have used the For loop code for this..
Below are my code for your Reference
As i have multiple account to be run in SAP fs10n as in my codes its running but if in any account balance is not there the macro is getting stop not moving to other account so can you please help to run the macro if its get error as no balance then it should go to next account as i have used the For loop code for this..
Below are my code for your Reference
Code:
Sub SAPLoginMacro() 'DESIGNED TO LOG IN & EXTRACT DATA FROM SAP USING USER LOGIN AND PASSWORD
Dim stSapUName As String, stSapPW As String
Dim SapguiApp As Object, connection As Object, session As Object
Dim lastcouumn As Integer
Dim lastrow As Long
stSapUName = InputBox("Please enter your SAP User name", "SAP User Name")
stSapPW = InputBox("Please enter your SAP Password", "SAP Password")
On Error GoTo errFailed
'****************************************************************************************
'ESTABLISH CONNECTION TO SAP *
'****************************************************************************************
Set SapguiApp = CreateObject("Sapgui.ScriptingCtrl.1")
Set connection = SapguiApp.OpenConnection("LH1", True)
Set session = connection.Children(0)
On Error GoTo 0
With session
'************************************************************************************
'LOGON TO SAP *
'************************************************************************************
.findById("wnd[0]/usr/txtRSYST-BNAME").Text = stSapUName
.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = stSapPW
.findById("wnd[0]").sendVKey 0
'************************************************************************************
'PROCESSES THE POPUP IF MULTIPLE LOGINS DETECTED *
'************************************************************************************
If .Children.Count > 1 Then
.findById("wnd[1]/usr/radMULTI_LOGON_OPT1").Select
.findById("wnd[1]/tbar[0]/btn[0]").press
End If
'************************************************************************************
'NAVIGATES TO THE TCODE *
'************************************************************************************
.findById("wnd[0]").maximize
.findById("wnd[0]/tbar[0]/okcd").Text = "fs10n"
.findById("wnd[0]").sendVKey 0
On Error Resume Next
'************************************************************************************
'SELECTS THE FILE TYPE SPREADSHEET AND SAVES FILE TO HARD DRIVE *
'************************************************************************************
.findById("wnd[0]/usr/cntlCONTAINER/shellcont/shell").pressToolbarContextButton _
"&MB_EXPORT"
For i = 2 To Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
' lastColumn = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Column
' lastRow = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
' For i = 0
' A1 = range(
session.findById("wnd[0]/usr/ctxtSO_SAKNR-LOW").Text = Cells(i, 2).Value
session.findById("wnd[0]/usr/ctxtSO_BUKRS-LOW").Text = Cells(i, 1).Value
session.findById("wnd[0]/usr/txtGP_GJAHR").Text = Cells(i, 5).Value
session.findById("wnd[0]/usr/ctxtSO_GSBER-LOW").SetFocus
session.findById("wnd[0]/usr/ctxtSO_GSBER-LOW").caretPosition = 0
session.findById("wnd[0]").sendVKey 19
session.findById("wnd[0]/usr/ctxtGP_CURTP").Text = Cells(i, 3).Value
session.findById("wnd[0]/usr/ctxtGP_CURTP").SetFocus
session.findById("wnd[0]/usr/ctxtGP_CURTP").caretPosition = 2
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/cntlFDBL_BALANCE_CONTAINER/shellcont/shell").pressToolbarContextButton "&MB_EXPORT"
session.findById("wnd[0]/usr/cntlFDBL_BALANCE_CONTAINER/shellcont/shell").selectContextMenuItem "&PC"
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").Select
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").SetFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\Users\YOUR USERID HERE\12011000"
.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = Cells(i, 6).Value
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 2
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]").sendVKey 3
session.findById("wnd[0]/usr/ctxtGP_CURTP").Text = Cells(i, 4).Value
session.findById("wnd[0]/usr/ctxtGP_CURTP").SetFocus
session.findById("wnd[0]/usr/ctxtGP_CURTP").caretPosition = 2
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/cntlFDBL_BALANCE_CONTAINER/shellcont/shell").pressToolbarContextButton "&MB_EXPORT"
session.findById("wnd[0]/usr/cntlFDBL_BALANCE_CONTAINER/shellcont/shell").selectContextMenuItem "&PC"
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").Select
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").SetFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\Users\YOUR USERID HERE\12011000"
.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = Cells(i, 7).Value
session.findById("wnd[0]").sendVKey 3
Next i
End With
On Error GoTo 0
'****************************************************************************************
'CLEAR ALL SET VARIABLES *
'****************************************************************************************
Set session = Nothing
Set connection = Nothing
Set SapguiApp = Nothing
'********************************************************************************************
'DISPLAY ERROR HANDLING MESSAGE BOX *
'********************************************************************************************
errFailed:
MsgBox "The connection to SAP has been halted by the user."
End Sub
Best Regards
Ahmed Muzamil