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

SAP mit Excel (VBA) steuern

Forumthread: SAP mit Excel (VBA) steuern

SAP mit Excel (VBA) steuern
13.12.2004 11:51:54
Alex
Hi.
Ich möchte gerne mittels eines VBA Scripts auf SAP/R3 zugreifen um einige Daten zu übertragen. Es sollen aus einer Excel Tabelle Materialnummern, Positionen usw übertragen werden. Davor muss die Auftragsnummer in ein Fenster eingegeben werden.
Ich habe das schon mittels SendKeys probiert, habe allerdings Probleme weil nur etwa jeder zehnte Versuch funktioniert. Warum es nicht klappt weiss ich nicht. Hat jemand eine Idee woran es liegt? Hier mein Script:

Sub SAP_Testbef()
Dim Nummer, Pos
Nummer = InputBox("Gib' bitte die WA Nummer ein.", "Hallo.", "...", 0, 1760)
Pos = Nummer & "-0" & Sheets("Start").Range("prof2").Value / 100
Sheets("Start").Select
Range("c25").Value = Nummer
Range("c26").Value = Pos
Range("c26").Select
Selection.Copy
AppActivate ("Servicemeldung ändern: Einstieg")
SendKeys "~^c", True
Application.WindowState = xlNormal
Sheets("Profitest KV2").Select
Rows("8:14").Select
Selection.Copy
Application.WindowState = xlMinimized
SendKeys "{down 2}", True
SendKeys "^{left 2}", True
SendKeys "~^v", True
SendKeys "^s", True
Application.WindowState = xlNormal
Sheets("Start").Select
End Sub

Ich habe auch schon versucht alle SendKey Anweisungen in eine Zeile zu schreiben, das hat aber auch keine Besserung gebracht.
Kann ich vielleicht auch was mit der "SAPOFFICEINTEGRATIONEXCEL97PROXYLib" anfangen? Im Objektexplorer gibt es dazu leider keine Hilfe.
Ach ja, Excel gut und VBA gut ist übertrieben, aber ich bin schon über das Macro aufzeichnen Stadium hinaus.
Vielen Dank für die Hilfe.
Alex
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SAP mit Excel (VBA) steuern
Dieter
Hi Alex
hier mal ein Link zu SAP
mit diesen Prozessen hast du Zugriff auf R3
Allerdings muesstest Du deine VBA-Kenntnisse etwas aufpolieren.
So wie Du das vorhast (Sendkey) geht nichts.
Du solltes vor allem die "RFC"-Geschichte von SAP zu Gemuete fuehren.
Gruss Dieter
http://help.sap.com/saphelp_46c/helpdata/de/59/ae474b488f11d189490000e829fbbd/frameset.htm
Anzeige
AW: SAP mit Excel (VBA) steuern
Alex
Danke für den Hinweis.
Ich werde mal versuchen daraus Schlau zu werden.
Alex.
AW: SAP mit Excel (VBA) steuern
Alex
Ich hab mir den Link mal angesehen, hab aber leider keinen blassen Schimmer was mir das sagen soll.
Gibts vielleicht noch eine andere Lösung, für Dummies sozusagen?
MfG Alex
AW: SAP mit Excel (VBA) steuern
Dieter
Hi Alex
das soll Dir sagen, dass es so,wie Du dir es vorstellst, nicht geht. Am besten ist, Du setzt dich mal mit deinem SAP-System Admin bzw. Programmierer zusammen, da Du auf alle Faelle ABAP Kenntnisse brauchst.
Ich hab lange gebraucht, um etliche Sachen SAP/Excel zu realisieren.
Eine Dummies-Loesung gibt es nicht.
Hier noch ein Link zum ABAP-Forum:
http://www.abapforum.com/forum/index.php?indexcatego=5&&sid=793675f3c3b708e94eb2362d8e826d92
Gruss Dieter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

SAP mit Excel (VBA) steuern


