SAP en Excel VBA experts

luitgapj

Gebruiker
Lid geworden
18 jan 2012
Berichten
62
Hallo,

Ik gebruik Excel VBA scripts om gegevens vanuit Excel naar SAP te schrijven, en vise versa.
Nu zijn er een paar dingen m.b.t scripting waar ik niet helemaal uit kom.
Mijn vraag is of er hier mensen zijn met zowel SAP als VBA kennis welke mij zouden willen helpen.

Groet ............. Peter
 
Misschien handig als je ook verteld waar je niet uit komt.
 
Sinds kort zijn wij over gegaan van SAP P23 naar SAP S4 (geen idee of deze codering voor iedereen geldt).
In sap P23 werkte de code in toegevoegd bestand perfect, helaas niet meer in het nieuwe systeem.
Ik heb geen idee hoe onderstaande code weer werkend te krijgen in het nieuwe systeem.

Hij loopt vast op : For Iy = 0 To 10

Zie bijgevoegd bestand voor een klein gedeelte van de totale code waar het fout gaat.
 

Bijlagen

En wat bedoel je met "loopt vast"?
Krijg je dan een foutmelding?
Zoja, welke is dat dan precies?
En welk object wordt daar gebruikt?

Heb je de code al eens in debug mode doorlopen om te zien waar het precies fout gaat?
 
Ik heb de code in debug (F8) doorgelopen, en het gaat fout bij " For Iy = 0 To 10 "

Foutmelding is een popup met de tekst :

Run-time error 619
Application-defined or object-defined error
 
En welk object wordt er gebruikt zoals gevraagd in #4?
 
Code:
For Iy = 0 To 10
staat er 2 keer in?

Code:
[1," & Iy & "]
mag je hier voor Iy, 0 tot 10 invullen? of moet het toch 1 tot 11 zijn?
 
Laatst bewerkt:
Probeer te allen tijde GoTo te vermijden. Zo bijvoorbeeld:
Code:
If Not Blad2.Range("Permit").Cells(Ix).Value = "" Then
    .findById("wnd[0]/mbar/menu[2]/menu[5]").Select
    For Iy = 0 To 10
        If .findById("wnd[1]/usr/tblSAPLIMSPTCTRL_1000/ctxtRM63S-PMSOG[1," & Iy & "]").Text = "" Then
            .findById("wnd[1]/usr/tblSAPLIMSPTCTRL_1000/ctxtRM63S-PMSOG[1," & Iy & "]").Text = Blad2.Range("permit").Cells(Ix).Value
            .findById("wnd[1]").sendVKey 0
            .findById("wnd[1]/usr/tblSAPLIMSPTCTRL_1000/chkRM63S-K_PRO[7," & Iy & "]").Selected = True
            .findById("wnd[1]/tbar[0]/btn[16]").press
            Exit For
        End If
    Next Iy
End If
If Not Blad2.Range("PermitDEL").Cells(Ix).Value = "" Then
    .findById("wnd[0]/mbar/menu[2]/menu[5]").Select
    For Iy = 0 To 10
        .findById("wnd[0]/mbar/menu[3]/menu[1]").Select
        If .findById("wnd[1]/usr/tblSAPLIMSPTCTRL_1000/ctxtRM63S-PMSOG[1," & Iy & "]").Text = Blad2.Range("PermitDel").Cells(Ix).Value Then
            .findById("wnd[1]/usr/tblSAPLIMSPTCTRL_1000/chkRM63S-BUTTON[0," & Iy & "]").Selected = True
            .findById("wnd[1]/tbar[0]/btn[6]").press
            .findById("wnd[1]/tbar[0]/btn[16]").press
            Exit For
        End If
    Next Iy
End If

Maar dat zal je probleem niet oplossen.
Ik acht het zeer waarschijnlijk dat de indexen van de buttons waar je op "klikt" (.findById("wnd[1]/tbar[0]/btn[16]").press) in de nieuwe SAP release gewijzigd zijn of dat de titels van de windows die je selecteert gewijzigd zijn.
 
De foutmelding die je geeft past helemaal niet bij het For statement, ik gok dat het in 1 van de statements in de For-Next loop fout gaat? Welke regel wordt geel als je op foutopsporing drukt? EN het zou helpen als je alle code plaatst want nu missen we belangrijke info.
 
Er wordt geen regel geel, maar als stap voor stap (F8) door de code loop gaat het mis bij :

If .findById("wnd[1]/usr/tblSAPLIMSPTCTRL_1000/ctxtRM63S-PMSOG[1," & Iy & "]").Text = "" Then

Na de eerste For Iy = 0 To 10

Er verschijnt direct de popup met de foutmelding !

Bijgevoegd de Exelsheet met de complete VBA code,
De gehele code staat op Blad2(de data) in de editor.
Te beginnen bij " If Not Blad2.Range("Permit").Cells(Ix).Value = "" Then " is waar het fout gaat !
 

Bijlagen

Ik heb geen SAP, dus je code werkt bij mij sowieso niet, logisch.

Welke foutmelding krijg je precies? Als je in die "popup met de foutmelding" op de knop Foutopsporing (of Debug) klikt, DAN wordt de VBA editor geopend in debug mode, met de foutregel in het geel.

Als je een vraag post over een fout, is het super belangrijk dat je de foutcode en omschrijving plaatst. ALTIJD.
 
Ik heb geen SAP, dus je code werkt bij mij sowieso niet, logisch.

Welke foutmelding krijg je precies? Als je in die "popup met de foutmelding" op de knop Foutopsporing (of Debug) klikt, DAN wordt de VBA editor geopend in debug mode, met de foutregel in het geel.

Als je een vraag post over een fout, is het super belangrijk dat je de foutcode en omschrijving plaatst. ALTIJD.

Alles wat er gebeurd, inclusief foutmelding staat al hierboven vermeld !
 
Ik zie anders nergens wat er in de popup van de foutmelding staat.
Je plaatst alleen de regel waar het fout gaat, dat is geen foutmelding.
 
Ik heb je foutcode gevonden idd. Welke regel wordt er nou geel als je dan op foutopsporen klikt?
 
Ik zie anders nergens wat er in de popup van de foutmelding staat.
Je plaatst alleen de regel waar het fout gaat, dat is geen foutmelding.
Ik weet dat lezen ook een vak is, maar de popup en de foutmelding staan er wel degelijk.
En ook waar de code vast loopt, en ook dat de regel niet geel kleurt waar het fout gaat.
 
Dan zal ik inderdaad slecht gelezen hebben.
 
Als je drukt op de knop foutopsporing op het venster met de foutmelding, dan zou je in de VBA editor moeten eindigen met de foutregel geel gekleurd. Wil je zeggen dat dat niet is wat er gebeurt?
Plaats eens een schermafdrukje van de foutmelding die je krijgt s.v.p.
 
Op grond van de code lijk je gegevens vanuit Excel in Sap te willen importeren.
Dat doe je in SAP eenvoudig met een csv-bestand op basis van een kopie van de selektie van gegevens die geïmporteerd moeten worden.
 
Terug
Bovenaan Onderaan