Ahoj, chtěl bych poprosit o radu ohledně maker ve VB, resp. ukládání informací ze SAPu do excelu.
Nejsem žádný ajťák, jen bych si rád usnadnil práci a tohle se mně zdá jako dobrý způsob, jen úplně nevím jak na to.
Kód je následující:
Sub test()
Dim application
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]/tbar[0]/okcd").text = "co03"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtCAUFVD-AUFNR").text = "6511850"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/txtCAUFVD-MATXT").setFocus
session.findById("wnd[0]/usr/txtCAUFVD-MATXT").caretPosition = 40
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
Windows("SGA.xlsm").Activate
Sheets("Sheet1").Select
Range("A1").Activate
ActiveSheet.Paste
End Sub
Ale toto jen způsobí, že se mně do excelu nakopíruje následující:
prepac, ale ja neovladam cestinu. Ale dufam, ze mi budes rozumiet. Hladal som nieco v internete a nahodou som uvidel tvoju otazku. Takze by som ti navrhol, aby vyskusal nasledovny kod:
Sub test()
Dim application
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
on error resume next
Set xclApp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Err.Clear
Set xclApp = CreateObject("Excel.Application")
End If
Set xclwbk = xclApp.Workbooks.Item("SGA.xlsm")
If Err.Number <> 0 Then
Err.Clear
'tu je tvoj udaj, kde sa nachadza tvoja mapa v excelu, ked by bola zatvorena, napr.
myPath = "c:\tmp\ "
Set xclwbk = xclApp.Workbooks.Open(myPath & "SGA.xlsm")
Ked by bol tvoj kod VBA v excelu a nie VBS, ako som si ja myslel, tak musis pouzit tvoj originalny kod len s dvoma malymi zmenami:
Sub test()
Dim application
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If