SAP Jobsuche bei DV-Treff
BenXT
  • BenXT
  • SAP Forum - Neuling Thema Starter
vor 11 Jahre
Hallo Experten,

Mein Thema wurde zwar bereits in dem einen oder anderen Thread gepostet, trotzdem komme ich noch nicht ganz auf meine Lösung.

Ich möchte drei Variablen aus einem SAP-CS-Auftrag in ein bestehendes Excel-Formular übertragen und zwar in drei unterschiedliche Zellen (z.B. A6, B9, C12). Das Formular wird über den SAP-Pushbutton soweit schonmal in Excel richtig aufgerufen. Jetzt geht's nur noch darum, wie ich die drei Variablen in die einzelnen Zellen von Excel bekomme.

Hinweis: Die Zelle, z.B. A6 wurde mit den Zellen A7 + A8 verbunden, damit Meldungsnummer vollständig im Formular abgebildet wird.

Mein Coding sieht bisher wie Folgt aus:

//SAPLCOIH.3000.txt

Pushbutton (toolbar) "@9E\Q@Aufruf_Excel" Process="U:\Datei1.txt"

using meldung = "&F[CAUFVD-QMNUM]"

using auftrag = "&F[CAUFVD-AUFNR.2]"

using arbplatz = "&F[AFVGD-ARBPL]"

//Datei1.txt

parameter meldung

parameter auftrag

parameter arbplatz

start "U:\Workarea\excel.vbs" parameters="&V[meldung] &V[auftrag] &V[arbplatz]"

//excel.vbs

dim e

set e = createobject("Excel.Application")

e.visible = true

e.workbooks.open "U:\Workarea\datei1.xls"

dim meldung

meldung = "meldung"

dim auftrag

auftrag = "auftrag"

dim arbplatz

arbplatz = "arbplatz"

???

Danke euch im Voraus

BenXT

GuiXTbeginner
vor 11 Jahre
Hallo BenXT,

bin noch relativ neu hier, auch was die Entwicklung mit GuiXT angeht.

Vielleicht hilft dir aber folgender Beispielcode weiter:

(Voraussetzung: Komponente "GuiXT Controls" ist aktiv.)

// GuiXT Script

// set some demo values

Set V[region.1] "Americas"

Set V[sales.1] "2584"

Set V[region.2] "Europe"

Set V[sales.2] "1228"

Set V[region.3] "Asia"

Set V[sales.3] "1628"

// call excel

CallVBS start_excel 3

' VB Script

Function start_excel(rows)

    Dim XL 

    Set XL = CreateObject("Excel.Application")

      

    XL.Visible = True

      

    XL.Workbooks.Add

            

    XL.Columns(1).ColumnWidth = 30

    XL.Columns(2).ColumnWidth = 20

        

    For k = 1 to rows

        XL.Cells(k,1).Value = guixt.get("region." & k)

        XL.Cells(k,2).Value = guixt.get("sales."  & k)

    Next

        

End Function

Oder mit "Boardmitteln":

http://synactive.de/docu_d/specials/excel.html 

BenXT
  • BenXT
  • SAP Forum - Neuling Thema Starter
vor 11 Jahre
Hallo,

ich danke dir für deine Antwort. Ich bin froh, dass sich bisher überhaupt jemand gemeldet hat. Deine Lösung werde ich nach meinem Urlaub ausprobieren.

Dein Vorschlag mit "Boardmitteln" ist mir bekannt, er löst aber leider nicht mein Problem. Die SAP-Daten werden nämlich zunächst in einer "Textdatei" gesammelt und dann anschließend fortlaufend in ein neues Excelblatt von oben nach unten eingefügt. Mit einem bestehenden Formular funktioniert diese Vorgehensweise leider nicht.

Gruß

BenXT

ScriptMan
vor 11 Jahre
Hallo BenXT,

für den Anfang sieht es schon ordentlich aus. Du könntest wie folgt weiter vorgehen:

//SAPLCOIH.3000.txt

Pushbutton (toolbar) "@9E\Q@Aufruf_Excel" Process="U:\Datei1.txt"

using meldung = [CAUFVD-QMNUM]

using auftrag = [CAUFVD-AUFNR.2]

using arbplatz = [AFVGD-ARBPL]

//Datei1.txt

parameter meldung

parameter auftrag

parameter arbplatz

start "U:\Workarea\excel.vbs" parameters="&U[meldung] &U[auftrag] &U[arbplatz]"

//excel.vbs

dim e

set e = createobject("Excel.Application")

e.visible = true

e.workbooks.open "U:\Workarea\datei1.xls"

dim meldung

meldung = wscript.arguments(0)

dim auftrag

auftrag = wscript.arguments(1)

dim arbplatz

arbplatz = wscript.arguments(2)

e.ActiveSheet.Cells(6,1).Value = meldung

e.ActiveSheet.Cells(9,2).Value = auftrag

e.ActiveSheet.Cells(12,3).Value = arbplatz

. . .

Freundliche Grüße

ScriptMan

BenXT
  • BenXT
  • SAP Forum - Neuling Thema Starter
vor 11 Jahre
Hallo Scriptman,

vielen Dank für deinen Vorschlag. Er funktioniert einwandfrei... 😄

Gruß

BenXT