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.
Ha az adatok nem egy-egy alkalommal vannak használva, akkor soha. Ha pl. összedobok egy listát, akkor OK, ha egy hónapok óta gyűlnek benne az adatok, akkor nem.
Én pl. a következőképpen használom a részösszegeket:
Makró:
1. fájl behív olvasásra(!)
2. sorbarendezés, részösszeg, sorbarendezés (így a részösszegek egymás után vannak
3. részösszegek vágolapon keresztül egy új fájlba
4. eredeti fájlból mentés nélkül távozás.
Ezt a megoldást választom, ha 10 ezer sornál több van a táblában.
Egyébként ha valaki a részösszeget használja, akkor azt javasolnám neki, hogy az Excel fájlról készítsen másolatot, és a másolatba építse a részösszeget, aztán úgyalakítja, ahogy akarja, de az eredetibe folytassa az adatok gyűjtését.
Csak azt próbálom jelezni, hogy a részösszeg használata beleír abba a táblába, ahol az alapadatok vannak. Ha valaki betartja azt az alapelvet, hogy ezt nem szabad módosítani, akkor nem lehet elrontani. Ha nem tartjuk be ezt az elvet, akkor sokkal jobban oda kell figyelni minden lépésnél, hogy véletlenül se módosuljanak az adatok.
Jelzem: a részösszeg szerintem is tényleg jó, amit írtam elvi jelentőségűnek tartom, amire jó, ha gondol az ember.
A megoldando problema: Excel-ben egy dokumentumba be kell rakni egy parancsgombot, amire ha rakattintunk, elojon az a kereso parbeszedablak, ami a Szerkesztes/Kereses menuponttal is elojon. Halas lennek, ha valaki megirna nekem a megoldast.
Kedves Excel Guruk!
Talán tudnátok nekem segíteni, hogy hogyan lehetne 70 db excel fájlt egy munkafüzetbe egyesíteni, vagy beolvasni az azokban található adatokat egyetlen táblázatba.
Minden táblázat felépítése azonos, de a cellák nem mindegyikben vannak teljesen kitöltve. Az egyikben mondjuk 10 a másikban 13 cella van tele. Segítsetek nekem legyetek szívesek!
cHe
Az én Word-öm tudod ott alul kiírja az oldalak számát. Neked nem? :-)))
Ekkorát nem hibázok, ott volt, hogy VBA-ban :)
A kód viszont működik, köszönöm. Ennél jobban nehéz lett volna eldugni :( A közel 1000 oldalas Office2000 Programmer's Guide-ban erről egy szó sem esik. Viszont e nélül kicsit nehézs 197 dokumentumot kinyomtatni folyamatos oldalszámozással. Thanx again.
Nem értek veled egyet. Elvi kérdés, hogy az adatok gyűjtését és elemzését ne keverjük. A részösszeg tönkretehet egyéb képleteket, ha már van hivatkozva az alapadatokra.
A kimutatásnak is van előnye: a részösszegek elrejtésével csak azon információk látszódnak, amelyeket akarunk, és a frissítés praktikusabb (nem kell a részösszegek / törlést választani, majd három nap múlva ismét részösszeget használni), és akár másik fájlban is tarthatjuk.
Az egyéb adatokra vonatkozó megjegyzéseddel nem teljesen értek egyet: ha valóban minden adatot látni akarsz, akkor minden sort látni kell, ami legalább a sorok duplázásával jár, de ha egy ügyfél többször is vásárolt, akkor még jobban összekavarodik a dolog. Ha pedig ezeket a sorokat elrejted, akkor ugyanott vagy, mint a kimutatásnál.
Összegezve: ennek is, annak is van előnye és hátránya.
Egyébként ha már részösszeg, akkor is azt válasznatnám, hogy az egész lapot átmásolom valahová, kitörlöm a felesleges oszlopokat, majd utána a sorbarendezés/részösszeg.
Hali Tiba!
(csak a topic pezsgítése miatt :))
<<
A megoldás azért jobb, mint az előző, mert a listához nem kell hozzányúlni, az az eredeti módon megmarad
<<
Hát az
adatok / részösszeg / törlés
mire való?
A részösszeg meg még azért is jobb, mert szépen folyamatosan felsorolva láthatóak az adott vevők vásárlásai. A pivot-nál meg duplán rá kell kattintani az adott vevőhöz tartozó darab értékre (ahány cella, annyi klikk) a részletek megjelenítése érdekében, ráadásul mindet külön lapra teszi.
Hali Tiba!
(csak a topic pezsgítése miatt :))
<<
A megoldás azért jobb, mint az előző, mert a listához nem kell hozzányúlni, az az eredeti módon megmarad
<<
Hát az
adatok / részösszeg / törlés
mire való?
A részösszeg meg még azért is jobb, mert szépen folyamatosan felsorolva láthatóak az adott vevők vásárlásai. A privot-nál meg duplán rá kell kattintani az adott vevőhöz tartozó darab értékre (ahány cella, annyi klikk) a részletek megjelenítése érdekében, ráadásul mindet külön lapra teszi.
Lehet, hogy én vagyok lemaradva, de régebben a Word statisztikája nemigen volt aktuális. Ezt úgy tudtuk kikerülni, hogy nyomtatási képet kértünk. Ekkor valóban összeszámolja a Word a lapokat, így ez a progi működni fog. A néhány lapos doksival persze sosem volt gond, de a néhány száz oldalasakkal már igen.
Más megoldás:
Egy nésik munkalapon (vagy fájlban) Pivot tábla/kimutatás;
1. a szükséges adat az ügyfélazonosító oszlopa (praktikus a teljes oszlopot (oszlopokat) kijelölni, pl. A:A, nem pedik az A1:A300), és ha van, akkor dátum (hónap a legjobb számodra)
2. a kimutatás elrendezése: lenyíló ablakba a hónapot, oldalra pedig az ügyfélazonosítót. Az adatokhoz bármely oszlopot be lehet tenni, azt mutatja majd, hogy hányszor fordult elő az adott ügyfél.
A megoldás azért jobb, mint az előző, mert a listához nem kell hozzányúlni, az az eredeti módon megmarad + könnyebb frissíteni.
Tud valaki segíteni nekem abban, hogy:
van egy kb 5000 soros listám és szeretném kiválogatni, hogy egy oszlopában hány fajta adat szerepel. Ezek az adatok ügyfélazonosítók és arra lennék kíváncsi, hogy hány ügyfél keresett meg minket a hónapban. Persze egy ügyfél többször is szerepelhet az oszlopban.
Kicsit off a dolog, de remélem akad itt valaki, aki egy egyszerű kérdésre tud feleni.
Hogyan tudom VBA-ban lekérdezni egy Word dokumentum oldalainak számát? Mindet meg tudok számoltatni a karakterektől a bekezdéseken át a szekciókig, kivéve az oldalakat :(
> Minden topicnál vannak visszatérő kérdések, az excelben az egyik ez.
> Legalább hárman kerestek megoldást erre a problámára, úgy tudom sikertelenül.
> Legjobb tudásom alapján mondtam el, mit teszek én, a szóban forgó esetben.
> Ha egy feladat elvégzése más alkalmazást kíván az általunk elképzeltnél, nem igazán lehet mit tenni :(
Itt valami félreértés van, nem én keresem a megoldást! Ha lenne egy ekkora adatbázisom én meg tudnám oldani vagy így vagy úgy a feladatot!
Arról elmélkedtem csak, hogy nyugatabbra sem okosabbak az emberek, csak a főnökök, mert tisztában vannak azzal, hogy bizonyos feladatok megoldására nem sajnálják kifizetni a szakértői óradíjat.
Nekem egy problémám volt, a 415-re vártam valami infót, de közben az ott említett cégtől kint van valaki és a németek megadták a választ a kérdésemre a VBA-t illetőleg.
Minden topicnál vannak visszatérő kérdések, az excelben az egyik ez. Legalább hárman kerestek megoldást erre a problámára, úgy tudom sikertelenül. Legjobb tudásom alapján mondtam el, mit teszek én, a szóban forgó esetben. Ha egy feladat elvégzése más alkalmazást kíván az általunk elképzeltnél, nem igazán lehet mit tenni :(
> Nem akarlak elkeseríteni, de ekkora adathalmazt valamelyik adatbáziskezelővel kellene feldolgozni,
> és csak a szűrt, leválogatott adatokat átadni az excelnek a szép és profi kimutatások elvégzésére.
Igazad van, de nincs minden cégnél adatbáziskezelő szakember, olyan aki ezt meg is tudná csinálni.
De nem is kell, egyrészt nem érthet mindenki mindenhez, másrészt itt hiány van konzultációs egy v. néhány személyes
cégecskékből, akik ezt adott tarifáért megcsinálják via Internet (30-250 $/órát láttam a Neten).
> Én sem nézegetni akarom!! Kimutatást kellene az adatokból csinálni!!
Akkor meg minek átdobni Excelbe?
Én Excel 97-ben így csinálnám
Lépések:
- Kimutatásvarázsló
- Külső adatforrás
- Lekérdezés...
- Adatforrás kiválasztása ablak - dBase (ha még nincs: <új adatforrás>, és lógikusan kövesd le az ablakot)
- Oszlopok, azaz mezők kiválasztása
- Szűrő adatai, azaz feltételek létrehozása a rekordokra
- Rendezési sorrend
- Befejezés, újra az Excelben vagy és készítheted a kimutatást
Egyetlen buktatója van a dolognak, nem tudom van-e a dBase fájl felé limit a rekordok számára.
Az meg egy másik, hogy a létrehozott kimutatásba mit teszel, milyen szűréssel csinálod, mert
arra biztosan limit a 65536 sor, bár mi értelme egy túlrészletezett kinutatásnak...
Ha mégis a dBase -> Excel konverziót tartod járható útnak, csináld DAO-val, úgy a nagyon gyors.
Nem akarlak elkeseríteni, de ekkora adathalmazt valamelyik adatbáziskezelővel kellene feldolgozni, és csak a szűrt, leválogatott adatokat átadni az excelnek a szép és profi kimutatások elvégzésére.
Ez nem rossz, de nekem mindenféleképpen irányított szűrővel kell megoldani (persze lehet így is irányítottan szűrni), de úgy lenne jó, ha nem lenne segédmező!
2.) Lekérdezés DBF-ekből
> Igazából a DBF formátum lehetne bármi más.
> A feladat az lenne, hogy van egy rakás egy lapot tartalmazó fájlunk egy bizonyos könyvtárban,
> amik elnevezése DE[dátum].dbf, tehát pl. DE011001.dbf. Ezek A10:d10 tartománya tartalmazza a kívánt adatokat.
> Le kell kérni mondjuk egy hónap adatait, és egy munkalapon listát készíteni belőlük.
> Első megoldásként azzal próbálkoztam, hogy megadtam, mely dátumtól meddig kell
> egyenként megnyitni a dbf-eket és átmásolni az adatokat. Persze a hétvégék, ünnepnapok, egyéb hiányzó napok kimaradtak,
> a makró ezeknél hibaüzenetnél leállt. Utána írtam errorhandlingot, és jött a meglepetés.
> Ti hogy oldanátok meg a feladatot?
Fiatal barátom, Neked kimaradt a DOS az életedből. A fájlok elnevezésében benne a dátum DE011001.dbf, bár
nagyon szerencsétlen példát választottál, ebből nem látni magyar DEééhhnn.dbf vagy angol DEmmddyy.dbf,
vagy szláv DE0ddmmgg.dbf formátumú-e, mindegy, legyen pl. magyar. A dir DE0110??.dbf löki neked az összes 2001 októberi fájlt.
Az viszont már Excel, hogy a kinyert fájlnevek alapján hogyan jutsz hozzá az adataidhoz: megnyitod - másolod - bezárod módon,
esetleg DAO-val. Én ez utóbbival már írtam hasonlót egy cégnek, bár ott dbf helyett Excel táblák voltak a forrásfájlok, de a DAO-nak mindegy.
> olyan .dbf fájlt szeretnék beolvasni, mely 65536 rekordotnál többet tartalmaz. Mi lehet a megoldás??
Én meg azt kérdezem mi az ok amiért e ménkű adatot be akarod olvasni? Ennyi adatot nem szoktak csak úgy nézegetni.
Kimutatás, keresés, ..... MI? Könnyebb lenne válaszolni is.
Rég nem voltam itt, hogy vagytok? Hiányoztam? (Nagyon?)
Egy esetem van, érdekel másnak volt-e ilyen gondja:
Érdekes problémával bíztak meg a cégnél ahol időnként szakértek:
kaptak a német anyacégtől egy fájlt, ami nem megy. Nagy ügy, gondoltam - de tényleg nem ment.
Beolvasás után jön egy üzenet:
Microsoft Visual Basic
A VBA projekt le lett fordítva angolra.
OK és Súgó gombok.
No ilyet még nem láttam. Mi a franc ez? Súgó:
Windows Súgó
A témakör nem létezik. A frissített Súgó fájlt szerezze be az alkalmazás eladójától. (129)
A következő azonosító nem található: #1057080. Valószínűleg hiányzik a .HPJ fájl [MAP] szakaszából.
OK.
Kiokosodtam hát, lépjek is tovább. A táblában vmit számolgatnak, nem tudok németül, nem is szok érdekelni.
Gomb makróval. Kattintok.
Jó kis hiba, helyben vagyok, ezért adták ide, ezért fizetnek. Nézzem a kódot:
Range("M4").Select
Ez pedig jó. Akkor nézzem a hibakód súgójátt:
Súgó:
Automation error (Error 440)
? A franc ez, sem segít. Nincs mit tenni, elő a kisbaltát, az ilyenekkel durván kell bánni.
Első indulatomban kiexportáltam és töröltem az össz VBA modult, mentettem. Kilép - belép.
Új modul egysoros makróval: Range("M4").Select. Nem megy. Itt valami olyan van amiről én nem tudok!
Megoldottam más módon: táblákat átmásoltam egy új munkafüzetbe, az összes csatolást a Findlinkkel végigkereste, átírtam
(csak a gombokon, lenyílókon és listapaneleken volt, cellákban nem), makrókat vissza egy új modulba, a
FormulaR1C1 sorokat angolosítani kellett: WENN az IF a mezőelválasztó nem ; hanem, a Z4S13 pedig R4C13,
a ZS(-2) sem kerek, hanem szögletes zárójelű.
Ez a történet. Tud-e valaki ennek a hátteréről valamit, mi miért van, van-e egyszerűbb megoldás?
Gaboor:
Fapados, de gyorsan kivitelezhető megoldás automata szűréssel:
Ha A oszlop tartalmazza a beszerzési értéket és B az aktuális értéket, hozzd létre a C oszlopban a következő képletet =A/2-B.
Ezután szűrd C-t 0 értékre.
Sziasztok!
Ha lehet kérdeznék egyet!
Probléma a következő:
Van egy táblám, benne aktuális érték és beszerzési érték mezőkkel! Irányított szűrésben szeretném azokat a rekordokat lekérdezni, amelyeknél az aktuális érték már csak a beszerzési érték felét éri! Hogy nézzen ki a szűrési feltétel???
Help me, please!!!