Schritt-für-Schritt-Anleitung

  1. SAP-RFC aktivieren: Stelle sicher, dass der Remote Function Call (RFC) in deinem SAP-System aktiviert ist. Dies ist essenziell, um mit Excel über VBA auf SAP-Daten zuzugreifen.

  2. VBA-Referenzen setzen: Gehe in den VBA-Editor (ALT + F11), wähle "Extras" > "Verweise" und aktiviere die benötigten SAP-Bibliotheken, wie SAP GUI Scripting API oder SAP Office Integration.

  3. Makro erstellen: Erstelle ein neues Makro in Excel und beginne mit der Definition deiner Variablen. Hier ein einfaches Beispiel:

    Sub SAP_Integration()
       Dim SAPConnection As Object
       Set SAPConnection = CreateObject("SAP.Functions")
       ' Füge hier deinen Code zur Verbindung ein
    End Sub
  4. Datenübertragung: Nutze VBA, um die gewünschten Daten wie Materialnummern und Positionen an SAP zu übergeben. Hierzu kannst du auch die SendKeys-Methode verwenden, jedoch ist dies nicht immer zuverlässig.

  5. Fehlerüberprüfung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro korrekt funktioniert und du über eventuelle Probleme informiert wirst.


Häufige Fehler und Lösungen

  • Fehler bei der Verwendung von SendKeys: Wenn SendKeys nicht zuverlässig funktioniert, liegt das häufig an Timing-Problemen. Versuche, zwischen den SendKeys-Befehlen Application.Wait Now + TimeValue("00:00:01") hinzuzufügen.

  • Verbindungsprobleme zu SAP: Prüfe, ob du die korrekten Einstellungen in den SAP-Optionen hast. Oft können auch Firewall-Einstellungen oder Berechtigungen Probleme verursachen.

  • Unzureichende VBA-Kenntnisse: Wenn du Schwierigkeiten mit VBA hast, nutze das Makro aufzeichnen, um dir Basiskenntnisse anzueignen. Dies kann dir helfen, die Logik hinter den Codes zu verstehen.


Alternative Methoden

  • SAP GUI Scripting: Anstatt SendKeys zu verwenden, kannst du die SAP GUI Scripting API nutzen. Diese bietet eine stabilere Verbindung zu SAP und ermöglicht präzisere Steuerungen.

  • ABAP-Programme: Wenn du Zugriff auf ABAP-Entwickler hast, könntest du auch ein ABAP-Programm erstellen, das die gewünschten Daten bereitstellt. Dies kann dann über VBA in Excel aufgerufen werden.

  • Power Query: Eine weitere Möglichkeit besteht in der Nutzung von Power Query, um Daten direkt aus SAP in Excel zu importieren, ohne VBA zu nutzen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du Daten aus einem SAP-Feld in Excel übertragen kannst:

Sub SAP_Data_Transfer()
    Dim SAP As Object
    Set SAP = CreateObject("SAP.Functions")
    ' Verbindung zu SAP aufbauen
    ' Daten übertragen
    SAP.Communication("Materialnummer", "123456")
End Sub

Mit diesem Ansatz kannst du spezifische SAP-Funktionen aufrufen und Daten manipulieren.


Tipps für Profis

  • Verwende das Makro aufzeichnen: Das Aufzeichnen von Makros in Excel kann dir helfen, grundlegende VBA-Strukturen zu verstehen. Diese Funktion ist besonders nützlich, um die Syntax zu lernen.

  • Lerne ABAP: Wenn du regelmäßig mit SAP arbeitest, kann es vorteilhaft sein, Grundlagen in ABAP zu lernen. Dies wird dir helfen, komplexere Datenübertragungen durchzuführen.

  • Teste in einer Sandbox: Bevor du dein VBA-Skript in einer produktiven Umgebung ausführst, teste es in einer Sandbox-Umgebung, um unerwartete Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich SAP ohne VBA in Excel integrieren?
Ja, du kannst Power Query verwenden, um Daten aus SAP zu importieren, ohne VBA zu nutzen.

2. Was ist der Unterschied zwischen RFC und SAP GUI Scripting?
RFC ermöglicht eine programmatische Kommunikation mit SAP, während SAP GUI Scripting die Interaktion mit der SAP-Oberfläche automatisiert.

3. Wie kann ich sicherstellen, dass mein VBA-Skript funktioniert?
Implementiere umfassende Fehlerbehandlungsroutinen und teste dein Skript in einer sicheren Umgebung.

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