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.
Üdv, látom, nagyon profik vannak itt vba szkriptek terén is, máris van reményem.;)
Az access listára irtam, azt a választ kaptam, hogy szkripttel oldható meg, de fogalmam sincs, milyen access szkriptet kellene irni, és csak sql-hez értek.;)
Viszont akkor a másik oldalról fognám meg a probléma gyökerét, és talán ebben tudtok segiteni.
Adott rengeteg excel fájl, heti pénztár forgalmi adatokkal, 10 oszlop, 110 sor.
Access-be át kell másolni őket, de access-be csak egyesével lehet, abba beleőszülök.
Az lenne a legegyszerűbb, ha az excel fájlokat - mindegyik egy munkalapos - egyetlen fájl egyetlen munkalapjára, egymás alá be lehetne másolni, azt már - pici kézimunkával - be tudnám importálni access-be.
VBA, Integers are 16-bit signed types, when you perform arithmetic on 2 integers the arithmetic is carried out in 16-bits. Since the result of multiplying these two numbers exceeds the value that can be represented with 16 bits you get an exception. The second example works because the first number is first converted to a 32-bit type and the arithmetic is then carried out using 32-bit numbers.
Az excel ezt native-an is tudja, nem kell hozzá makró. A megoldás az INDIRECT (magyar: INDIREKT) függvény, de hosszú lenne írásban elmagyarázni. Mindjárt keresek egy linket ahol már készen le van írva.
sziasztok, én az execelen belül szeretnék egy legördülő listát létrehozni, ami eddig nem jelent gondot. Viszont van egy "A" lista(a főfeladatokról) és B lista(ami egyes főfeladatokat bont részfeladatokra). ha egy listába raknám mindezt, nagyon hosszú lenne kiválasztani az illetőnek a megfelelő feladatot, ezért szeretnék (makróval?) hivatkozni: ha kiválasztom a főlistából az adott feladatot, a következő cellában a legördülő lista az előbbiekben kiválasztott főfeladathoz tartozó részfeladatai jelennének már csak meg, szűkítve az egész részlistát. első ránézésre makróra gondoltam, de abban meg nem igazán vagyok otthon... Esetleg ötlet a megoldásával kapcsolatban?KÖszi!
Hát én első nekifutásra egyszerűbb dologra használtam volna. (Lehet, hogy egyszerűbben is mehetett volna...? Ki tudja milyen függvényeket rejt a most telepített csomag.) Szóval egyszerűen többjegyű számokat kellene kiiratnom véletlenszerűen betűvel. Az egyes oszlopokba beírtam a megfelelő neveket, majd az összefűz paranccsal és a most telepített INDIREKT-tel generálom a számokat - egészeket és tizedes törteket. De jó lesz ez még sokmindenre.
Szívesen, nekem is jutott ezzel a feladattal egy kis szórakozás.
Gyerekkorunkban szólásokat, közmondásokat cetlikre írtunk fel úgy, hogy az első felét egyik-, a másodikat másik színű papírra. Aztán húztunk 1-1 papírt a két halomból, és összeolvastuk.
A vezeték, és keresztnevek helyett most beírtam pár mondást, ilyen eredményeket kaptam:
Ja és nagyon kezdő számára melyik könyből lehet sok szemléletes példán keresztül megtanulni a makrozást? Nem egyetemi könyvre inkább valami excel for Dummies-ra gondolok.
Sziasztok, csak felszínesen ismerem az excelt - így is sok örömöm van benne - , de most olyan problémám van, amit nem tudom meg lehet-e oldani vele.
Olyasmi feladatról van szó, mint anno BASIC-ben egy ON x=1,2,3,4... Do a,b,c,d... féle játék, konkrétan mondjuk egy oszlopban van egy csomó szöveg (vagy szám) és onnan kellene egyet kiolvasni akár egy vél() gererálta érték függvényében. PL. az A oszlopban szerepel 20 vezetéknév, a B-ben 20 keresztnév és 1-1 vél()szám által generált érték alapján írjon egy random nevet egy adott cellába. (Remélem érhető voltam) Volna segítség?
Mielőtt átmásolod az oszlopot, az eredeti (F) oszlop tartalmát alakítsd át =F$3+$A4 stílisra (minden sorban, kivéve természetesen az első adatot (16:00)).
Megcsináltam hogy az egyik oszlop a menetidőket számolva kijön az alábbi képlettel:
=F$3+A4
A oszlop F oszlop
Moszkva tér 16:00
0:02 Városmajor 16:02
0:05 Budagyöngye 16:05 stb
Viszont ha egy 16:15-ös indulást vennék fel akkor nem másolja oldalra a számokat mindig érték hibát kapok, mert valahogy a megállót akarja hozzárendelni az értékhez amit nem értelmez. Hogy tudom odébbvarázsolni valahogy hogy mindig az A oszlop értékével számoljon?
Nem változtattam semmit, csak az event-et Calculate-ra (-re?).
Közben rájöttem, hogy nem kell volatile függvény, mert a figyelendő terület egyébként is függvény, szóval minden frissítéskor újraszámolódik és izgatja a Calculate event-et.
Private Sub Worksheet_Calculate() Dim wsLog As Worksheet, rLog As Range Dim rQuery As Range, c As Range, Hit As Range
Set wsLog = Worksheets("Munka5") Set rQuery = Range("B1", Range("B" & Rows.Count).End(xlUp)) For Each c In rQuery Set rLog = wsLog.Range("B" & Rows.Count).End(xlUp).Offset(1) Set Hit = wsLog.Range("B:B").Find(what:=c.Value, after:=rLog, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious) If Hit Is Nothing Then rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value rLog.Offset(, 2) = Now ElseIf Hit.Offset(, 1) <> c.Offset(, 1) Then rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value rLog.Offset(, 2) = Now End If Next End Sub