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.
Egyszerű. Megnyitod egyidejűleg mindkét fájlt. Abban a fájlban, illetve annak abban a cellájában ahova a függvényt akarod írni, megnyomod az egyenlőségjelet, majd elengeded a billentyűzetet, és az egérrel átmész a másik fájlba, ott az egérrel ráállsz a kiválasztandó cellára, és az egérrel rákattintasz. Ha csak ennyi, akkor entert nyomsz. Ha folytatni kell, például összeadás jön, akkor nem enter jön, hanem megnyomod a + jelet, és kikeresed a következő adatot. És így tovább.
Ha persze az elején az egyenlőségjel után egy függvényt akarsz kezdeni az hasonló. Például összegzésnél beütöd, hogy =szum( majd ezen a ponton (a nyitó zárójel után) hagyod félbe a pötyögést, és mész az egérrel a másik fájlban a keresett cellákra.
Ezzel a technikával akár egy fájl több munkalapjának adata, de akár több fájl különböző munkalapjainak adata is lehet egyetlen képletben.
Azt hiszem van egy határ, hogy a képlet szövegének hossza nem haladhat meg valahány karaktert (én olyan 800-900 közötti értéket találtam), de ezt pontosan nem tudom.
Még annyit, hogy ha a képletet javítani kell, nem kell elölről kezdeni, hanem a cellára állva fenn a parancssorban megjelenik annak aktuális képlete. És ott javítható, kiegészíthető a képlet.
Remélem érthető, így leírva bonyolultabbnak látszik, mint a gyakorlatban megcsinálni.
Nagyon sok okosságot lehet itt találni, amiket utólag meg is köszönnék.
Eddig nem kérdeztem tőletek, de most a tudományom végére értem. Ha tudtok segítsetek. Egy függvényt szeretnék írni ami egy mezőt tölt ki, de a feltételeknek megfelelő adatokkal ami egy másik xls-ben van. Programként jól működik, de függvényként mintha csak az aktuális xls-t látná és a másikat nem.
Furcsállom, mert nekem a program maga lefutott. (Csak azt nem tudtam ellenőrizni, hogy mit csinál.) Arra gyanakszom, hogy a hiba a gépedben lehet. Próbáltad másik számítógépen? Milyen op. rendszered van? Milyen Office verzió?
Esetleg ránézhetek közelről, ha el tudod küldeni a doksit email-ben. Előtte persze törölj ki belőle mindent, ami nem kell, csak a két makró modul maradjon bent.
Sziasztok, csak beszámolok egy érdekes meglepetésemről a programozásnál. Egy adott ponton az iif függvényt használtam:
iif(sor<0 or oszlop<0,0,függvény(sor, oszlop)) formában, ahol a meghívott függvény használta a cells(sor,oszlop) kifejezést.
A szándékom az volt, hogy amikor a nem megfelelő paraméterek miatt közvetlenül kell adatot megadnom, akkor ne fosson rá a program egy olyan kifejezésre, ami hibát okozna.
Viszont legnagyobb meglepetésemre a függvényt a program akkor is meghívta, ha a feltétel miatt csak az iif függvény true értékének megfelelő kifejezést kellett volna visszaadnia.
Nem okozott gondot, átírtam a normál if...then szerkezetre. Csak érdekes (talán mondhatom, hogy apró hiba), hogy ezek szerint a program előbb kiértékeli az iif függvénynek mindkét ágát, és csak utána dönti el, hogy melyiket adja vissza. (20 évvel ezelőtti emlékeim szerint, ahol még Clipperben programoztam, nem volt ilyen gond az ottani iif függvénnyel)
Remélem, ez már működik majd. De (duplex nyomtató híján) ezt sem tudom letesztelni...
(Amúgy a 2) sorszámú, ámde harmadik megoldáshoz nem kell új nyomtató, csak az az egy, ami már amúgy is megvan. Csak meg kell duplázni a telepített nyomtatók listájában. De ez most már irreleváns.)
Én csak kettőt látok sorszámozva. :) Ha esetleg a másodikra gondolsz, mint harmadik lehetőségre, azaz az új nyomtató telepítésére, az nem fog menni, mert ahogy írtam, pont most adtak központi nyomtatót az egyéni nyomtatók helyett. Nem fognak külön nekem még egyet beállítani, se igazit, se virtuálisat. :(
Ó, roppant szomorú vagyok, de köszönöm a válaszod! :(
A nyomtató is "új", most telepítették Eddig saját nyomtatója volt mindenkinek, de most inkább költséghatékonyak leszünk, és közös, a folyosón elhelyezett hálózati nyomtatónk lett. Eddig ki kellett nyomtatni a fájlt A4-ben, és abból nagyítottam fénymásolón A3-ra, kétoldalasra. Most annyival lett könnyebb, hogy az új nyomtató tud A3-ra nyomtatni, ezt akartam még tovább egyszerűsíteni a makróval, hogy ne kelljen mindennap ennek a fájlnak a nyomtatási beállításaival vacakolni, hanem "írok" egy makrót, hozzárendelek egy gombot az eszköztáron, és csak egy gombnyomás, és kész a kétoldalas, A3-as nyomtatás. De hát ezek szerint marad a naponkénti molyolás a nyomtatóbeállítással.
Azért ez gáz, hogy nem lehet Word/Excelben beállítani a nyomtatást makróval... de hát ez van.
Excel és Word környezetben nincs lehetőség a nyomtató parmétereinek makróval történő beállítására. Access-ben viszont van. Ha van a gépeden telepítve Access, akkor az alábbi kód lehet, hogy működni fog:
A kék sorok állítják be elvileg az egy- illetve kétoldalas nyomtatást. Ha az acPRDPVertical nem jó, próbáld meg acPRDPHorizontal beállítással is.
A Tools->References menüben a Microsoft Access Object Library-t be kell ikszelni.
Na most a helyzet az, hogy nekem a fenti kód nem működött. Viszont lehet ennek az is az oka, hogy itt nálunk a rendszergazda jogosultaságot igénylő beállítások le vannak tiltva. Talán admin joggal működik. Nem tudom, próbálkozz vele. Ha nem megy, akkor két további lehetőséget látok.
1) Olyan makrót írni, amely meghívja a megfelelő Windows rendszerfüggvényeket, és ezáltal állítja be a duplex paramétert. Nem biztos, hogy az itt jelenlévők tudása együttesen elegendő ehhez.
2) Telepíteni még egy ugyanolyan nyomtatót, mint az első. Ehhez nyugodtan lehet a már telepített printer drivert használni, és a nyomtatóport is legyen ugyanaz. Így tehát van egy db. fizikai nyomtató, de a Telepített nyomtatók listájában két bejegyzés szerepel hozzá. Az egyik neve legyen mondjuk "HP LJ akármi duplex", a másiké pedig "HP LJ akármi simplex". Mindkettőn be kell állítani az alapértelmezett nyomtatási módot (két- ill. egyoldalas nyomtatás), a makrót pedig úgy átalakítani, hogy az első és negyedik oldalt az egyikre küldja, a 2-3 oldalt pedig a másikra.
Segítségül, ezt a kódot alkottam eddig (illetve alkotta a Word Rögzítés üzemmódban), látszik, hogy az 1;4 és a 2-3 oldalak nyomtatási parancsai egyformák, sehol nem szerepel az 1;4-nél a kétoldalas nyomtatásra utasító rész. Ami azt illeti, az A3-as méretre utaló sem, pedig az is be van pipálva. Gondolom, ha más doksit nyomtatnék A4-re, akkor onnantól ez a makró is csak A4-re nyomtatna.
A kérdésem csak részben kapcsolódik az Excelhez, merthogy Word-ös. :) Mivel azonban nyomtatásról van szó, a problémám univerzálisnak érzem. :)
Van egy hálózati nyomtatónk, ami tud A3-asra kétoldalasan nyomtatni. Erre én "írni" szándékozom egy makrót, hogy az adott fájlnak az első és a negyedik oldalát egymás hátára nyomtassa, míg a másodikat és a harmadikat csak simán egyoldalasra, és persze mindet A3-asban. Nem akarom minden nyomtatásnál kézzel állítgatni a paramétereket, ezért kellene a makró. Makróírási tudományom odáig terjed, hogy "Feljegyzés" üzemmódban (vagy minek hívják) tudom megcsinálni a makrót, majd tudom értelmezni a kapott kódot.
A probléma ott van, hogy a kétoldalas beállítást a makró nem jegyzi fel, azaz kinyomtatja a fájlt, de minden oldalt külön lapra.
Kpróbáltam azt a beállítást külön "feljegyezni", ami a kétoldalas nyomtatásra vonatkozik, de a makró egyszerűen nem jegyez fel semmit. Az adott nyomtató Tulajdonságainál lehet bepipálni a kétoldalas nyomtatásra vonatkozó részt, de a makró ezt úgy veszi, mintha nem csináltam volna semmit. Hogyan, milyen paranccsal tudnám kézzel beleírni a makróba, hogy az első és a negyedik oldalt egymás hátára, míg a másodikat és a harmadikat külön lapra nyomtassa?
Excelben szeretnék olyat megoldani, hogy bizonyos nyomtatványokat- közigazgatási határozatokat, végzéseket- vinnék fel egy-egy munkalapra. Lenne egy alap munkalap, ahova az ügyfél nevét, címét, iktatószámot, építési helyet, helyrajzi számot csak egyszer kellene begépelnem és a =munkalap1!a..... hivatkozással ezek az alapadatok átkerülnének az eljárási cselekmények végzéseibe, határozataiba.
Nagyjából ezek sikerülnek is, csak a wordmen meglévő sablon dokumentumait soronként kell az excel cellákba "áthordanom" és a külalak elég gyatra lett eddig. Próbáltam cellaegyesítés után bemásolni, de az nem lehetséges. Az lenne a tiszteletteljes kérdésem, hogy van-e szalonképesebb megoldás erre az excelben ?
Persze így jó, de a munkalap nevének bepötyögése helyett biztosabb módszer az = jel beírása után átmenni a másik munkalapra, ott kiválasztani a megfelelő cellát, és az enter után ott lesz a megfelelő képlet. Bonyolultabb esetben minden műveleti jel után ki lehet választani ilyen módon a megfelelő munkalap megfelelő celláját.