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.
Adott egy excel táblázatom amelyben L2:L100 között felsorolt nevek vannak.
Egy makró segítségével létrehozok adatelemzést és fenti tartományban lévő neveket használva a helyes cellába be is illeszti azokat ezzel nincs is gondom.
A makró utolsó fázisaként a munkalapfüleket szeretném átnevezni az L2:L100 tartomány nevei szerint úgy hogy az adatok ha változnak akkor a munkalapfül átnevezése is kövesse le a tartalmat azaz ne a scriptben tárolt vágólap tartalma alapján legyen átnevezés hanem az oszlop adatai szerint amelyek változnak és ezt kövesse le.
A C12 jelentése, hogy az aktuális (képletet tartalmazó) oszloptól 12-vel balra lévőre hivatkozik. Lehet negatív is a szám, amivel előző oszlopra hivatkozhatunk.
Ugyanígy az R után is lehet érték, ami plusz érték esetén lentebbi sort jelent, negatívnál fentebbit.
Érték megadása nélkül az adott sorra (R), vagy oszlopra (C) hivatkozunk.
Ez megoldott azt, amin már több mint egy napja nyűglődöm eredmény nélkül.
A formulaképlettel ugyan találkoztam már, de nem mélyedtem el az értelmezésében. Most majd utánaolvasok. Talán itt: https://excelchamps.com/formulas/r1c1/, de ha tudsz jobbat, akkor azt is köszönöm.
Mert egyelőre nem teljesen világos, hogyan lesz az RC12-ből $L3, és a C12-ből $L:$L, illetve, ahogy most írok világosodik, hiszen ha az R ott van érték nélkül az aktuális sort jelenti, a C12 meg az oszlopszámot, de ha az R nincs előtte, akkor a teljes oszlopot. Ugye?
Köszönöm, ez így talán működne, de jól látom-e, hogy a képlet helye és a célterület ugyanazon a munkalapon kell, hogy legyen? Amikor megpróbáltam másik munkalapra tenni a képlet helyét, akkor a célterület kijelölésénél hibát kaptam. Ez meglehetősen korlátozhatja a módszer alkalmazását.
Fferién kívül még két módszert ismerek arra, hogyan lehet bevinni egy képletet helyesen makróba.
Beviszem a képletet, majd lapfülön jobb klikk, Beszúrás, Nemzetközi Makrólap. Kapok egy új lapot Makró1 névvel. Ide bemásolom a képletet és a hivatkozási tartományát. Angolul jelennek meg a képletek, ezzel már tudok valamit kezdeni.
2. A legkényelmesebb módszer: beírom a képletet egy cellába. Enterezés után újra erre a cellára állok, makrórögzítés, Enter a cellán. Leállítás után az igényeimnek megfelelően módosítom pl. a tartományt. Ez az R1C1 módszert alkalmazza, nem ronthatom el az idézőjelekkel.
A következő gondom van. Egy több munkalapot tartalmazó Excel fájlban van egy úgynevezett teljes lista, és vannak hozzátartozó munkalapok. A teljes listában a többi munkalap valamennyi rekordja szerepel, ami pedig összeköti őket, az az L oszlopban szereplő azonosító. Tehát amikor egy munkalapra szeretnék bemásolni egy adatot, akkor a munkalap L oszlopában lévő azonosítót keresem meg a teljes listában, és a negtalált sor megfelelő adatát olvasom ki, és helyezem el a munkalapon.
Az erre használt függvény, amit a korábbi években kézzel (Copy-Paste) másoltam be a munkalapok 3. sorába (majd húztam végig lefelé, kitöltve a teljes oszlopot a teljesből átvett értékekkel) így nézett ki:
= INDIREKT("'Teljes lista'!$AL" & HOL.VAN($L3;'Teljes lista'!$L:$L;0);1) ' Itt lehet, hogy hibát követtem el, hogy az aktuális munkalap L3 cellája előtt nem adtam meg a munkalap hivatkozást saját magára, de a rendszer elfogadta, és jól működött a dolog.
A komplett feladatot egy sokszáz soros makró kezeli, és mivel idén szeretném kiadni a kezemből a feladatot, ezt a másolást is a makróban szeretném automatizálni. Viszont órák óta képtelen vagyok megtalálni a helyes szintaxist. és a szerkesztő vagy a képleten belül talál hibát, vagy azt állítja, hogy sub or function not defined. AKár C-vel, akár K-val írom az INDIREKT-et:
Elkeseredésemben arra is gondoltam, hogy az eredeti - kézi - megoldást imitálva alkalmazom, de a Copy részt nem tudom megoldani tehát, hogy a vágólapra kerüljön a formula.
Nagyon szépen köszönöm,egy utolsó kérdésem még lenne. A Jelölő négyzetet miért nem jelölőnégyzetként jeleniti meg a tábla? Már az elején is problémám volt vele,de megoldottam,most viszont kilépés utáni újra megnyitásnál már megint nem jelölőnégyzetként jeleniti meg. A kikapcsolt négyzetek helyén "FALSE" ,a bekapcsolt négyzetek helyén pedig a "TRUE" jelenik meg,tehát a helyzetüket írja le ahelyet hogy megjeleníteni őket
Köszönöm. Még olyan kérdésem lenne,hogy HA képlettel hogy tudok több lehetőséget megadni?
pl =IF(C4="A",;3) ez így tökéletesen műkődik,de hogyan tudok mellé csatolni más lehetőséget is,pl nem csak akkor lesz 3 ha c4=A ha nem c4="A" és "B" és "C" akkor ;3.ha c4="D","E";akkor;4,c4="F","G",akkor =;5. Ezt meglehet oldani egy képletbe és egy cellába beépíteni?
Sziasztok. Az lenne a kérdésem hogy lehetséges e egy cellán belül több jelölőnégyzetet berakni,és hogy ezeket a jelölönégyzeteket színezni valamilyen módon? Arra gondolo,hogy pl a négyzetet kipipálás helyett beszínezni különböző színekre
Viszont a Fájlkezelőben ráállsz - jobb egérgomb - Tulajdonságok - Biztonság - A tiltás feloldása négyzetet bepipálod -- OK. Ezt természetesen a felhasználónál kell megtenni, ami lehet, hogy bonyolultabb lesz neki, mint engedélyezni a makrókat a kérdés után.
Ha vannak/voltak adatkapcsolatok az eredeti fájlban és nem szeretnéd a másolatban, akkor mentés előtt a kapcsolatokat törölni kell, pl.
Do While Activeworkbook.Connections.Count > 0:Activeworkbook.Connections(1).Delete:Loop
Makróval megnyitok egy makrókat tartalmazó fájlt, és a átmásoltatom más néven más helyre, majd egy-két módosítás után mentem. Megoldható-e programból, hogy az új fájl első megnyitásakor ne figyelmeztessen a makrók letiltására, és ne kérje a felhasználótól az engedélyezést, hanem tekintse úgy, hogy az már megtörtént?
Kijelölöd az A2:F14 tartományt (címsortól decemberig), a Ctrl gombot nyomva tartva kijelölöd a C2:C14, E2:E14, és G2:G14 tartományokat. Ezzel a % oszlopokat kivetted a kijelölésből.
Beszúrás, diagram, oszlopdiagram.
Rákattintasz a legmagasabb oszlopra. Az első kattintásra az összes hónap max oszlopai lesznek kijelölve. Még egy klikk az oszlopon, akkor már csak a maximumot tartalmazó oszlop van kijelölve, majd jobb klikk, adatfelirat hozzáadása.