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.
valaki tudna nekem segíteni, hogy hogyan tudom fkeres függvénnyel visszaadni egy adott cella alatt 4 sorral lévő cella értékét? magyarul hogy tudnám visszaadni ebben a táblában a különböző változók értékeit?
Egy másik checkbox-al a színét így tudod ki- és bekapcsolni:
Private Sub CheckBox2_Change() If CheckBox2.Value = True Then ActiveSheet.Shapes("Negyzet").Fill.Solid ActiveSheet.Shapes("Negyzet").Fill.ForeColor.SchemeColor = 10 ElseIf CheckBox2.Value = False Then ActiveSheet.Shapes("Negyzet").Fill.Visible = msoFalse End If End Sub
Egy modulból hozzáadtam a munkalaphoz egy alakzatot:
Sub Alakzat() With ActiveSheet.Shapes.AddShape(msoShapeFlowchartProcess, 201.75, 159#, 72#, 48#) .Name = "Negyzet" End With End Sub
A lényeg, hogy nevet adtam neki: "Negyzet"
Ezután a visual basic eszköztárról kiraktam egy checkbox-ot, és annak a programja:
Private Sub CheckBox1_Change() If CheckBox1.Value = True Then ActiveSheet.Shapes("Negyzet").Visible = True ElseIf CheckBox1.Value = False Then ActiveSheet.Shapes("Negyzet").Visible = False End If End Sub
Ha ki van pipálva, akkor látszik az alakzat, aha nincs akkor nem!
Ezt a kérdést a Városi és elővárosi közlekedés (VEÉK) fórumban tessék feszegetni, ott vannak releváns személyek is. :)
"hanem az érkezés időpontját?"
Indulást szoktak feltüntetni :), és egyre több helyen az a gyakorlat (igen, a BKV-n belül), hogy az adott megállóból való indulást szerepeltetik. Mivel minden táblát le kell gyártani (meglepő módon), akkora nagy pluszköltséget nem okoz a dolog, de még nincs így mindenhol, valóban. Talán majd egyszer....
(Azt hiszem, ha változik a menetrend, és újra kell nyomni a táblákat, akkor van ilyenre lehetőség, külön nem fognak menetrendet gyártani, ha az időadatok nem változnak, éppen a költséghatékonyság jegyében, de pontosabb infókat nem tudok.)
HA már felmerült a téma, olyan menetrendet nem lehet excelezni, hogy ne az egymást követő állomások időben mért különbségét lehessen látni, hanem az érkezés időpontját?
Engem pl. tök idegesít, hogy egy BKV busz esetén ki kell számolnom, hogy akkor mikor fog adott helyre érkezni a busz! Igaz, akkor minden megállóba más papírt kéne kitenni, de nem hiszem, hogy ez akkora gond lenne ma már!
Nem bántottál meg, megszoktam már, hogy ez egy férfias világ... (Itt nyúlván nem erről van szó, de nem ráz meg, ha oltanak, ez a lényeg.) :)
Az én megoldásom elméletét bemásoltam, kérlek mondd meg, mondjátok meg, mit csinálnál, csinálnátok másképpen, egyszerűbben (én gondolkoztam a makrókban is, de akkor még teljesen az alapoktól kellett volna tanulni, nulla előképzettséggel, könnyebb volt képletekkel, most már más a helyzet).
Hát, a legperverzebb ötletem (amivel anno én csináltam), hogy külön cellában kezelem az órát, a percet és a másodpercet (S-Bahn menetrend volt, ott kellett a másodperc is, de módszertanilag semmi extra). És tudta kezelni az éjfélt is. A kavar az volt, hogy ha a vonat valahol áthalad, akkor csak indulási időadat van, érkezési nincs (ha a tartózkodás üres, akkor halad át). Ez azért gond, mert hol az érkezési, hol az indulási adatot kapom meg az előző indulás + menetidőből, attól függően, hogy a tartózkodási idő cellája üres-e. Az működött, de gonosz módon nem is adom ingyen. :-)
A legeslegperverzebb pedig az, hogy az órát csak akkor írja ki, ha változik az előzőhöz képest, de az első és az utolsó előfordulásnál mindig szerepelteti. Ez egy másik munkalapra került, másképpen megformázva (kicsit a MÁV szolgálati menetrendje alapján). Itt már volt valami gond: azt hiszem, az éjfélt nem mindig tudta kezelni.
Az itt már elhangzott megoldás kellően sok csacsogással megfűszerezve és a saját szavaimmal előadva, tizenegyedikei keltezéssel (részlet):
Na, ezt meg lehet csinálni. :)
Csinálj egy menetidős oszlopot, és oda kell beírni, hogy hány perc legyen az út. De arra vigyázz, hogy ne számnak legyen formázva, hanem időnek, és akkor jó lesz. :)
(Az indulási időket úgyis időnek kell megformázni, és az Excel ugye úgy dolgozik, hogy asszem 1904. január 4-től számolja a napokat. Tehát ha 35131-et írsz be, az egy konkrét napot határoz meg. Ha időt akarsz megadni, azt pedig törtként: tehát a 35131,5 az eme konkrét napnak a dele, azaz 1996. március 7. 12.00 lesz az. :-) Az Excel így kezeli a napokat, időpontokat, függetlenül a megjelenítéstől, azaz hogy te csak dátumot, csak időpontot, illetve ezek valamilyen formátumú kombinációját, töredékét akarod kiíratni.)
Tehát: minden időnek legyen formázva, és akkor a szerkesztőlécen be tudod állítani a menetidőt, és ezt kell görgetni.
Ha többfajta menetidővel kell dolgozni (pl. más-más sebességcsoportokra), akkor vegyél fel több menetidő-oszlopot, és mondjuk egy HA függvénnyel a vonatszám alapján eldöntöd, hogy melyik idővel kell számolnod (pl. HA(vonatszám>37000;kisebb_menetido+elozo_indulas;nagyobb_menetido+elozo_indulas).
Csak arra bátorkodtam célozni, hogy számomra nem nyilvánvaló, mit is mondtál neki. Ha látom, talán magam is meg tudom mondani, mi nem jó benne (már ha tényleg hibás elgondolás), és akkor tudok itt villogni vele.
Az is eszembe jutott, hogy esetleg két nicken írsz, és néha kevered őket. Vagy ilyesmi.
Amúgy a topik "szétoffolása" nem végzetes hiba, megtörtént már párszor, és mindenki túlélte ;-)
Sőt, szerintem jót tesz a közösségi szellemnek, ha néha van egy kis csevej kevésbé szakmai dolgokról.
Hát, erre én sem tudom a választ. Én arra gondoltam, hogy Snoopy válaszol nekem, hogy mi volt a baj... De nem így történt, hanem offoljuk szét a fórumot ezerrel.
Ezekbe az idős dolgokba, jól el lehet keveredni eleinte.
A lényeg, hogy mindig nézd meg, hogy az adott cella milyen formátumú, dátum, idő, általános stb.
Az idő és dátum formátumnál, mást amit látsz és más az ami a cellában van.
Időnél mindig egy olyan számot tartalmaz, aminek a törtrésze (azaz a tizedes pont utáni része) határozza meg az időt!
Ha a törtrész 0, akkor éjfél van, ha törtrész ,5 akkor déli 12, stb. Így egy perc az 1/60*24, tehát ha a két megálló közt 2 perc a menetidő, akkor nem 0,002-t kell hozzáadni, hanem 2/60*24-et. Azzal működne, de amit az urak ez előttem szólóak javasoltak, sokkal elegánsabb.
De miért nem töltöd le az egészet a BKV honlapjáról? Esetleg náluk dolgozol és készül az új menetrend?