title image


Smiley Re: Daten aus SAP in Excel
Hallo Manuele,



vom Prinzip her ist das ohne Probleme möglich.

SAP stellt dafür die Funktion RFC_READ_TABLE zur Verfügung.

Folgender Code stellt dar, wie diese Funktion benutzt wird:Sub LiesSAPTabelle()

    Dim fns As Object, conn As Object

    Set fns = CreateObject("SAP.Functions")

    Set conn = fns.Connection

    With conn

        .messageServer = "..."

        .Client = "..."

        .Destination = "..."

        .Language = "DE"

        .system = "..."

        .systemid = "..."

        .systemnumber = 1

        .user = "..."

        .password = "..."

        .usesaplogonini = False

    End With

    If conn.Logon(0, True) <> True Then

        MsgBox "Cannot logon!."

        Exit Sub

    End If

    Dim objTableFactoryCtrl  As Object

    Set objTableFactoryCtrl = CreateObject("SAP.TableFactory.1")

    Dim objDATA As Object

    Dim objFIELDS As Object

    Set objFIELDS = objTableFactoryCtrl.NewTable

    boolResult = objFIELDS.CreateFromR3Repository(fns.Connection, "RFC_DB_FLD", "FIELDS")

    Dim aSelFelder(2, 0)

    aSelFelder(0, 0) = "feld1"

    aSelFelder(1, 0) = "feld2"

    aSelFelder(2, 0) = "feld3"

    gobjSelFields.Data = aSelFelder

    Dim objOPTIONS As Object, sOptions As String

    Set objOPTIONS = objTableFactoryCtrl.NewTable

    boolResult = objOPTIONS.CreateFromR3Repository(fns.Connection, "RFC_DB_OPT", "OPTIONS")

    sOptions = "SETCLASS = '0101' AND SETNAME LIKE 'KS%'"

    objOPTIONS.Data = sOptions

    Dim Exception As Variant

    Result = fns.RFC_READ_TABLE(Exception, _

    QUERY_TABLE:="SETHEADERT", Data:=objDATA, _

    FIELDS:=objFIELDS, Options:=objOPTIONS)

    If objDATA.rowcount > 0 Then

        For x = 1 To objFIELDS.rowcount

            Cells(1, x) = objFIELDS(x, 1)

            For y = 1 To objDATA.rowcount

                Cells(1 + y, x) = Mid$(objDATA(y, 1), 1 + objFIELDS(x, 2), objFIELDS(x, 3))

            Next y

        Next x

    End If

    fns.Connection.Logoff

    Set conn = Nothing

Set fns = Nothing

End Sub



Gruß

Gerd

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: