Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aus Excel Transaktion in SAP starten ?

Forumthread: Aus Excel Transaktion in SAP starten ?

Aus Excel Transaktion in SAP starten ?
24.04.2009 08:37:59
maPa
Guten Tag Ihr VBA - Profis !
Vielleicht kann mir jemand von Euch helfen ? .....
besteht die Möglichkeit, per VBA ab einem Excel - Tabellenblatt über einen Button in der Software SAP eine bestimmte Transaktion zu starten ?
Beispiel:
In einem Tabellenblatt in Excel gibts einen Button mit der Aufschrift "Artikel anzeigen"
Wenn ich da draufklicke, soll in SAP (das hab ich bereits im Hintergrund geöffnet) die Transaktion "MM43" gestartet werden. (evt. sogar noch eine bestimmte Selektionsvariante in SAP ausgewählt werden)
Geht das ? irgendwie ?
wenn ja, bin ich für einen Tip mit Beispielscode sehr dankbar !
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Excel Transaktion in SAP starten ?
24.04.2009 09:25:20
Bertram
Hallo,
ich habe das bei mir mit SendKeys gemacht. Ist zwar nicht sonderlich elegant, aber funktioniert. Beispiel siehe unten. SAP muss das nächste aktivierbare Fenster sein (TAB).

Private Sub cmdZIN1Aktualisieren_Click()
With Application
.SendKeys "%{TAB}"
.SendKeys "ZIN1", True
.SendKeys "{RETURN}", True
.Wait (Now + TimeValue("0:00:02"))
.SendKeys "ZKS_INVENTUR1", True
.SendKeys "{F8}", True
.Wait (Now + TimeValue("0:00:01"))
.SendKeys "{TAB}", True
.SendKeys "{TAB}", True
.SendKeys "{TAB}", True
.SendKeys "0008", True
.SendKeys "{F8}"
.Wait (Now + TimeValue("0:01:30"))
.SendKeys "%y"
.SendKeys "{DOWN}"
.SendKeys "{DOWN}"
etc.
End Sub


Gruß
Bertram

