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.
Örülök, mert ez nekem is újdonság volt. Ki is próbáltam, de még azt nem találtam meg, hogy miként tudom megakadályozni az "Invalid property value" hibaüzenetet. Lévén, hogy jobban szeretem magam fogalmazni a hibaüzenetet.
Köszi a linket. Sajnos itthon nem tudom kipróbálni végig, mert a 2013 Outlokban nincs .xls exportálási lehetőség, csak calendar, és vesszővel ellátott formátum. Az utóbbival próbálkoztam de ez így már nagyon bonyolult, mert excelből csak .csv-be tudok menteni, onnan meg megint át kell ültetni vesszősbe. Az egész tovább tart, mintha egyenként bevinném az eseményeket. :( Nem is értem miért butítanak ilyen irányba programot egy új verziónál. A Picture Managert is kiszedték.
Én úgy oldottam meg, hogy a programban a Combobox change eseményében annak .ListIndex tulajdonságát vizsgálom. Ha az -1, akkor a tartományon kívül eső elemet választott.
Na majd mindjárt megérted. Mint ahogy nekem meg ez a válaszod kellett ahhoz, hogy ne a Sugó-ban, hanem a Sugó menűben keressem a Hibajavítást. Mivel az olyan nüansznyi különbségeken, mint Sugó vagy Sugó menü, gyakran átsiklok :(((. Bár inkább :)))).
Bemásolod egy üres modulba a két makrót. Látod, hogy az elején a Function kulcsszót (így kell ezt írni?) találod, ami meghatározza, hogy ez egy függvény. A függvény két argumentuma, ahogy már Jimmy is írta, a Mintacella, és a Tartomany.
A SZUM függvény argumentuma a tartomány, amiknek az értékét összegezni akarod. Ennél a két függvénynél meg kell adnod első argumentumként azt a cellát, aminek a háttérszíne szerint akarod összegezni, ill. megszámlálni a második argumentumként megadott tartományban lévő, azonos háttérszínű cellákat.
Van egy sejtésem, de én mint látszik nem értek a makrokhoz. Csak felvettem a recorderrel gyakori cslekedeteket, elneveztem és amikor hasonló feladatokat kellett gépiesen megoldani elindítottam és megcsinálta. Ennyi a macro tapasztalatom. Ahogy próbálom értelmezni ezek saját függvények is lehetnének és ezeket lehetne egy cellában parancsként függvényként behívni. Így akár logikusnak is tünhet, de hova kell akkor beírni és hogy hívom elő fx-ekkel? Kicsit olyan ez nekem, mint amikor az ősembher kézigránát működését gyakorlatban próbálja tanulmányozni. Na jó, nem ősember, hanem viking harcos. :)
Bocs, de nagyon benne vok a kerekerdőben. Ha kitörlöm "Sub a() hogy indtsam el a macrot, mert "a" a neve. Kér vmi macronevet. Vagy nem a makrok megjelenítése menűből kell indítani?
Ezek a kések felhasználói függények. Úgy kell használni őket, mint a beépített függvényeket (SZUM, ÁTLAG, stb). A Mintacella és a Tartomany a függvény argumentumai.
Egyébként az egyik lapon kijelöltem egy tartományt, amelyet elneveztem "Mintacella"-nak.
A macrot A-nak. Próbáltam indítani és az elején lelökött. Ja, ha másik lapon akorom a műveleteket át kell lépnem a kérdéses lapra? Lehet olyamt, hogy a mintacella cella mellé írja az eredményt? Mi van akkor, ha több színt akarok összesíteni.? Csinálni kell az igény szerint "Mintacella1, Mintacella2, Mintacellan cellákat színezve és értelemszerűen annyiszor módosítva másolni a macrot?
Lehet elég gyógyi kérdések lehetnek, de ha már kést adtál a kezemb tudjam, hogy mit kell fogni és mivel vág:)
2 makró (nem írtam). Az egyik a mintacellának megfelelő hátterű cellák összegét adja, a másik ezeknek a darabszámát.
Function SumColor(Mintacella As Range, Tartomany As Range) 'A mintaként bejelölt hátterű cellákban szereplő számokat összegzi Dim rngCell As Range nColor = Mintacella.Interior.Color nResult = 0 For Each rngCell In Tartomany If rngCell.Interior.Color = nColor Then nResult = nResult + WorksheetFunction.Sum(rngCell) End If Next rngCell SumColor = nResult End Function
Function CountColor(Mintacella As Range, Tartomany As Range) 'Összeszámolja, hogy a mintaként jelölt háttérszínű cellából hány darab 'van a kijelölt tartományban. Dim rngCell As Range nColor = Mintacella.Interior.Color nResult = 0 For Each rngCell In Tartomany If rngCell.Interior.Color = nColor Then nResult = nResult + 1 End If Next rngCell CountColor = nResult End Function
Azt tudom, de néhézkes online számoltatni és világos + sötétebb zöld más szűrés. Az elegánsabb az, ha beszíneznel egy cellád mondjuk zöldre és a zöldek számolója azonnal eggyel nő!
Köszi, műkszik minden. Apropó volt régebben egy olyan problémám amiben segített volna egy fx, amely lefordítja a színeket RGB színkódokká. Arról van szó, hogy sok alapfelhasználó egy táblázatban manuálisan (nem feltételes) formázással színekkel jelöl cellákat. Ez jó, de későbbi gyors számolásokat nem tudok belőle indítani. Ha lehetne egy fx-t alkalmazni, amelyik meg tudná adni pl RGB kóddal a cella színét akkor utána akár ki lehetne számoltatni a pirosok, sárgák, zöldek számát!stb.