Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Nem találkoztam ilyennel, de nekem elsőre nem tűnik olyan bonyolultnak a konverziós képlet. Ha pl. 1970. jan. 1. 00 óra 00 perc a referencia, akkor így csinálnék Excel dátumot (ExD) az eGroupWare dátumból (egD):
A csodás eGroupWare (www.egroupware.org) alkalmazásból ODBC-n keresztül szedek le adatokat (Todo) Excelbe, de a dátumot, időt (úgy látom) 1970-től eltelt másodpercek formájában tárolja.
Szeretném ezt átkonvertálni Excel formátumúra, de elég bonyolultnak tűnik Excel függvénnyel (vagy csak nem jól gondolom).
Ismeretlenül - mert véletlenül találtam ide - beleszólok: A SAP mindezt tudja maga is. Kell hozzá egy jobb programozó kb. fél órára. Kulcsszó: batch-input recorder. Ennek segítségével nagyon egyszerűen generálható egy batch-input program, amit nagyon könnyű átírni, hogy bevegyen egy szövegállományt - pl. tagolt txt-t - amit meg bármivel - akár Excle segítségével is - létrehozhatsz.
Abban meg az előttem szólónak igaza van, hogy ha már van...
FF67-ben elvileg van egy képernyő ahol a beírandó adatok egymás mellett/alatt vannak, gondolom ezt használtad ki. Azért csak zárójelben annyit, hogy a bankok azért már elég régen képesek arra hogy olyan fájlt adjanak át neked amit automatikusan be tudsz tölteni sap-ba és nem kell kézzel bankkivonatot könyvelni. És ha nincs pénz kis fejlesztésekre , akkor minek vett a cég SAP rendszert, az már önmagában k. drága...
No, hát úgy látom, az SAP-hoz nálam jobban értő szakemberre leltél Stromba személyében. (Ami nem nehéz, mert nekem lövésem sincs hozzá...) Ő valami más utat javasol, mint amit én elképzeltem. Megvárnám, hogy mi lesz annak az eredménye, mert amire én gondoltam, az első blikkre úgy néz ki, hogy valószínűleg elvezet a Windows API függvények hívásának világába, amely szintén felderítetlen terület még nekem...
Van egy start.xls egy a.xls és egy b.xls. A start.xls különböző adatok alapján kiszámolja hogy a vagy b .xls-t kell megnyitni. Az a és b xls-ben a megnyitáskor elindul a form1. Ha ez aktiválódik akkor visszalép a start.xls-be menti majd bezárja és visszatér az a vagy b xls-be. Az a baj, hogy viszont visszatéréskor a form1 bezáródik pedig aktívnak kéne maradnia. Próbáltam már azt is hogy ne a form1 aktiválódásakor zárja a start.xls-t hanem az a vagy b xls megnitásakor. Egyszerűen nem megy. Valakinek van valami ötlete? Előre is köszönöm.
Ennek a használatára van reális esélyed, ha nem is neked mert mondjuk nincs hozzá jogosultságod akkor a cégednél az SAP támogató csapatnak (már ha értenek hozzá, ha nem akkor ön rossz sap szakértőt választott)
Ha valamelyik tranzakciót szeretnéd így megtáplálni - pl F-02 GL account posting, akkor azt bizony jobb leprogramoztatni vagy venni kell egy kész alkalmazást.
Átjött, nézem. Addig is, hátha valaki másnak is okozott már problémát:
Ha egy pivot tábla (kimutatásvarázsló) mögötti adattartomány változik, egyes esetekben megmaradnak a tételek (items) nevei holott már nincs is az adatbázisban az adott elem. Ez különösen programozásnál jelenthet gondot, pl. az adatbázisban most csak 20 féle adat van, de korábban 500 volt, akkor továbbra is olyan mintha 500 elem lenne elérhető a pivot táblából.
Ez a te esetedben így törölhető, ha a pivot tábla az aktív munkalapon van, neve Kimutatás1 és a Cikkszám: mező elemeit kell megregulázni:
Sub delOldItems()
Dim pItem As Object
Application.ScreenUpdating = False For Each pItem In ActiveSheet.PivotTables("Kimutatás1").PivotFields("Cikkszám:").PivotItems On Error Resume Next pItem.Delete On Error GoTo 0
Ne túlozz, erre a megszólításra nem szolgáltam rá.
"Ez egy SAP egy tranzakciójának az ablaka. Képzelj el egy ablkalot sok-sok beviteli mezővel, ahová adatokat kell beírogatni. Tehát valahogy meg kell célozni 1-1 XY helyen lévő beviteli mezőt az SAP ablakban."
Hát, ez már komolyabb dolognak tűnik, mint a notepad... Kapásból nem tudom, de utánanézek.
"De baj van. Megáll a SendKeys-nél. De nem a SendKeys-el van baja szerintem, hanem feljebb, de mi? Még nem jöttem rá. (a notepad.exe-t megnyitja)"
A Sendkeys az aktív applikációra küldi a karaktersorozatot. Tippelek: ha pl. van egy olyan programod, ami állandóan elöl van, talán akor nem megy át. Azt megfigyeltem, hogy ha VBA editorból indítom a makrót, akkor nem küldi át a sztinget, hanem beleírja a makróba. Lehet gond az időzítéssel is, pl. ha a notepad túl lassan nyílik meg, és még nem kész a karakterek fogadására, amikor a Sendkeys végrehajtódik.
Mondom, nem tudom még, hogy lesz ez, de valószínűleg először explicite aktiválni kell a SAP megfelelő ablakát, ott fókuszálni a megfelelő beviteli mezőt, és utána küldeni a karaktereket.
"Nem kell ehhez valamit bekapcsolnia a VBA/Tools/References-ben?"
Szerintem nem. Max jelöld be az OLE Automation-t, hátha az segít. Nekem be volt jelölve, bár nem én jelöltem be, és amikor eltávolítottam, a makróm akkor is működött...
József, nagyon köszönöm a felajánlott segítséget. A címedet elraktam, és ha újra beleszaladok valami megoldhatatlannak tűnő problémába, jelentkezem. Most is nagyon szívesen elküldeném a hibás változatot, mert igaz ugyan hogy kijavítottam, bár talán helyesebb, ha azt mondom, hogy megjavult a sokszori csesztetésemtől. És most hibátlan, de nem tudom mitől. Márpedig az nem ártana. Most megpróbáltam újra ugyanazt az utat bejárni, amit a nem müködő verzióknál követtem, de most hiba nélkül müxik. Így csak elmesélni tudom, hogy milyen szimptomák jelentkeztek. Talán neked mond valamit.
1. A célcellában (mondjuk az A1-ben) hülye eredmény van. B1-ből hivatkozol A1-re: Nullát ír ki. Feltehetőleg üres cellát lát.
2. A célcellát körkörös hivatkozás miatt nem tudja kiszámítani. Megnézed, hogy mi a fene lehet, hát az egyik módosuló cellára történő hivatkozást kicserélte önmagára, azaz a célcellára. Visszaállítod 100 szor, de nem unja meg, csak a 101-ikre. (Na jó, lehet hogy közben újra beírtam a képletet) És onnantól jó. Itt talán az adhat neked valami támpontot, hogy a célcellában egy 6 tényezős szorzat volt, a modosuló cella mindegyik tényezőben szerepelt, de az emlitett csere csak az első 5 tényezőben történt meg, az utolsóban soha.
3. Feltételnek megadod, hogy a módosuló cella nem lehet negatív. Nem zavarja, átmegy negatívba. Aztán egyszercsak ez is megjavul.
Hát ezek voltak. Nem lepődnék meg, ha megint előfordulna
Úgy egész pontosan még most se teljesen tiszta, hogy akkor mit is szeretnél csinálni. Küldj egy mailt ha kell több segítség.
"Valószínűleg újbol létre kellene hozni a kimutatást, mert sem a frissítés, sem a mező levétele és újra felrakása nem segít. Újraépíteni pedig nem kis munka, a formázások, oldalbeállítás, és a csatolások miatt. "
Egyszer kell jól leprogramozni és akkor nincs vele több gond, ez miért lenne baj? Pivot táblát is lehet makróval csinálni.
"Probléma még, hogy ha a makró lapoz, nem működik a kimutatásadatotvesz függvény, ami egyébként jó."
Miért, ha nem makróval csinálod hanem kézzel választassz ki másik tételt a kimutatásban neked szokott frissíteni ez a függvény? Nekem sose. Nem is szoktam használni a függvényt.
"És meg kellene oldani a nyomtatást is úgy, hogy ne küldje el egyszerre az ezervalahány oldalt a nyomtatóra, de ne is egyesével kelljen jóváhagyni."
... akkor most hogy is? Amit előzőleg küldtem makrót, nem mész végig az összes tételen hanem csak bizonyos határok között, ezt vagy kézzel beállítod a makróban vagy bekéred minden indításnál egy userform vagy inputbox(ok) segítségével.
Vagy csinálsz egy előzetes vizsgálatot a tételekről, ahol egy külön munkalapra kilistázod a tételek számát/nevét, majd a tételek mellett jelölöd, hogy melyiket akarod kinyomtatni is. Amikor a ciklus fut, vizsgálod hogy teljesül-e ez a feltétel, és ahol igen azt kinyomtatod.
Vagy az egyes tételekről külön fájlt csinálsz, azokat lemented egy helyre. Ilyenkor érdemes a pivot adatokat törölni és csak a kimutatást magát megtartani. A mentett fájlneveket közben gyűjtöd egy listába, és a listában választod ki hogy melyeket akarod kinyomtatni. (Plusz oszlop segítségével). Amit ki akarsz nyomtatni, azt egyenként kinyitod, nyomtatod, bezárod. Ezeket persze mind makróval, kézzel sok értelme nem lenne.
bosszantó, hogy irgalmatlanul labilis. Az még hagyján, hogy a kezdőértékekre érzékeny. De van, hogy megmagyarázhatatlan okokból átírja a célcella képletét. Aztán vagy jelzi, vagy
Első blikkre szerintem, a célcellát is be raktad a módosuló cellák közé, ez sok mindent megmagyaráz(na). Ha nem boldogulsz, küldd át emailben címemre: jozsef kukac torzsasztal pont hu, , megpróbálok ránézni. Kérlek, azt is írd meg, mi lenne az eredeti feladat :) Üdv József
stromba, köszönöm az ötletet, de sajnos ez még nem az. A hét végén sokat agyaltam rajta, mert a probléma nagyon is valós, a megoldás pedig sürgős. Annyit elértem, hogy egy makró végiglapozza az oldalakat, de megakad, ha nemlétező tételhez ér a ciklus. A nemlétező tételek pedig bekerülhettek úgy is, hogy a kimutatást másik adatforráshoz használtam, ahol léteztek, és a kimutatásvarázsló felvette. Most pedig nem tudom törölni. Valószínűleg újbol létre kellene hozni a kimutatást, mert sem a frissítés, sem a mező levétele és újra felrakása nem segít. Újraépíteni pedig nem kis munka, a formázások, oldalbeállítás, és a csatolások miatt. Probléma még, hogy ha a makró lapoz, nem működik a kimutatásadatotvesz függvény, ami egyébként jó. És meg kellene oldani a nyomtatást is úgy, hogy ne küldje el egyszerre az ezervalahány oldalt a nyomtatóra, de ne is egyesével kelljen jóváhagyni. Átnéztem az összes könyvet és a fórumot, de egyelőre nem találtam megoldást. Ha valakinek van ötlete és ideje, kérem segítsen. Üdv.