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.
Írtam egy UDF-et (ez volt az első). Az a baj, hogy nem jól működik!
A kód:
Function MinKereso(Tartomány As Range, Lépték As Variant) Dim MyRange As Range Dim Min, Oszlop As Integer Min = Application.WorksheetFunction.Max(Tartomány) Oszlop = Range(Tartomány.Address).Column If Lépték <= 0 Then MinKereso = "Hibás lépték!" Exit Function End If For Each MyRange In Range(Tartomány.Address) If ((MyRange.Column - Oszlop) Mod Lépték) = 0 Then If MyRange.Value <= Min And MyRange <> 0 Then Min = MyRange.Value MinKereso = MyRange.Value End If End If Next If MinKereso = Empty Then MinKereso = 0 End If End Function
A kijelölt tartomány minden negyedik cellájáinak a minimumát adja, a nullát kihagyja. A probléma az, hogy ha ez a képlet "=MinKereso(B4:AA4;3)" több munkalapon szerepel, mindig az első munkalap tartományában dolgozik.
A kérdés, hogyan lehet egy UDF-et csak az aktuális munkalapra tartományára hivatkoztatni?
A három pont nálam azt jelenti, hogy "jól van, mondjad csak a hülyeségedet, de most már jó lenne befejezni". (Bocsánat a stílusért (vagy annak hiányáért).)
Általában ez inkoherens a környezetében lévő hozzászólásokkal és inkongruens a közlő szándékával, ezért inkább nem értem, mitsem félreértsem. A szmájli a végén meg teljesen érthetetlenné teszi számomra. :)
Van párszáz fájl (asszem valami 182 körül, de végülis mindegy), amik textfájlok, jegyzettömbben szerkeszthetőek (egy programnak a bemenő adatai, változók értékeit olvassa be belőle).
A fájlok tartalma struktúrált, tabulátorral tagolt. A legkönnyebb Excelben szerkeszteni és makróval kimenteni őket munkalaponként külön-külön fájlba (és ez a gyakorlat is).
Jelenleg az a megoldás, hogy ctrl+A, majd jegyzettömbben beillesztés, mentés. Ez sok változás esetén macerás, makróval gyorsítható.
Ez a makrós mentés szépen megy is, de ha az előző fájl már létezik, megkerülhetetlen külső ok miatt rajta van a read only bit. Ha nem új munkalapot hozok létre, hanem a tartalmát módosítom, akkor nem tudja felülírni a már létező fájlt (meglepő módon :P). Megoldásként le kéne venni róla a read only bitet, majd a kimentés után visszatenni.
Ha nagyon nincs min gondolkodni, nekem lenne egy kérdésem: makróval hogyan tudom egy adott fájlról levenni a read only bitet (és persze visszatenni rá)? (Ha esetleg nem fejezném ki magam elég jól: a batch fájlokból megszokott attrib -r megoldás VBA alapú verziójáról lenne szó.) :) De van esetleg erre valami megoldás?
Most az A oszlopban nem a két megálló közötti menetidő van, hanem a végállomástól a megállóig szükséges teljes menetidő (természetesen tartózkodással növelve, tehát menettartam). Tehát ha három perc alatt ér oda, akkor csak a hármat kéne hozzáadni, nem a kettőt. :)
Azt hiszem itt az excel elejétől kellene kezdeni a dolgot... Félretéve a tréfát!
Gondold végig mit szeretnél:
- Ha az A oszlopban a kiinduló állomástól való távolság van időben (szerintem Te ezt szeretnéd), akkor a kindulási időhoz hozzá kell adni az aktuális sor A oszlopában lévő számot
- Ha az A oszlopban az állomások közti távolság van idóben (erre adtunk neked eddig választ), akkor a kiindulási időhöz hozzáadtuk az addig eltelt összes idő.
Az első változtatra a képlet(C2-es cella): =C$1+A2 (ez azt jelenti, hogy a C1-hez hjozzáadja az A2-es cella értékét, ezt kell lehúzni)
Ha az adatraid az A, B, C oszlopban vannak, és a C1 cellában van a kiinduló idő, az A oszlopban az állomás közti menetidők, és Te mindig a C1-es cellához akarod hozzáadni az addig eltelt menetidő, akkor a C2-e cella képletet a következő:
Szóval az állomás előtti időadatot hozzárendelem a menetidőhőz 2 cellát megcsinálok és akkor le tudom húzni végig és így lépteti a menetidőt. Eddig jó.
DE hogy lehet azt megcsinálni hogy a kiindulási időhöz (13:00) lenne az egész alapja, és a megállók mellett a menetidőt rendelné hozzá? tehát:
0:00 Árpád híd
0:01 Váci út
0:03 Népfürdő u.
0:05 Margit sziget..
Mert bárhogy rendelgetem hozzá mindig a legutolsó vagy az azelőtti cellához akarja hozzányomatni a következő idejét, és pl a Népfürdő utca és a Margit sziget között 6-8 percek jönnek ki egy 2 perces útra.
Valamint hogy tudom eltüntetni ezt a kék L betűs függvénymoló izét a számadatok mellől?
A bug miatt csak egy ponton elmenti a fáljl, kilép és visszatölt. Utána már működik. A nagyobb baj az, hogy 2003-ban is működik, 2010-ben is, de épp a 2007-ben nem! :-(