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.
Ilyesmi keresgélésre az Irányított kijelölés is jó. Őt csak a gyorselérési eszköztár lehetőségei közt találod meg, onnan kell feltenni az elérhető parancsok közé.
Egy adatérvényesítéses félmegoldás, ha A1-ben van a szűrési feltétel:
Megengedve: idő
Jelleg: Nem egyenlő
Idő: =HA(A1=1;0;1000)
Ez azért problémás, mert az Excel a dátum/idő értékeket lebegőpontos törtként kezeli, ahol minden egész szám valamelyik nap 0 óra 0 percének felel meg. A fenti módszerrel kizárható konkrétan a 0 érték, de ha a felhasználó 1-et vagy 2-t, stb. ír be, az időnek formázva ugyanúgy 0:00-nak fog látszódni, csak más dátummal.
Ennél jobb most nem jut eszembe, hacsaknem makróval.
Ez a keresős tűnik a legjobbnak. csináltam egy HA függvényt. A lényege az, hogy ne legyen semmi a cellában, ha a hivatkozó cella üres. Az volt a szándék, hogy ha van valami függvény, de nem látszik semmi a táblázatban, akkor is ad-e találatot. És szerencsére ez a CTRL+F * megtalálja.
Hogyan tudnám azt megoldani. hogy egy legördülő listából egy bizonyosat választva, a következő, időformátumú kitöltendő oszlopban (ebben az esetben) ne lehessen 0:00 az érték?
Kijelölöd az összes cellát pl. Ctrl+a-val, ha van kitöltött cella, a státuszsorban jobbra látszik aza statisztika.
Régebbi verziókban erre a helyre (a státuszsor jobb oldalára) rá kell klikkelni jobb gombbal, akkor választási lehetőséget ad arra, hogy mit mutasson: darabszám, összeg, minimum, maximum, átlag. Üres lap esetén nem mutat semmit.
Ha a sheet neveid "szabályosak" (pld Sheet1, Sheet2...) akkor egy munkalapon meg lehet csinálni a fenti ellenőrzést a workbook összes munkalapjára (INDIRECT és ADDRESS segítségével).
Minden egyes beírásra, ami a plusz 1 sorba, vagy +1 oszlopba került, lefut, és újabb üres sort, vagy oszlopot ad az előzőekhez. Tötlésnél a teljesen kiürült sornál, oszlopnál csökkenti a bejárható területet.
helyett
Minden egyes beírásra lefut, és ha a beírás a +1 üres sorba, vagy +1 üres oszlopba került, újabb üres sort, vagy oszlopot ad az előzőekhez. Törlésnél a teljesen kiürült sornál, oszlopnál csökkenti a bejárható területet.
Rájöttem a sorok és oszlopok számának bővíthetőségére. A 15386-os makróban az usor% és uoszlop% értékadásának a végére írj +1-et, így mindig marad a bővítésre 1 sor, és 1 oszlop.
A laphoz rendelj egy eseménykezelő makrót, aminek ugyanaz a tartalma, mint a Workbook_Open-nek, és a beírások hatására indul.
Private Sub Worksheet_Change(ByVal Target As Range) Dim usor%, uoszlop%
Minden egyes beírásra, ami a plusz 1 sorba, vagy +1 oszlopba került, lefut, és újabb üres sort, vagy oszlopot ad az előzőekhez. Tötlésnél a teljesen kiürült sornál, oszlopnál csökkenti a bejárható területet.
Az excel nem tárolja el minden cella tartalmát, csak a UsedRange-ben lévőket.
Az excel fejlődése meg lépéstz tart a számítástechnikában tapasztalható számitásikapacitás-bővüléssel (vess össze egy 2003-as csúcsgépet meg egy mostanit).
Viszont az ultimate megoldás egyszerűbb mint gondolnánk.
A VBA editorban elő kell hozni az adott sheet property-jeit (View menü, klikk az Sheet1-re), ott van egy Scrollable Area property, ami alapból üres. Ha ide beviszel egy tartományt, akkor a user nem tud kijönni abból a tartományból.
Azért jó, mert nem tud okoskodni, hogy visszacsinálja a sorok elrejtését, csak akkor tudja feloldani ha pontosan tudja mit és hol kell átállítani. Erre meg kevés az esély.
Kijelölöd az első elrejtendő sort, Shift+Ctrl+le nyíl. Ezzel minden sort lefelé kijelöltél. Jobb klikk, Elrejtés. Oszlopoknál ugyanez, csak Shift+Ctrl+jobbra nyíl a kijelölés.
Ha egyszer mégis láthatóvá akarod tenni az elrejtett sorokat, oszlopokat, legegyszerűbben úgy teheted, hogy Ctrl+a-val kijelölöd az összes cellát (all), majd jobb klikk, felfedés.
Segítettem valakinek egy számlázó program összehozásában, 2007-es Excelben. A füzet 18 lapot tartalmaz, több-kevesebb adattal, hivatkozásokkal, keresztül-kasul számításokkal, érvényesítésekkel, némi makróval. Egyik nap hívott az ismerősöm, hogy óriásira dagadt a fájl, nem győzi kivárni a betöltést, és valóban, 5.241 KB lett a méret.
Átkonvertáltam 2003-as formába, ami minden feladatot ugyanúgy elvégez, 40%-ára csökkent a méret, felgyorsult, és még az űrlap vezérlőket is csinosabbra tudtam formázni.
Minden lap 1024-SZER annyi cellát tartalmaz a 2007-es verzióban, mint a 2003-as. Ahhoz a rengeteg adathoz, amit az újabb verziók el tudnak tárolni, szerintem nem is Excelt kellene alkalmazni. A fő különbséget (a méreteken kívül) a feltételes formázási lehetőségek bővítésében látom, azon kívül csak csicsákat – új diagram formázási lehetőségek – adnak az újabbak. Bár van néhány jó új függvény, mint a szumhatöbb, de meg kell fontolni, miért mit adunk.
A 201. -től az utolsóig elrejted a sorokat. Egy (verziótól függő) szürke, vagy kék felületet kapsz, amin egy keveset görgethetsz. Az oszlopok elrejtésére is igaz.
Ismerem a jelenséget, de nem teljesen ugyanaz az eset, sajnos.
Az idegen nyelvű verziók ugyanis - valószínűleg - egyből idegen nyelvűként vannak installálva. Az enyém angolul van installálva, és ehhez szeretnék még egy új nyelvet.