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.
Sziasztok, ismét a segítségeteket kérném. Egy szabadság nyilvántartó táblát finomítgatok és szeretnék egy olyan felületet készíteni ahol a user kiválaszt egy nevet és az arról a névről elnevezett fájlból befrissíti az adatokat Mellékelek egy képet, hogy átlátható legyen. Tehát ha A1 ben kiválasztom a nevet (az egy legördülő cella) akkor a B3 cellában a gipsz jakab.xls helyett a legördülőben kiválasztott nevű fájlból töltse be az adatokat. Sehogy sem tudok rá hivatkozni, hogy a fájl direkt neve helyett az A1-ből vett adat legyen a cél fájl neve.
Köszi! Elsőre azt mondtam, hogy fogalmam sincs, mi lehet az oka, én nem vagyok olyan nagy Excel guru, és adtam három nevet, akik talán tudnak segíteni. Nemrég arra jártam, és meg akartam kérdezni, hogy megoldódott-e a probléma, de éppen beszélgetett valakivel, így csak üzenetet hagytam, hogy erről érdeklődtem. Ha megint szól, hogy még mindig gond van, akkor elkérem ezt a táblázatot, és megpróbálom ezeket ellenőrizni.
Hát az egy kb. a "fáj a hasam, mitől van?" kérdés.
Meg kell nézni, milyen adatérvényesítés van abban a cellában, nevet vagy cellatartományt tartalmaz-e, hova mutat, ott még megvan-e az az adat, a név még a megfelelő tartományra mutat-e.
Az egyik kolléganő gépén Office 2010 van. Kapott egy táblázatot xlsx-ben, és annak egy vagy több cellájában állítólag egy legördülő listának kellene lennie, amiből ki lehetne választani a megfelelő értéket. Igen ám, de nem látszik a lista, és ha rákattint a cellára, akkor sem történik semmi. Nem látszik, hogy védett nézetet látna. Akkor mi lehet ennek az oka? Van olyan, hogy ott van a legördülő lista, és valami beállítás miatt mégsem látszik?
Azt írták az okosok, hogy ilyenkor valószínűleg "elfoglalt" az Excel, és nem ér rá azzal foglalkozni, amit kérek tőle, hanem visszadobja kérést. De amikor legközelebb próbálkozol, addigra valószínűleg már túljutott a nagy elfoglaltságon, így a hiba nem jön elő többé.
De ha mégis előjön, bármikor, akkor javaslom, hogy ismételd meg a keresési műveletet változatlan feltételek mellett, pusztán a Keresés (vagy hogy neveztem el) gomb újra megnyomásával. Feltételezem, hogy annak a munkafüzetnek az átvizsgálása, amelyiknél a hiba jelentkezik, a hiba miatt nem lesz teljes, így a keresési eredmény sem lesz teljes.
Segítség alatt meg azt értettem, hogy ha tudod reprodukálni a hibát, akkor küldd el nekem a teljes tesztkörnyezetet (fájlokat, kereső- és jelszavakat), hogy fel tudjam deríteni a jelenséget. De ez most már nem aktuális, azt hiszem.
Igaz, azóta én sem tudom reprodukálni a hibát, ugyanazokat a szavakat beírva sem ad hibát,(és még 10 keresés után sem) szóval, lehet hogy gép-állapot függő volt a "hiba".
Csak tippelni tudok, hogy mit jelent a hibaüzenet. Nem hinném, hogy a 4 szó miatt van, 5 szóval is teszteltem, és simán vitte. Abból kiindulva, amit a neten találtam az rpc_e_call_rejected -re keresve, még az sem biztos, hogy tudod reprodukálni. De ha te tudod is reprodukálni, én biztosan nem, így kivizsgálni sem, hacsak nem segítesz benne.
Pontosítsunk a fogalmakon, a közös nyelv érdekében.
A "munkafüzet" az az excel fájl maga, aminek valami.xlsx a neve.
A munkafüzet egy vagy több "munkalapot" tartalmaz. A Munkalap az az 1048576 x 16384 cellát tartalmazó nagy cellatér, amelyeket sokan "füleknek" neveznek, és alapértelmezésben a Munka1, Munka2, stb. nevet kapják.
A táblázat pedig a munkalapon egy teszőleges téglalap alakú cellatartomány.
Ha jól értem, akkor azt szeretnéd, hogy a munkafüzeted 3. lapjára, bizonyos cellákba fixen bekerüljenek adatok. Az általad leírt viselkedés természetes, a cellába írt képlet a bemenő paraméterek változása után aktualizálja az értékét. A célod elérésére két lehetőséget látok:
1) ha a számításhoz szükséges feltételek/adatok a 3. munkalapon is adottak, akkor nem a 2. munkalapon kellene mókolni a napi teljesítmény manuális kiszámolásával, hanem a 3. munkalapon a kívánt cellába kellene beírni azt a képletet, amely ezt kiszámolja.
2) Ha ez nem lehetséges, akkor egy makró (programkód) tudná a manuálisan kiszámolt értéket áttenni a megfelelő helyre. A makró megírásához több infó kellene, a munkalapok felépítéséről, pl. mit kell áttenni, mi alapján lehet megtalálni a cél cellát, stb.. Ezen kívül meg kellene határozni, hogy milyen akcióra vagy történésre induljon a makró. Ez lehet gombnyomás, duplakatt egy adott cellára, a munkafüzet mentésa, vagy sok minden egyéb is.
Segítséget szeretnék tőletek kérni. Nem vagyok profi exceles, de próbálom az életem megkönnyíteni.
Kérdés: hogyan lehet megoldani, hogy eredmény kerüljön át egy munkafüzetre?
A kiinduló, egy táblázatban három munkafüzet van. Az első az adatokat tárolja (termékek, normatívák, nevek, dátum lista). A második munkafüzeten van két lista érvényesítés egy dátum és egy név. Ez legördíthető ennyi.
Azt szeretném elérni, hogy ha kiválasztom a dátumot a listából, a nevet a listából és az alatta lévő részen a napi teljesítményt kiszámolom, akkor a harmadik munkafüzetbe a szintén kiválasztott naphoz és személyhez rendelje azt az összeget a dátum név metszésében lévő cellához, és az eredmény maradjon is ott meg állandó jelleggel.
Remélem megfelelő volt a leírás. Nem nagyon találtam rá megoldást, mert megpróbáltam, de abban a pillanatban hogy a második munkafüzeten a listán nevet és dátumot váltok kitörli az eredményt.
Fel tudnád tölteni valahová azt a jelszavas fájlt, amiben a programom nem talált meg semmit? És megírni, hogy mit kell keresni benne? Letesztelném, hogy miért nem működik, Nekem ugyanis mindig megtalálta, amit kellett.
Elsőre úgy gondoltam, de csak azért mert nem tudtam, hogy úgy bonyolultabb :)
Majd egy szimpla másolással megoldom, hogy a fájlok egy könyvtárban legyenek, az nem gond.
A szókereső program tesztelése során arra jutottam, hogy a jelszóval védett fájlban nem találja meg a keresett stringet, amellett, hogy a megnyitható oszlopban az igaz szó szerepel. Tehát elvileg a jelszavast is meg tudja nyitni. A jelszót nem ronthattam, el, teszt jelleggel csak egy "a" betű volt.
(3db xls fájlt csináltam, az egyik nem jelszavas, a másik kettő jelszavas eltérő tartalommal, de a nem jelszavas adatai is szerepelnek bennük, a nem jelszavasban megtalál mindent, a jelszavasokban semmit).
Pedig ez a bekérős formula nagyon jó lenne, a még nálam gyengébb userek is használni tudják :)
Mármint mire nincs kész megoldás? Hiszen Te magad írtad nemrég, hogy a Jimmy által küldött szókereső program elvégzi a dolgot. Én nem próbáltam ki, csak elhittem. Ha tényleg elvégzi, akkor minek kellene ezen görcsölni?
Jogos. Ha szükséges lesz, és nincs kész megoldás rá valahol, akkor megpróbálom. Egyébként a permutációra végül a saját szórakoztatásom céljából megcsináltam. Így már több elem permutálása is megoldható lenne. Csak nem tettem közkinccsé. Gyakorlati haszna úgysem sok lenne.
Pontosítom a kérdést: Remélem, nem úgy gondolod, hogy az adott könyvtár összes alkönyvtárában, meg azok alkönyvtáraiban? Mert az túl bonyolult lenne.
A legjobb, ha egy könyvtárban összegyűjtöd a fájlokat. Az nem lesz gond.
De ha több könyvtárról van szó, akkor kellene egy lista azokról a könyvtárakról, amelyekben keresni kell a fájlokat. Ez a lista lehetne a programot tartalmazó munkafüzet egyik munkalapján, aminek legyen a neve például "Könyvtárak". Ebben az esetben az eredményt tartalmazó munkalapnak is adjunk nevet, mondjuk "Találatok" (De a neveket majd tetszésed szerint írd meg).
Ez alapján meg tudom oldani a programban, az automatikus keresést.
Egyébként a Jimmy által küldött szókereső program elvégzi ugyanezt. Megadod a könyvtárat. Szkenneled (ekkor végigmegy az alkönyvtárakon, kigyűjti a fájlokat). Aztán megadod a keresendő kifejezést, a használt jelszót/jelszavakat, majd egy új munkafüzetbe listázza az eredményt.
Hát, én nem próbáltam ki... szóval lehet, hogy kamu. De ez furcsa, mert nem találtam más, hasonló applikációt, pedig nem tűnik olyan egetrengetőnek a feladat.
Na akkor küldök egy mintát, hogy milyen úton tudnál elindulni. Persze nem ismerem az adatállományaidat, ezért a programban kézzel kell meghívnod a fájlokat. Ezt nyilván több száz fájllal nem fogod megtenni. De ha majd kitalálsz egy eljárást, hogy milyen módon lehet majd programba írni a feldolgozandó fájlok listáját, ahhoz már könnyű lesz hozzáigazítani a programot.
Szóval nyiss egy új excel munkafüzetet, és a következőt másold be a VBA ablakba. A legelső sorban az x-ek helyére írd be a jelszavadat és a keresendő kifejezést.
A program kéri, hogy válaszd ki a fájlokat (később majd ezt automatizálhatjuk), megnyitja azokat, végignézi azok munkalapjait, és ahol talál egyezőt, úgy az
A oszlopba kiírja találatokat (munkalaponként csak az elsőt, de ezt is lehet módosítani).
Próbáld ki néhánnyal, aztán ha ez jó, akkor majd térjünk vissza az automatizálásra.
Const jelszo As String = "xxxx", keresokif As String = "XXXX"
Option Explicit
Sub beolvas()
Dim hely As String, aktwb As Workbook, aktws As Worksheet, kiirws As Worksheet, filenev As Variant, utolsosor As Long, mf As Long, sor As Long, _
eredm As Range, mfnev As String
Set kiirws = ThisWorkbook.Worksheets(1) ' Ide írjuk ki az eredményeket
Hát én nem is tudom mit mondjak.... nagyon szépen köszönöm, kb 2 órás melóval rendezve van minden..... na nem mintha érteném a függvényedet... de köszönöm😅