Sziasztok. Én nem vagyok programozó, talán még műkedvelő sem, néha kitalálok jobb-rosszabb dolgokat, és ezek vagy megcsinálom vagy sem, így vagy úgy. Most éppen csináltam egy egyszerű kis appot androidra, amit szeretnék elérhetővé tenni a Google Play Áruházban. Ott van egy olyan követelmény, hogy belső tesztelést kell csinálnom, ami azt jelenti, hogy 12 embernek kell tesztelnie az applikációmat legalább 14 napon keresztül, vagyis leölti, és 14 napig nem törli a gmail címét, azaz magát a tesztelőim listájából, ha jól értelmezem. Már mindenkit megkerestem ezzel, hogy segítsenek, ami három kattintást jelentene, de általában ignorálnak. Megjegyzem mostantól én is így fogok eljárni velük szemben... Az idegenebbeknek meg hiába magyarázom, hogy kattintsanak egy linkre, nem értenek hozzá, és igazából valahol jogosan azt válaszolják, hogy nem. Így most még csak 7 embert (tesztelőt) gyűjtöttem, így kellene legalább még 5, olyan, aki hajlandó megadni a gmail címét, és a Google Play Console hivatalos oldaláról letölteni a kis appomat az android telefonjára tesztelni, vagy csak segíteni szándékkal. Ha van köztetek olyan, aki segítene, akkor a tibsim14@gmail.com -ra kérem, hogy írjon. Ellenszolgáltatásként én is tesztelője lehetek ha hasonló helyzetbe kerül, vagy nem tudom. Esetleg, ha csinos hölgyről van szó, mivel pénzem nincs, természetben is kifizethetem. Na jó, egy ilyen szitunak kicsi az esélye... Mindenesetre azt is köszi, ha elolvastátok!
Derék dolog, de nem tökéletesen tartozik a Visual Basic témájába, bátran nyissál neki egy külön topikot. (Vagy ha valamilyen technikai korlát miatt ez nem megy, nyitok én, csak írd ide, hogy pontosan milyen címmel legyen.)
Én kifejlesztettem egy zorall script nyelvet, amiben csak öt kulcsszó létezik és három operátor, amiből is egy az értékadás (A= 4) operátora. Ez a nyelv a bitsy, amely turing teljes, ezo language és a tetejébe: ismeri a goto-t, ami történetesen a JMP.
A többi kulcsszó az IF, PRN, RET és az INP.
A két másik operátor egyike a:+ a másik meg a! A + az addíció és logikai kifejezésekben a "nagyobb mint" megfelelője. A ! a negáció operátora és logikai kifejezésekben azt jelenti, hogy: "nem egyenlő".
; computing 6 * 3 + (5 - 1) / 2 with '!' and '+' operators. ; ----------------------------- TRC
Q = 6 B = 3 C = 0 I = 0
.MUL_LOOP IF I < B JMP .MUL_ADD JMP .START
.MUL_ADD C = C + Q I = I + 1 JMP .MUL_LOOP
.START D = 5 E = 1 E ! E = E + 1 D = D + E
G = 2 J = 2 H = 0 G ! G = G + 1
.DIV_LOOP IF D < J JMP .END D = D + G H = H + 1 JMP .DIV_LOOP
Nekem ennek egy olyan programban kell működnie, ahol egy munkalap oszlopaiból egymást követően kell adatokat beolvasni, ezeket dolgozza fel a számítás, majd a kapott eredményeket egy másik munkalapra kell egymás mellé kiírni.
Azaz a programban az oszlop számát kell dinamikusan változtatni. A parancssort a program jól működő részéből másoltam ki, ami parancssor egy makró rögzítésből származott. Ha a sorokat változtatom dinamikusan, azzal nincsen problémám, de az oszlopok változtatásának szintaxisát nem tudom, és az eddigi kísérletezéseimmel még nem is találtam meg.
Éjjel őrült módon teszteltük, és úgy néz ki elcsíptük...
Jelentősen visszabontva kezdtük el az alapmegnyitást használni. Arra jutottunk, hogy a 10 lapból ha 4 megvolt, akkor a hiba jelentkezett. Ha azokat kitöröltem, nem jelentkezett a hiba.
Most építgetem vissza, és meglátom, hogy megtartja-e a működést.
Az adatok magában a munkafüzetben vannak 8 munkalapon. A form részben oda viszi be (részben a felhasználó által megadottakat, részben egyéb logika alapján), majd bizonyos feltételek alapján onnan olvas vissza adatokat, majd meghatározott helyen mappát hoz létre, abban egy másik Excel fájlt tatalommal feltölt, végül a körlevél gondolat alapján "jelentést" készít.
Ez egy ismert bug (feature) Windowson. A hibaüzenet fura, de végső soron azt jelenti, hogy egy filet olyan applikációval próbálsz megnyitni, ami valamiért ezt nem tudja megtenni.
Néha win update után jelentkezik ez, mert valamiért átállítódnak a default applikáció megnyitások.
Az Excel az egyik olyan alkalmazás, ahol ezt a hibát sokan jelezték.
Próbálok segíteni, ha tudok.
Előszór is egy kérdés: az adatok, amiket használsz honnan jönnek? Valamilyen külső fájból?
Ezt eddig úgy oldottam meg, hogy megnyitáskor egy Start makró a fenti példának megfelelő With-tel végigment a lapokon, kitöltötte magát, majd megjelent.
Egy ideje időnként megnyitáskor szó nélkül bezáródott, még debugot sem engedett.
Akkor azt gondoltam, hogy szétszedtem a With Multipage részeit, és a lapokra tettem rá egyenként. Vagyis a Startban csak egy lapnak hagytam meg a kitöltését, a többi a lapra való kattintással aktíváltam....volna :-(
Ám itt időnként újra csak behalt. "A meghívott objektum levált az ügyfeleiről" és ezt a hibaüzenetet adta. A legkülönféle soroknál állt meg. Az egyik lapon a dátumnál, egy másiknál a felhasználónál, egy harmadiknál, ha a munkafüzetből kellett kiolvasni valamit. De van olyan lap, aminek a listboxa egy szűrést követően hiba nélkül kitöltődik.
A hibajelenség nem teljesen konzekvens. Egy megnyitásnál jó, majd egy következőnél nem. Illetve azt figyeltem meg, hogy ha megnyitom az Excelt teljesen, ÉS belépek a VBA felületére, rákattintok duplán a userformra, majd ezután futtatom, akkor minden jó. Próbáltam a load és a show lehetőségeket kombinálni, cserélni, de semmi. Már levettem teljesen a Before Close-t, hogy ne az legyen, hogy a bezárás kavar bele valamit, illetve változtatja meg a megnyitásra, de semmit sem találok.
Ami végképp őrület, hogy a saját laptompomon (Win10, Office2019, 32 bit) hiba nélkül fut, a cégesen (Win10, Office2016, 32 bit) produkálja a fenti hibát. A VBA References között mindkét gépen ugyanazok vannak pipálva. Egy korábbi "iktatóra" tettem plusz funkciókat, és január 1-jével terveztük beállítani. Az extra dolgok remekül működnek, ez a fránya megnyitás vacakol.
Solidworks (3d modellező program) 2013-as programal illetve a VBA-val kapcsolatos kérdésem van. Van egy spline-om, amire ráhelyeztem 100 db pontot. Létrehoztam egy koordináta rendszert. A pontok koordinátái érdekelnek engem ebbez a koordináta rendszerben. A measure ablakban ezt meg is tudom csinálni. A gond az, hogy 10 db van, és egyesével copy/paste kicsit hosszadalmas. Ezért segítségül hívtam a VBA-t amivel szépen ki tudom gyűjteni a pontok koordinátáit egy excel munkafüzetbe. A probléma, hogy ezek a koordináták az Origin-hoz képest vannak, nem az én általam létrehozott koordináta rendszerhez.
A kérdés, hogyan tudom automatizálni a pontok koordinátáinak kimentését az általam megadott koordináta rendszerben?
Igen ebben teljesen igazad van de én naivan azt hittem hogy csak egyszerűen létrehozom a táblázatokat feltöltöm őket texboxokkal utána pedig találok valami egyszerű megoldást a mentés kialakítására, de úgytűnik hogy tévedtem. Azt majdnem elfelejtettem hogy egy olyan funkciót is szeretnék bele, hogy ha betelt mondjuk egy adott oldal akkor egy gombra kattintva létrehozza a következő teljesen ugyan ilyen oldalt amibe folytatni lehetne a töltögetést, illetve lehessen is visszalapozni az előző oldalra. Erre esetleg valmai ötlet?
És tényleg nem tudom elégszer megköszönni hogy segítesz!
Microsoft Visual Studio 2010et használok és azért nem tudsz semmit az eddigi munkáimól mert ez lenne az első :) Elküldtem a projectet tömörítve és köszi szépen hogy megnézed! A bal felső sarokban a gombok elhelyezése/kinézete nem végleges csak ott próbálkoztam a mentés funció életre keltésével.
Mindamellett megjegyzem, hogy a programozás megtanulásához nem a legjobb módszer egy elég fogós feladaton tépelődni, a lépésről lépésre módszer nagyobb hasznot ad.
És az meglehet csinálni hogy amit létrehoztam projektet azt összehozom valahogyan az activex-el vagy totál előlről kell kezdenem az egészet? (A táblázatok létrehozása textboxokkal feltöltése stb)
Hát magamtól biztos nem fogom tudni megírni a mentés töltés kódját mert tényleg segghülye vagyok hozzá. De akkor végül is miféle activeX vezérlőtjavasolsz? Vagy van esetleg másik megoldás is? Mert végül is nem csak a táblázatban szereplő adatokat szeretném ha elmentené hanem magát az összes táblázatot a módosításokkal együtt, szóval ha egyszer újra megnyitom akkor a módosításokkal együtt jelenjenek meg a táblázatok.
Az exe az executable = végrehajtható programfájl-típust jelenti, te viszont a táblázataidban lévő értékeket akarod elmenteni, vagyis csak adatot. Vagy magad megírod a mentés-visszatöltés folyamatát végrehajtó kódot, vagy keresel valami olyan activeX vezérlőt, amely előre programozottan és egyszerűsítetten kezeli az adathalmazt.
Ne törekedj arra, hogy az adatot kizárólag az exe tárolja, bár lehetséges ezt is megoldani. Csakhogy ekkor más programmal nem férsz hozzá saját adataidhoz, míg az exétől függetlenül tárolva ez lehetséges.