Anzeige
Archiv - Navigation
1436to1440
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

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

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

Anzeige
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?

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

190 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige