Thema Datum  Von Nutzer Rating
Antwort
Rot Daten aus SAP nach Excel
05.10.2022 16:12:38 Andreas
NotSolved
05.10.2022 18:15:36 ralf_b
NotSolved
05.10.2022 20:16:47 Gast91314
NotSolved
05.10.2022 22:09:19 Mase
NotSolved
06.10.2022 08:27:58 Andreas
NotSolved
06.10.2022 10:43:30 Mase
NotSolved
06.10.2022 11:07:40 Andreas
NotSolved
08.10.2022 11:39:57 Mase
NotSolved
06.10.2022 17:58:33 Gast40505
NotSolved
06.10.2022 18:01:34 Gast40505
NotSolved
07.10.2022 15:37:18 Andreas
NotSolved
07.10.2022 16:56:18 Gast40505
NotSolved

Ansicht des Beitrags:
Von:
Andreas
Datum:
05.10.2022 16:12:38
Views:
945
Rating: Antwort:
  Ja
Thema:
Daten aus SAP nach Excel

Hallo,

ich versuche aus SAP Daten nach Excel zu transferieren. Dazu habe ich ein Codebeispiel gefunden. Es funktioniert gut, bis zur Zeile 

iRows = oALV.RowCount() - 1

Es kommt die Meldung: Laufzeitfehler '438': Objekt unterstützt Eigenschaft oder Methode nicht.

Hat irgendjemand eine Ahnung, warum das Objekt oALV die Methode RowCount() nicht im Bauch hat?

Danke Andreas

Hier der Code:

Sub SAP()
    Dim oSapGui As Object
    ' Extras -> Verweise ... -> Durchsuchen ...
    ' C:\Program Files\SAP\FrontEnd\SAPgui\sapfewse.ocx
    ' Aktivieren: SAP GUI Scripting API
    Dim oApp As SAPFEWSELib.GuiApplication
    Dim oConn As SAPFEWSELib.GuiConnection
    Dim oSession As SAPFEWSELib.GuiSession
       
    ' Ref auf SAPGUI
    Set oSapGui = GetObject("SAPGUI")
    If IsObject(oSapGui) Then
        ' Ref auf ScriptingEngine
        Set oApp = oSapGui.GetScriptingEngine
        If IsObject(oApp) Then
            ' Sind Connections vorhanden?
            If oApp.Children.Count > 0 Then
                ' 1. Connection der App
                Set oConn = oApp.Children(0)
                ' 1. Session der Connection
                Set oSession = oConn.Children(0)
                 
                ' Fenster minimieren
                oSession.FindById("wnd[0]").Iconify
                 
                ' SE16 starten
                oSession.StartTransaction ("SE16")
                                
                ' Selektionsbild
                ' Tabelle MARA
                oSession.FindById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").Text = "MARA"
                ' Button "Tabelleninhalt (F7)"
                oSession.FindById("wnd[0]/tbar[1]/btn[7]").Press
                ' max. 10 Einträge
                oSession.FindById("wnd[0]/usr/txtMAX_SEL").Text = "10"
                ' Button "Ausführen (F8)"
                oSession.FindById("wnd[0]/tbar[1]/btn[8]").Press
                 
                ' ALV-Ansicht aktivieren
                ' Menü suchen
                Dim oMenu As GuiComponent
                Set oMenu = oSession.FindById("wnd[0]/mbar")
                 
                ' Menüpunkt "Einstellungen"
                Dim oOptions As GuiComponent
                Set oOptions = oMenu.FindByName("Einstellungen", "GuiMenu")
                 
                ' Menüpunkt "Benutzerparameter ..."
                Dim oUserPar As GuiComponent
                Set oUserPar = oOptions.FindByName("Benutzerparameter...", "GuiMenu")
                oUserPar.Select
                 
                ' Databrowser -> Ausgabeliste -> ALV-Grid-Darstellung
                Dim oALVParam As GuiComponent
                Set oALVParam = oSession.FindById("wnd[1]/usr/tabsG_TABSTRIP/tabp0400/ssubTOOLAREA:SAPLWB_CUSTOMIZING:0400/radRSEUMOD-TBALV_GRID")
                 
                ' wenn ALV-Ansicht noch nicht ausgewählt, dann anhaken
                If oALVParam.Selected = vbFalse Then
                    oALVParam.Select
                End If
                 
                ' Einstellungen übernehmen
                oSession.FindById("wnd[1]/tbar[0]/btn[0]").Press
                 
                Set oUserPar = Nothing
                Set oOptions = Nothing
                Set oMenu = Nothing
                 
                ' ALV-Grid holen
                Dim oALV As GuiComponent
                Set oALV = oSession.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell")
                 
                ' Zeilen
                Dim iRows As Integer
                iRows = oALV.RowCount() - 1
                ' Spalten
                Dim iCols As Integer
                iCols = oALV.ColumnCount() - 1
                 
                ' Spaltentitel lesen
                Dim oColumns
                Set oColumns = oALV.ColumnOrder
                 
                Dim c As Integer
                Dim r As Integer
                 
                ' Überschriften einfügen
                For c = 0 To iCols
                    ActiveWorkbook.ActiveSheet.Cells(1, c + 1) = oColumns(c)
                Next
                 
                ' Daten einfügen
                For r = 0 To iRows
                 
                    ' ALV-Grid weiterscrollen, damit ein Update des Inhalts erfolgt
                    oALV.FirstVisibleRow = r
                     
                    For c = 0 To iCols
                        ActiveWorkbook.ActiveSheet.Cells(r + 2, c + 1) = oALV.GetCellValue(r, CStr(oColumns(c)))
                    Next
                Next
                 
                ' Fenster maximieren
                oSession.FindById("wnd[0]").Maximize
            Else
                MsgBox "Bitte an einem SAP-System anmelden."
            End If
        End If
    End If
     
    Set oSession = Nothing
    Set oConn = Nothing
    Set oApp = Nothing
    Set oSapGui = Nothing
End Sub


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Daten aus SAP nach Excel
05.10.2022 16:12:38 Andreas
NotSolved
05.10.2022 18:15:36 ralf_b
NotSolved
05.10.2022 20:16:47 Gast91314
NotSolved
05.10.2022 22:09:19 Mase
NotSolved
06.10.2022 08:27:58 Andreas
NotSolved
06.10.2022 10:43:30 Mase
NotSolved
06.10.2022 11:07:40 Andreas
NotSolved
08.10.2022 11:39:57 Mase
NotSolved
06.10.2022 17:58:33 Gast40505
NotSolved
06.10.2022 18:01:34 Gast40505
NotSolved
07.10.2022 15:37:18 Andreas
NotSolved
07.10.2022 16:56:18 Gast40505
NotSolved