Anzeige
AW: Aus Excel Transaktion in SAP starten ?
24.04.2009 10:24:56
maPa
Hi
Danke schon mal für den Code
Aber ... ausser dass sich durch dessen Start bloss mein ganzer Rechner aufhängt geschieht da rein gar nichts :-(
AW: Aus Excel Transaktion in SAP starten ?
24.04.2009 10:31:24
ede
sorry,
aber für Excel-Profi sollte erkennbar sein, das Du den Code für Dich anpassen musst!
Gruss
AW: Aus Excel Transaktion in SAP starten ?
24.04.2009 11:42:37
maPa
es ging gleichwohl nicht !
hatte den Code selbstverständlich angepasst an meine Gegebenheiten
Anzeige
AW: Aus Excel Transaktion in SAP starten ?
24.04.2009 13:16:21
Bertram
Hallo,
dann beschreibe doch bitte, was nicht funktioniert.
Gruß
Bertram
AW: Aus Excel Transaktion in SAP starten ?
24.04.2009 13:27:03
maPa
also....
ich passte den Code wie folgt an:

Private Sub cmdZIN1Aktualisieren_Click()
With Application
.SendKeys "%{TAB}"
.SendKeys "/nMM43", True
.Wait (Now + TimeValue("0:00:01"))
.SendKeys "{RETURN}", True
'.Wait (Now + TimeValue("0:00:02"))
'.SendKeys "ZKS_INVENTUR1", True
'.SendKeys "{F8}", True
'.Wait (Now + TimeValue("0:00:01"))
'.SendKeys "{TAB}", True
'.SendKeys "{TAB}", True
'.SendKeys "{TAB}", True
'.SendKeys "0008", True
'.SendKeys "{F8}"
'.Wait (Now + TimeValue("0:01:30"))
'.SendKeys "%y"
'.SendKeys "{DOWN}"
'.SendKeys "{DOWN}"
End With
'etc.
End Sub


Aber nichts tut sich !
und dies, obwohl ich SAP im nächsten TAB hab

Anzeige
AW: Aus Excel Transaktion in SAP starten ?
24.04.2009 14:03:37
Bertram
Hallo,
heißt das, dass nicht mal zu SAP gewechselt wird (mit TAB)?
Oh, ich vergaß zu sagen, dass der Cursor im SAP-Fenster natürlich schon dort stehen muss, wo die Transaktionsbezeichnung eingegeben wird.
Ich mus nu leider wech, schaue heute Abend nochmal rein.
Gruß
Bertram
;
Anzeige
Anzeige

Infobox / Tutorial

Aus Excel Transaktion in SAP starten


Schritt-für-Schritt-Anleitung

Um eine SAP-Transaktion über Excel zu starten, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu dem Tabellenblatt, auf dem Du den Button erstellen möchtest.
  2. Füge einen Button hinzu:
    • Gehe zu "Entwicklertools" > "Einfügen" > "Button (Formularsteuerung)" und ziehe den Button auf das Blatt.
  3. Bearbeite den Button:
    • Klicke mit der rechten Maustaste auf den Button und wähle "Makro zuweisen".
  4. Erstelle ein neues Makro:
    • Öffne den VBA-Editor, indem Du ALT + F11 drückst.
  5. Füge den folgenden Code ein:
Private Sub cmdArtikelAnzeigen_Click()
    With Application
        .SendKeys "%{TAB}"  ' Wechselt zu SAP
        .SendKeys "/nMM43", True  ' Startet die Transaktion MM43
        .SendKeys "{RETURN}", True
    End With
End Sub
  1. Schließe den VBA-Editor und teste den Button. Stelle sicher, dass SAP im Hintergrund geöffnet ist.

Häufige Fehler und Lösungen

  • Problem: Der Rechner hängt sich auf.

    • Lösung: Stelle sicher, dass SAP das aktive Fenster ist, bevor Du den Button klickst. Du kannst auch die SendKeys-Befehle anpassen, um Verzögerungen einzufügen.
  • Problem: Die Transaktion wird nicht gestartet.

    • Lösung: Überprüfe, ob der Cursor im SAP-Fenster an der richtigen Stelle ist, um die Transaktionsbezeichnung einzugeben.
  • Problem: Der Button funktioniert nicht wie erwartet.

    • Lösung: Passe den Code an Deine spezifischen Anforderungen an. Achte darauf, dass die Namen von Buttons und Variablen korrekt sind.

Alternative Methoden

Falls die SendKeys-Methode nicht die gewünschten Ergebnisse liefert, kannst Du die folgende Methode ausprobieren:

  • SAP GUI Scripting: Diese Methode ermöglicht eine direktere Interaktion mit SAP. Du musst das SAP GUI Scripting aktivieren und kannst dann über VBA direkt auf SAP-Funktionen zugreifen. Ein Beispielcode könnte so aussehen:
Dim SapGuiAuto As Object
Dim SAPApp As Object
Dim SAPCon As Object
Dim session As Object

Set SapGuiAuto = GetObject("SAPGUI")
Set SAPApp = SapGuiAuto.GetScriptingEngine
Set SAPCon = SAPApp.Children(0) ' Verbindung auswählen
Set session = SAPCon.Children(0) ' Session auswählen

session.StartTransaction "MM43" ' Startet die Transaktion

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du SAP-Transaktionen direkt aus Excel aufrufen kannst:

  1. Transaktion mit Variante starten: Wenn Du eine spezielle Selektionsvariante in SAP verwenden möchtest, kannst Du den folgenden Code anpassen:
Private Sub cmdVarianteStarten_Click()
    With Application
        .SendKeys "%{TAB}"
        .SendKeys "/nMM43", True
        .SendKeys "{RETURN}", True
        .Wait (Now + TimeValue("0:00:02"))
        .SendKeys "DEINE_VARIANTE", True
        .SendKeys "{F8}", True
    End With
End Sub
  1. SAP Script aus Excel starten: Wenn Du ein Skript oder eine spezifische Funktion aus Excel aufrufen möchtest, stelle sicher, dass Du die richtigen Befehle in Deinem VBA-Code verwendest.

Tipps für Profis

  • Verwende Fehlerbehandlungsroutinen in deinem VBA-Code, um Probleme besser zu identifizieren.
  • Experimentiere mit Wartezeiten zwischen den SendKeys-Befehlen, um sicherzustellen, dass SAP genug Zeit hat, um auf die Eingaben zu reagieren.
  • Halte Deine SAP- und Excel-Versionen auf dem neuesten Stand, um Kompatibilitätsprobleme zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich SAP-Transaktionen im Hintergrund starten? Ja, aber Du musst sicherstellen, dass das SAP-Fenster im Vordergrund ist, wenn Du die SendKeys-Befehle verwendest.

2. Was ist der Unterschied zwischen SendKeys und SAP GUI Scripting? SendKeys simuliert Tastatureingaben, während SAP GUI Scripting eine direkte API ist, die eine stabilere und zuverlässigere Verbindung zu SAP ermöglicht.

3. Muss SAP immer geöffnet sein, um eine Transaktion von Excel aus zu starten? Ja, SAP muss im Hintergrund geöffnet sein, damit die Befehle funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige