habe von einem Arbeitskollegen (der nicht mehr verfügbar ist) ein Makro bekommen,
welches aus SAP Daten ziehen soll.
Das Makro macht dies auch.
Problem:
Sind in SAP 200 Zeilen vorhanden, so werden auch 200 Zeilen in XLS übernommen.
Leider bringt er ab Zeile 65 (was eine Seitenansicht in SAP ist)
immer die selben Werte, die mit den Werten in SAP nicht mehr übereinstimmen.
Ich vermute mal, dass mit dem Code (ii) "letzte sichtbare Zeile" zusammenhängt
Leider kenne ich mich da zu wenig aus...
Wer kennt sich da so gut aus, dass er mich da unterstützen kann ?
Private Sub CommandButton1_Click()
Cells(1, 1).Value = "LFDNR"
Cells(1, 2).Value = "APRIO"
Cells(1, 3).Value = "AUFNR"
Cells(1, 4).Value = "MATNR"
Cells(1, 5).Value = "TAGV"
Cells(1, 6).Value = "GAMNG"
Cells(1, 7).Value = "BUDAT"
Cells(1, 8).Value = "BEARBS"
Cells(1, 9).Value = "GLTRP"
Cells(1, 10).Value = "DISPO"
Cells(1, 11).Value = "VERST"
Cells(1, 12).Value = "VORNR"
Cells(1, 13).Value = "MAKTX"
Cells(1, 14).Value = "ARBPL"
lz = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
Dim SapGuiAuto
Dim Application
Dim Connection
Dim session
Dim WScript
If Not IsObject(Application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set Application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
Set Connection = Application.Children(0)
End If
If Not IsObject(session) Then
Set session = Connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject Application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/chkB_OPTH").Selected = True
session.findById("wnd[0]/usr/chkB_OPTW").Selected = True
session.findById("wnd[0]/usr/ctxtF_ARBPL").Text = "37000571"
session.findById("wnd[0]/usr/ctxtF_ARBPL").SetFocus
session.findById("wnd[0]/tbar[1]/btn[2]").press
letztezeile = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell"). _
RowCount
letztesichtbarezeile = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/ _
shell").visibleRowCount
For i = 0 To letztezeile
If i >= letztesichtbarezeile Then
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell"). _
firstVisibleRow = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow + 1
ii = letztesichtbarezeile
Else
ii = i
End If
ActiveSheet.Cells(lz, 1).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "LFDNR")
ActiveSheet.Cells(lz, 2).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "APRIO")
ActiveSheet.Cells(lz, 3).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "AUFNR")
ActiveSheet.Cells(lz, 4).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "MATNR")
ActiveSheet.Cells(lz, 5).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "TAGV")
ActiveSheet.Cells(lz, 6).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "GAMNG")
ActiveSheet.Cells(lz, 7).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "BUDAT")
ActiveSheet.Cells(lz, 8).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "BEARBS")
ActiveSheet.Cells(lz, 9).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/ _
shellcont[1]/shell").getcellvalue(ii, "GLTRP")
ActiveSheet.Cells(lz, 10).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/ _
shell/shellcont[1]/shell").getcellvalue(ii, "DISPO")
ActiveSheet.Cells(lz, 11).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/ _
shell/shellcont[1]/shell").getcellvalue(ii, "VERST")
ActiveSheet.Cells(lz, 12).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/ _
shell/shellcont[1]/shell").getcellvalue(ii, "VORNR")
ActiveSheet.Cells(lz, 13).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/ _
shell/shellcont[1]/shell").getcellvalue(ii, "MAKTX")
ActiveSheet.Cells(lz, 14).Value = session.findById("wnd[0]/usr/cntlGRID1/shellcont/ _
shell/shellcont[1]/shell").getcellvalue(ii, "ARBPL")
lz = lz + 1
Next i
End Sub