VB Script ze SAPu do excelu – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

VB Script ze SAPu do excelu – Visual Basic – Fórum – Programujte.comVB Script ze SAPu do excelu – Visual Basic – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Nicolas0
Návštěvník
15. 10. 2013   #1
-
0
-

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í:

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

Poraďte prosím jak to upravit, aby mně to do excelu nakopírovalo korektní hodnotu z transakce CO03, v mém případě "PODLOZKA" :-)

Asi tuším že to dělám úplně blbě, ale potřeboval bych poradit, abych se odpíchnul a mohl dál.

Díky, N.

Nahlásit jako SPAM
IP: 80.188.126.–
Nicolas

Quis ut Deus?
Reklama
Reklama
ScriptMan
~ Anonymní uživatel
3 příspěvky
17. 10. 2013   #2
-
0
-

#1 Nicolas
Ahoj Nicolas,

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

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
PODLOZKA = session.findById("wnd[0]/usr/txtCAUFVD-MATXT").text
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
 

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")

End If

 on error goto 0
    
Set xclSheet = xclwbk.Worksheets(1)


xclsheet.Cells(1,1).Value = PODLOZKA

Set xclsheet = Nothing

Set xclwbk = Nothing
set xclapp = Nothing
 

End Sub

Prajem ti vela uspechov pri testovani.

ScriptMan

Nahlásit jako SPAM
IP: 62.159.133.–
ScriptMan
~ Anonymní uživatel
3 příspěvky
17. 10. 2013   #3
-
0
-

#2 ScriptMan
Dodatok:

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

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
PODLOZKA = session.findById("wnd[0]/usr/txtCAUFVD-MATXT").text
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").Value = PODLOZKA

End Sub

S pozdravom

ScriptMan

Nahlásit jako SPAM
IP: 62.159.133.–
Nicolas0
Návštěvník
17. 10. 2013   #4
-
0
-

Funguje :-)))

moc, moc, moc dík

Dal bys mně na sebe prosím kontakt?

Nahlásit jako SPAM
IP: 80.188.126.–
Nicolas

Quis ut Deus?
ScriptMan
~ Anonymní uživatel
3 příspěvky
17. 10. 2013   #5
-
0
-

#4 Nicolas
Tak to ma tesi, ze to u teba funguje. Mozes ma kontaktovat nasledovne: Skript.idee( zavinac )web.de

S pozdravom

ScriptMan

Nahlásit jako SPAM
IP: 178.25.36.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

Export do excelu — založil ing

Čítanie z excelu — založil audiotrack

Data z excelu — založil kadla

Aplikace v excelu — založil Adam

Čtení z excelu — založil Polerok

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý