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.
"Az abszolút hivatkozást én az FKERES-nél szoktam használni viszonylag gyakran, még a képlet lehúzása előtt, különben a "tartományban keres" szépen elcsúszik... :("
Ezért jó ha elnevezed a tartományt, akkor nincs ilyen gond és még jobban is olvasható! :-)
A birtokszerkezetet sztem felejtsd el. Ezt csak egy embertől fogadom el, és az nem te vagy.
Irodalma a témának óriási van magyar és angol (meg gondolom cseh, lengyel stb. :) ) nyelven is, érdemes valami középiskolai táblázatkezelős tankönyvet keresni. A Műszaki Kiadónak vannak egész jó könyvei a témában. :-)
De ilyen alap dolgokat, mint HA, FKERES, VKERES stb. egy 300 forintos, 5-ös Excelhez írt könyv is tudja. :) (Persze sztem érdemes valamilyen relevánsabb kiadványra beruházni, hátha érdemes lesz lapozgatni később is. :) )
Igazából gyakorolni kell, nagyon sokat. Annál jobbat nem tudok elképzelni.
Nincs valami kis oktatóprogram valahol vagy leírás az alap dolgokról? mert itt tök jól elmondjátok csak gondoltam lementeném hátha pár év múlva is szükségem lehet rá :)
Ha a D1-be azt írod, hogy =A1, majd ezt másolod, akkor a hivatkozás minden más cellában átalakul úgy, hogy a balra háromra levő cella tartalmára fog hivatkozni. Ezt nevezik relatív hivatkozásnak, mert tulképp te nem az A1-es cellára hivatkozol logikailag, hanem a D1-től balra háromra lévőre (ami formailag az A1).
Ha azt írod be, hogy =$A$1, majd másolod, akkor minden cella pontosan az A1-es cellára fog mutatni. Ezt abszolút hivatkozásnak nevezik, mert akárhová másolod a D1-ből a képletet, mindig pontosan az A1-et fogja meghivatkozni.
Persze nem feltétlenül kell a sor és az oszlop abszolút hivatkozását együtt használni vagy egyszerre elhagyni, lehet keverni is: csak a sor vagy csak az oszlop abszulivitását használni. Akkor jön jól, ha pl. egy szorzótáblát csinálsz, ahol az egyik tényezőnél a sor adott, de az oszlop mindig más, a másik tényezőnél pedig pont fordítva. Ekkor pl. a B2-be írhatod, hogy =B$1*$A2. (Egyébként az F4 lenyomásával kivarázsolható ez a hivatkozási forma az Excelből, ha a szerkesztőlécen a cella hivatkozásán állsz.)
Az abszolút hivatkozást én az FKERES-nél szoktam használni viszonylag gyakran, még a képlet lehúzása előtt, különben a "tartományban keres" szépen elcsúszik... :(
Bár nem exeles kérdés.. Vista oldalsávon az időjárásnál eltünt a kép (napocska vagy felhő) csak piros X lásztik. Leválaszottam újra felraktam, nem javította meg. Valakinek hasonló gondja volt, mi lehet a megoldás?
Ha esetleg valakinek még ilyen problémája lenne, a jól működő 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) ' Ez a sor volt a rossz
For Each MyRange In Tartomány ' Így jó 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 = "Nincs ilyen cellaérték" MinKereso = 0 End If End Function
Esetleg csinálj három képet a háttérképedből az eredeti szétvágásával, és tegyél egy darabot a D3:F4, egyet a C2:C6, egyet pedig az B3:B6 cellákra és tedd egymás mellé őket. :)
Kicsit még nem értem ezeknek az UDF-nek a lelki világukat.
Nem tudom mikor futnak le.
Az én esetemben amikor lefut, akkor az összes munkalapon végigmegy, és számolja a képleteket, és valami oknál fogva az első munkalap tartományban számol, pedig a képlatben nincs munkalap hivatkozás, lehet ez a baj?
Az lett egy megoldás, lehet csak köztes, de így működik, hogy a thisworkbook-ba betettem az sheetactivate-hez egy calculate-ot, ami annyit jelent, hogy minden munkalap váltásnál újraszámol, és frissít mindent szépen!
"Bár biztos megoldható az is amit te szeretnél, txt fájlokat kezelni excelből."
A felülírás nagyon szépen megy (menne), sőt, a tartalmat is össze tudja hasonlítani, hogy egyáltalán felül kell-e írni a fájl tartalmát. De én úgy vettem észre, hogy az Excel (és a VBA) nem nagyon támogatja az ilyen szintű fájlműveleteket... :-(
Külön könyvtárba: ez is egy lehetőség, de szeretnék felhasználóbarát megoldást. ;-)