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

Macro fehler

Forumthread: Macro fehler

Macro fehler
29.04.2013 07:39:35
stef26
Hallo liebe Excelgemeinde,
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

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macro fehler
29.04.2013 11:01:37
selli
hallo stef,
ersetze doch mal ii = letztesichtbarezeile durch ii = letztezeile
diese variable wird doch etwas weiter oben auch definiert.
gruß
selli

AW: Macro fehler
29.04.2013 15:47:37
stef26
Danke für deine Hilfe,
Hab den Fehler gefunden. Bezug war immer die letzte sichtbare Zeie, ohne diese Vortzuzählen.
Danke trotzdem !!!!
Stefan
Anzeige
;

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