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.
Az a baj, h ez a kód egy nagyobb makró része, ezért futás közben kéne megcsinálnia a kivonást. De Type mismatch-csel tér vissza a VBA editor. :( Egyébként konkrét számértéket kellene kivonnom belőle, gondolom azért ez a hibaüzenet, mert minden áron szövegként kezeli a dátumom. Kipróbáltam több gépen, 2003-as Excellel is. Ugyanez történik :( Excel beállításait néztem, de nem találtam erre vonatkozóan semmit. Azt nem értem igazból, hogy mitől lesz jó, ha belekattintok (vagy F2), majd elhagyom a cellát (enter, tab vagy máshova klikk az mindegy, mindenhogy jó akkor már).
Sok műveletet kell elvégeznem több adattáblával, amikből további riportokat csinálok. Úgy vagyok vele, h ha már nekiállok egy programnak, akkor a felhasználónak lehetőleg nem hagyok manuálisan elvégzendő feladatot. Szerintem ez a lényege a makróknak :)
Az eredmény a cella bal oldalához van igazítva, tehát olyan, mintha szövegformátum lenne. (A formátuma általános.) Emiatt raktam be a végére a Format-ot az eredménybe, ami teljesen felesleges amúgy (sztem).
A lényeg: ha átállítom szám- vagy dátumformátumra, akkor továbbra is ott marad a bal oldalán a cellának, ezért „Type mismatch” miatt nem tudok vele számolásokat végezni. Ha nyomok egy F2-t vagy duplaklikket a cellán, majd átkattintok másik cellára, akkor azonnal jó lesz a korábban beállított formátum. Nem tudok rájönni, hogy mi a baj, mert a makrórögzítés sem árul el semmit, mert a kód alapján egyszerű értékadásról van szó.
C:\Documents and Settings\(user)\Application Data\Microsoft\Excel\XLSTART
mappában egy personal.xls fájl.
Ha van, töröld ki. Vagy talán jobb, ha átnevezve elmented valahová. Ez a fájl ugyanis általában úgy keletkezik, hogy makrót rögzítesz benne. Azokra meg még szükséged lehet.
Elvileg az normális, ha a háttérben ott van a Personal.xls, de persze nem így, mint neked.
Nálam a hiba abból jött, hogy definiáltam az actuális munkafütetet, ami nyitva van (mivel VBA-ban és personalban dolgoztam ez pont ez a fájl volt), aztán mentettem a makróban az "akutális munkafüzetet", ami a Personal volt.
Ezt a momentumot kell megtalálni és korrigálni a makróbal /remélem jól írtam...javítsatok, ha hülyeségeket beszélek/.
Én kijavítottam, hogy máshogy definiálja az "aktív munkafüzetet" és töröltem a plusz Personal-! az excel folderből.
Talán emlékesztek, hogy kérdezgettem itt a makrókról ezt-azt. Na most úg yelállítottam a dolgokat, hogy jelenleg minden egyes Excel megnyitásakor vele együtt nyílik egy PESONAL.xls fájl is. Miért? Hogy tudom leállítani?
A helyes megoldás beküldői között "Köszönöm"-öt sorsolunk ki!
A "Count" ismert előttem - tehát azt értetted, amire gondoltam. Keresgéltem, de nem találtam használható forrást - alighanem végig kell lépkedni az elemeken és megszámolgatni külön. Aban bíztam,
A benne lévő Item-ek számát a Count adja meg, de gondolom nem erre gondolsz.
Ha ez igaz, akkor a kérdésed azért furcsa, mert amikor értéket adtál a Collection elemeinek, akkor látszódik, hogy melyik elem, hanyadik lesz. Oda nem tudsz "visszamenni" és a forrásnál kitalálni az Item index-ét?
Próbáltam több véletlent tenni [sor = Int(Rnd() * Rnd() * usor) + 1; sor=Int(Rnd()*sor)+1; ], de minél nagyobb a választott darabszámod, annál nagyobb a valószínűsége, hogy azonosak lesznek közöttük.
Meg lehet variálni, hogy a "kisorsolt" adatokat rendezed, egy ciklusban ellenőrzöd, hogy van-e azonos közöttük, annak a helyére másik sort sorsolsz.
Hát igen... én sem gondoltam hogy így intézik el. Úgy biztosan 5 kattintás lett volna, így meg csak 1. Még azt el tudom képzelni, hogy fizikailag nincs törölve, csak "1-2 pipát kivettek" valahonnan.
Szóvá tettem, meg azt is, hogy a másik exceles fórumot nem így, végleg kellett volna megszüntetni, hanem olvasásra továbbra is nyitva állhatna. Kár eltüntetni az ott feltett kérdéseket, és a rájuk adott sok választ.
Azt is be kellett volna írnom, hogy onnan egy link ide vezethetné az olvasót.
Biztos észrevetted, átkopiztad a platformról a kódot, a szerkesztőben jól megjelent de a fórumon nem. Én is beraktam entereket az átkopizás után - így üres sorközök lettek - és utána jó lett.
A fő fórumoldalon ha jól láttam van valami teszt topik biztos lehet szólni - ha még més nem tette meg.