Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: SAP Zeitdaten per VBA auslesen

SAP Zeitdaten per VBA auslesen
30.07.2015 18:37:17
Ford
Hallo Zusammen,
ich möchte aus SAP eine Zeitdaten (unter Zeiterfassung) per VBA auslesen, dann in EXCEL übergeben.
Anmledung (unter EXCEL per VBA) läuft gut, aber wie gehe ich weiter?
Vielen Dank im Voraus

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 07:19:23
ede
Hallo,
anbei mal ein Beispiel wie man eine SAP-Tabelle aus dem SAP in Excel einlesen kann.

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

gruss

Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 08:11:03
Ford
Hallo Ede,
vielen Dank für die Antwort.
"ret" ist bei mir leider immer "False".
Wie komme ich zu diese Fenster drauf?
Ich brauche nur die Uhrzeit. (siehe Bild)
Userbild

Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 08:41:15
ede
Hallo,
du musst wissen wie die Tabelle im SAP heißt, dann kannst Du diese mit dem Markro komplett übernehmen!
Gruss

AW: SAP Zeitdaten per VBA auslesen
31.07.2015 08:49:00
Ford
Die Tabelle heißt "Zeitereignisse", aber ich vermute, hier braucht man ein interne Name?!
...und wie kann ich den Tabellenname wissen?

AW: SAP Zeitdaten per VBA auslesen
31.07.2015 08:55:21
ede
so ist es, wenn Du in der Zeiterfassung wie in deinem Bild stehst, drücke mal die Tasten F1 und dann F9, notier dir den Tabellennamen.

Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 09:05:45
Ford
OK, vielen Dank.
Die Tabelle heißt: "P2011".
"ret" bleibt trotzdem "False".
Anbei mein Code:

Sub test()
Dim functionCtrl As Object
Dim sapConnection As Object
Dim FUBAU_rfc_read_table 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 sapConnection = functionCtrl.Connection
sapConnection.Client = "100"
sapConnection.User = "***"
sapConnection.Password = "***"
sapConnection.Language = "DE"
sapConnection.SystemNumber = 1
sapConnection.System = "***"
If sapConnection.Logon(1, True)  True Then
MsgBox "Keine Verbindung zum SAP!"
Exit Sub
End If
Set FUBAU_rfc_read_table = functionCtrl.Add("RFC_READ_TABLE")
With FUBAU_rfc_read_table
.exports("QUERY_TABLE") = "P2011"       '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

Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 09:27:48
ede
ich vermute mal das P2011 eine Struktur ist und keine Tabelle, frag mal deinen SAP-Admin nach dem Tabellennamen!!!

AW: SAP Zeitdaten per VBA auslesen
31.07.2015 09:48:00
Ford
Tabellenart = Struktur, hast Recht!
Ich habe ein richtige Tabelle zum Testen gefunden (heißt: "CHAR5"), aber "ret" bleibt noch immer "False".

AW: SAP Zeitdaten per VBA auslesen
31.07.2015 09:51:00
ede
Hallo noch mal,
CHAR5 - das sieht auch nicht nach einer TAbelle aus, eher Datentyp.
Versuch mal USR01, das müsste der SAP-Benutzerstamm sein!
gruss

Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 09:56:35
ede
versuch mal die Tabelle TEVEN (Zeitereignisse), kann aber sein das die sehr groß ist!!!!!
Frag mal lieber vorher T_E_Data.RowCount ab oder lass dir nur die ersten 200 anzeigen

AW: SAP Zeitdaten per VBA auslesen
31.07.2015 09:56:54
Ford
Hallo,
danke für den Tipp.

Set FUBAU_rfc_read_table = functionCtrl.Add("RFC_READ_TABLE")
With FUBAU_rfc_read_table
.exports("QUERY_TABLE") = "USR01" 'InputBox("Bitte Tabellenname eingeben")
.exports("DELIMITER") = "|"             'Delimiter
End With
ref=False und T_E_Data.RowCount = 0
Was mache ich falsch?

Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 10:00:57
ede
keine Ahnung, bei mir funktioniert es, wahrschein fehlen Rechte im SAP!

AW: SAP Zeitdaten per VBA auslesen
31.07.2015 10:15:26
Ford
mit "TEVEN" sieht es genau so aus!
wenn
sapConnection.Logon = True

ist, dann meine Anmeldung war erfolgreich?
Kann ich irgendwie meine SAP-Rechte abfragen?

Anzeige
AW: SAP Zeitdaten per VBA auslesen
31.07.2015 10:20:23
ede
-wenn das .Logon = true, dann war die Anmeldung erfolgreich
-der SAP-Funktionsbaustein "RFC_READ_TABLE", den wir in VBA aufrufen, prüft ob der User die Rechte zum ausführen hat, vermutlich fehlen Dir diese!!! Du kannst Deinen Admin fragen.
Gruss

AW: SAP Zeitdaten per VBA auslesen
31.07.2015 10:24:38
Ford
Ok, vielen Dank nochmal für Deine Mühe!
Ich wünsche Dir ein schönes WE.
Grüss
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige