SAP Jobsuche bei DV-Treff
Yusmi
  • Yusmi
  • SAP Forum - Neuling Thema Starter
vor 22 Tage
Hallo zusammen,

hier eine Zeile aus meinem VBA-Code, wo ich in der Tabellendarstellung in SAP Zeilen markiere und dann die Kalkulationsdateien abrufe, weil SAP immer nur 1000 Zeilen abrufen kann. Jetzt will ich in einer For- Schleife mit den Variablen m bis n die nächsten 1000 markieren. Jedoch erkennt VBA im Code m - n als Differenz und markiert immer wieder die ersten 1000 Zeilen.

Kann jemand helfen?

session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = m - n

Die Syntax mit absoluten Zahlen funktioniert, also

session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = "1-1000"

session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = "1001-2000" etc...

Jedoch weiß ich nicht immer vorher, wie viele Zeilen die Tabelle hat, deswegen muss ich mit den Variablen arbeiten.

So sieht der Code in dem Abschnitt komplett aus.

Dim lRow, eZeile, i As Long

lRow = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").RowCount

Debug.Print lRow

eZeile = WorksheetFunction.RoundUp(lRow, -3) / 1000

Debug.Print eZeile

Dim m, n As String

m = 1

n = 1000

'Markieren und Kalkulationsdaten ziehen

For i = 1 To eZeile

session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = m - n

session.findById("wnd[0]/tbar[1]/btn[36]").press

m = m + 1000

n = n + 1000

If n >= lRow Then

n = lRow

End If

Debug.Print i

Debug.Print m

Debug.Print n

Next i