Folgende Frage und bitte um Hilfe.
Kann ich mit Excel VBA auf SAP-R3 // oder SAP-BO zugreifen
und evtl Die Tabellen runterladen kann in einen mir ausgewählten Ordner.
Wenn ja wie würde der Code aussehn ?!!
Besten Dank für jede Hilfe !
Jana
Sub ReadTable()
Dim FUBAU_rfc_read_table As Object
Dim functionCtrl As Object
Dim T_I_Options As Object
Dim T_I_Fields As Object
Dim T_E_Data As Object
Dim i, x As Integer
Dim strDataRow As String
Dim DataRow As Variant
Dim Col As Boolean
Col = False
Set functionCtrl = CreateObject("SAP.Functions")
Set FUBAU_rfc_read_table = functionCtrl.Add("RFC_READ_TABLE")
With FUBAU_rfc_read_table
.exports("QUERY_TABLE") = InputBox("Bitte Tabellenname eingeben")
.exports("DELIMITER") = "|" 'Delimiter
End With
Set T_I_Options = FUBAU_rfc_read_table.tables("OPTIONS")
Set T_I_Fields = FUBAU_rfc_read_table.tables("FIELDS")
Set T_E_Data = FUBAU_rfc_read_table.tables("DATA")
'Aufruf des FUBAs
ret = FUBAU_rfc_read_table.call
'Übetragen der Daten in Excel-Tabelle (z.B. immer in Tabelle1)
If T_E_Data.RowCount > 0 And ret = True Then
For i = 1 To T_E_Data.RowCount
strDataRow = T_E_Data(i, 1)
DataRow = Split(strDataRow, "|")
'Spaltenüberschriften an Excel übergeben
If Col = False Then
For x = 0 To UBound(DataRow)
Tabelle1.Cells(1, x + 1).Value = T_I_Fields(x + 1, 1)
Next x
Col = True
End If
For x = 0 To UBound(DataRow)
Tabelle1.Cells(i + 1, x + 1).Value = DataRow(x)
Next x
Next i
End If
End Sub
Logindaten für DEIN SAP SYSTEM anpassen
Public Sub Anmelden_an_SAP()
SAP_Anmeldung = False
Set functionCtrl = CreateObject("SAP.Functions")
Set SAP_Connection = functionCtrl.Connection
SAP_Connection.ApplicationServer = "DEINSERVER"
SAP_Connection.SystemNumber = "20"
SAP_Connection.System = "DEINSYSTEM"
SAP_Connection.Client = "002"
SAP_Connection.User = "DeinName" ' SAP_UserID
SAP_Connection.Password = "DeinKennwort" 'SAP_Passwort
If SAP_Connection.Logon(0, True) True Then
'Nur wenn keine Verbindung zu SAP kommt eine Fehlermeldung
SAP_Connection.LastError
SAP_Anmeldung = False
Else
SAP_Anmeldung = True
End If
'MsgBox SAP_Anmeldung
End Sub
grussÖffne Excel und den VBE-Editor: Drücke ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Neues Modul einfügen: Klicke auf "Einfügen" und dann auf "Modul".
Code einfügen: Kopiere den folgenden VBA-Code in das neue Modul:
Sub ReadTable()
Dim FUBAU_rfc_read_table As Object
Dim functionCtrl As Object
Dim T_I_Options As Object
Dim T_I_Fields As Object
Dim T_E_Data As Object
Dim i, x As Integer
Dim strDataRow As String
Dim DataRow As Variant
Dim Col As Boolean
Col = False
Set functionCtrl = CreateObject("SAP.Functions")
Set FUBAU_rfc_read_table = functionCtrl.Add("RFC_READ_TABLE")
With FUBAU_rfc_read_table
.exports("QUERY_TABLE") = InputBox("Bitte Tabellenname eingeben")
.exports("DELIMITER") = "|" 'Delimiter
End With
Set T_I_Options = FUBAU_rfc_read_table.tables("OPTIONS")
Set T_I_Fields = FUBAU_rfc_read_table.tables("FIELDS")
Set T_E_Data = FUBAU_rfc_read_table.tables("DATA")
'Aufruf des FUBAs
ret = FUBAU_rfc_read_table.call
'Übetragen der Daten in Excel-Tabelle (z.B. immer in Tabelle1)
If T_E_Data.RowCount > 0 And ret = True Then
For i = 1 To T_E_Data.RowCount
strDataRow = T_E_Data(i, 1)
DataRow = Split(strDataRow, "|")
'Spaltenüberschriften an Excel übergeben
If Col = False Then
For x = 0 To UBound(DataRow)
Tabelle1.Cells(1, x + 1).Value = T_I_Fields(x + 1, 1)
Next x
Col = True
End If
For x = 0 To UBound(DataRow)
Tabelle1.Cells(i + 1, x + 1).Value = DataRow(x)
Next x
Next i
End If
End Sub
SAP-Login anpassen: Füge den folgenden Code hinzu, um Dich bei Deinem SAP-System anzumelden:
Public Sub Anmelden_an_SAP()
SAP_Anmeldung = False
Set functionCtrl = CreateObject("SAP.Functions")
Set SAP_Connection = functionCtrl.Connection
SAP_Connection.ApplicationServer = "DEINSERVER"
SAP_Connection.SystemNumber = "20"
SAP_Connection.System = "DEINSYSTEM"
SAP_Connection.Client = "002"
SAP_Connection.User = "DeinName" ' SAP_UserID
SAP_Connection.Password = "DeinKennwort" 'SAP_Passwort
If SAP_Connection.Logon(0, True) > 0 Then
SAP_Anmeldung = False
Else
SAP_Anmeldung = True
End If
End Sub
Speichern: Speichere die Datei unter einem Namen mit der Endung .xlsm
.
Code ausführen: Führe die ReadTable()
Prozedur aus, um Daten aus SAP abzurufen.
KEINE RFC-BERECHTIGUNG für FUNKTIONSBAUSTEIN RFCPING: Dieser Fehler tritt auf, wenn Dein SAP-User nicht über die notwendigen Berechtigungen verfügt. Bitte wende Dich an Deinen SAP-Administrator.
Falscher Servername oder Systemnummer: Überprüfe Deine Anmeldedaten. Falsche Angaben führen oft zu Verbindungsproblemen. Stelle sicher, dass die Parameter in der Anmelden_an_SAP()
Prozedur korrekt eingegeben sind.
Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch:
Ein Beispiel für eine typische Excel-SAP-Integration könnte die Abfrage von FUBAS Live Tabellen sein. Du kannst beispielsweise die Tabelle MARA
(Materialstammdaten) abrufen:
InputBox
zu MARA
, um alle Materialstammdaten in Excel zu importieren.Debugging: Nutze Debug.Print
im VBA, um Variablenwerte zu überprüfen und Fehler zu finden.
SAP-Farben ändern: Wenn Du die Darstellung Deiner Excel-Daten optimieren möchtest, kannst Du über VBA die Formatierung ändern:
Tabelle1.Range("A1:Z100").Interior.Color = RGB(255, 255, 0) ' Ändert die Hintergrundfarbe auf Gelb
1. Frage
Kann ich mehrere Tabellen gleichzeitig abfragen?
Antwort: Ja, Du kannst die ReadTable()
Prozedur in einer Schleife aufrufen, um mehrere Tabellen hintereinander abzurufen.
2. Frage
Was ist der Unterschied zwischen SAP R3 und SAP E3?
Antwort: SAP R3 ist die ältere Version des SAP-Systems, während SAP E3 eine modernisierte Variante ist, die verbesserte Funktionen und Benutzeroberflächen bietet.
3. Frage
Wie kann ich Daten aus SAP in eine Pivot-Tabelle umwandeln?
Antwort: Nach dem Abrufen der Daten in Excel kannst Du die Funktion "PivotTable" verwenden, um Deine Daten zu analysieren und zu visualisieren.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen