Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

SAP Zugriff via Excel VBA | Herbers Excel-Forum


Betrifft: SAP Zugriff via Excel VBA von: Space
Geschrieben am: 14.01.2010 14:43:25

Hey,

ich würde gerne auf SAP zugreifen und aus einer bestimmten Tabelle Daten auslesen, die ich dann _
in Excel anzeigen lasse. Hierfür benötige ich allerdings den sogenannten "Funktionsbaustein" von _
SAP. Weiß jemand wie man den bekommen kann? Mir wurde gesagt eine Übersicht bekommt man mit der _
Transaktion SE37 für die ich allerdings keine Berechtigung habe. Kann man den Funktionsbaustein _ nicht einfach im offenen Fenster irgendwo ablesen. Hier ist mal mein Code, vielleicht hat ja jemand von euch auch schon mal mit VBA Excel auf SAP zugegriffen und eine Tabelle anzeigen lassen.



Private Sub CommandButton1_Click()

'Deklaration der Objekte und Variablen
Dim functionCtrl As Object          'Function Control (Sammelobjekt)
Dim sapConnection As Object         'Verbindungsobjekt
Dim theFunc As Object               'Function Objekt

'Erstellen eines Funktionsobjektes
Set functionCtrl = CreateObject("SAP.Functions")


'Kontakt zu SAP aufnehmen
Set sapConnection = functionCtrl.Connection

'Logon mit Initialwerten
sapConnection.Client = "000"
sapConnection.user = "SAPuser"
sapConnection.Language = "DE"

If sapConnection.logon(0, False) <> True Then
    MsgBox "Keine Verbindung zum R/3!"
    Exit Sub            'Programm beenden
End If


'Referenz auf Funktionsobjekt "FUNKTIONSBAUSTEIN"
   Set theFunc = functionCtrl.Add("FUNKTIONSBAUSTEIN")

'Vorbereitung der Ausgabe auf EXCEL-Sheet
Worksheets(1).Select
Cells.Clear

'Deklaration
Dim customers As Object
Dim returnFunc As Boolean
Dim startzeil As Integer
Dim endcol As Integer
Dim the_name As String
startzeil = 1

'Festlegen der Importparameter für Funktionsaufruf
For start_char = Asc("A") To Asc("Z")
    the_name = Chr$(start_char) + "*"
        theFunc.exports("NAME1") = the_name
        theFunc.exports("KUNNR") = "*"
        returnFunc = theFunc.Call
        die_exception = theFunc.Exception

        If returnFunc = True Then
            Set customers = theFunc.tables.Item("CUSTOMER_T")
            endcol = 0
            Call tt(the_name, customers, startzeil, endcol)
            startzeil = endcol
            Set customers = Nothing
        Else
            If die_exception = "NO_RECORD_FOUND" Then
               Cells(startzeil, 1) = "Keine Werte vorhanden für " + the_name
                startzeil = startzeil + 1
            Else
                MsgBox "Fehler beim Zugriff auf Funktion im R/3 ! "
            Exit Sub
            End If
        End If
Next start_char

'Vebindung zum R/3 beenden !
functionCtrl.Connection.logoff

'Objekte und damit Speicherplatz freigeben
Set sapConnection = Nothing
Set functionCtrl = Nothing

MsgBox "Programm beendet!", 16, "Beenden"

End Sub

'Die Ausgabe der Ergebnisse erfolgt über ein seperates Modul mit dem Code:
Sub tt(aName As String, ByRef customers_table As Object, start_zeil As Integer, ByRef end_col As Integer)

'Anzeige des Tabellenkopfes
Cells(start_zeil, 1) = "KundenNr."
Cells(start_zeil, 2) = "Anrede "
Cells(start_zeil, 3) = "Kundenname " + aName
Cells(start_zeil, 4) = "PLZ"
Cells(start_zeil, 5) = "Ort"
Cells(start_zeil, 6) = "Tel.Nr "

'Hervorhebung der Fonts
Range(Cells(start_zeil, 1), Cells(start_zeil, 6)).Font.Bold = True

'Zeigt Inhalte der Kundentabelle an
bManyCustomers = False

If (bManyCustomers = False) Then
i = start_zeil + 2

For Each Customer In customers_table.Rows
Cells(i, 1) = Trim(Customer("KUNNR"))
Cells(i, 2) = Customer("ANRED")
Cells(i, 3) = Customer("NAME1")
Cells(i, 4) = Customer("PSTLZ")
Cells(i, 5) = Customer("ORT01")
Cells(i, 6) = Customer("TELF1")
i = i + 1
Next

End If

end_col = i

End Sub Das Login Fenster geht auf aber es kommt nach Eingabe der Zugangsdaten immer nur der Fehler RFC: error

Kann mir jemand sagen, was man dagegen machen kann. Wäre super, wenn sich jemand mal den Code vornehmen kann und etwas dazu sagen könnte. Ich habe mir den aus div. Tutorials zusammen kopiert und geschrieben.

Vielen, vielen Dank im Voraus!

Gruß
Space

  

Betrifft: AW: SAP Zugriff via Excel VBA von: JoWE
Geschrieben am: 14.01.2010 15:00:29

Hallo Raum,

siehe: http://sapass.metro.client.jp/Sap_Active_X/SapFunction1.htm

Gruß
Jochen


Beiträge aus den Excel-Beispielen zum Thema "SAP Zugriff via Excel VBA"