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.
Egy Excel táblázattal kapcsolatos problémámra szeretnék segítséget kérni.
Csináltam egy táblázatot, amellyel a munkaidőmet(kezdés-végzés), km-ert, men.levél sorszámot stb. vezetem évek óta. Az Excel göngyölíti, kiszámolja a fogyasztást meg mindent amit akarok.
Eddig minden rendben ment, kiszámolta az óráimat (is), a kezdés-végzés adatok alapján.
Mostanában viszont vannak olyan műszakjaim, amikor éjszakás vagyok, pl. 19.00-kor kezdek, és másnap reggel 7.00-kor végzek. Ezt jelenleg nem tudja feldolgozni.
Nem találok megoldást, nem tudom kezeltetni a táblázattal.
Azt szeretném megkérdezni, hogy mi a módja annak, hogy nappali, és éjszakás, másnapra átnyúló időpontokat is tudjak vele számoltatni?
Előre is köszi a segítséget!
P.S.: Valószínűleg csak késő délután leszek, mert sajnos menni kell a 2. munkába. :-D
Kimutatás varázsló - Több tartomány (összesítés) Ha nem találod a 2007-esben, akkor fel kell tenned a gyorselérési eszköztárra: Excel beállításai - Testreszabás - Kimutatáseszközök|Beállítás lap
Bocs, hogy így ismeretlenül, de szeretném a segítségeteket kérni, ebbe beletört a bicskám:
Adva van 20 sheet, rajta sok-sok sor és oszlop (többezer sor, 90 oszlop). Minden sheet-en van egy vagy két oszlop ("leírás1" és "leírás2"), ami tartalmazhat egy bizonyos karatersort (cellaformátum: szöveg), ami nekem most érdekes ("cukor"). Csinálnom kell egy olyan összesítő sheet-et, ami az összes sheet összes olyan sorát tartalmazza, ami tartalmazza a "leírás1" és/vagy "leírás2" oszlopban a "cukor"-t.
Vmi ötlet esetleg? (magyar 2007-ben próbálkozom...)
Szerintem is jó kis feladat, az eseménykezelős már müxik, kiváncsian várom a végleges UDF-es megoldást. ;-) Jó lenne megtudni, hogy MixM topictárs tudta-e hasznosítani az eddigieket.
ps. egyébként teljesen feleslegesnek tartok erre scriptes megoldást (legyen az UDF vagy eseménykezelős) mert ha jól értem a cél itt csupán a figyelem felkeltése, hogy túl sok munkanap követné egymást - ami gondolom PTK-ba is ütközik. Erre tökéletesen elég, ha az a "P" betű lesz színes, ami után 6-nál több munkanap van. Ezt pedig feltételes formázással meg is lehet csinálni a beépített függvények segítségével. (Lsd "Előzmény")
Ezt a függvényt nem egészen értem. Leírásodból azt véltem kivenni, hogy a cella feltételes formázásában, a "képlet értéke" módban kell használni.
Ez logikusan azt jelentené, hogy ha pl. a C3 cella formázásánál használom, akkor a függvénynek a C3 cellára vonatkozóan kellene meghatároznia IGAZ vagy HAMIS értéket, és a feltételes formázás ettől függően pirosít vagy nem pirosít.
- Így van.
És egy észrevétel: a 'sor' változót szerintem Byte helyett Long típusra kellene beállítani, mert Byte-ként legfeljebb 255 lehet az értéke, egy excel munkafüzet pedig legalább 65536 sort tartalmaz.
- Ez szándékos volt, mert tudtam, hogy nem leszz 255-nél több.
De mivel a függvény Volatile, újra kiszámolja C3-ra, amivel újra felülírja C4-et, és ez így szerintem végtelen ciklus. Nekem lefagyott az Excelem, amikor kipróbáltam.
- Ha az utolsó If... End If nélkül próbálod, akkor működik, ez esetben csak azokat a "P"-ket színezi, amelyek után 6-nál több <> "P" van.
Ezzel az If-el az volt a célom, hogy True értéket kapjanak azok a cellák is, amelyeknél a "P" után 6-nál több <> "P" van.
Hogy végtelen az lehet... Nem tudtam hogy fog viselkedni a volatile, ha az utolsó If .... End If -ben lévő sorokkal "utólag" "belepiszkálok"
Tegyük fel, hogy Munka1 lapon, A1:A365-ben vannak a dátumok, B1:B365-ben az értékek, továbbá Munka2 A oszlopában vannak az intervallumok kezdő dátumai, B oszlopban pedig a végdátumok.
Ezt a függvényt nem egészen értem. Leírásodból azt véltem kivenni, hogy a cella feltételes formázásában, a "képlet értéke" módban kell használni.
Ez logikusan azt jelentené, hogy ha pl. a C3 cella formázásánál használom, akkor a függvénynek a C3 cellára vonatkozóan kellene meghatároznia IGAZ vagy HAMIS értéket, és a feltételes formázás ettől függően pirosít vagy nem pirosít.
Mivel ezt a formázást az összes cellára be kell állítani, nem értem, hogy a függvény miért akarja a szomszédos cellák értékét felülírni? Egyrészt, nem biztos, hogy csak P betű és üres cella van ebben a táblázatban, így a függvényed adatvesztést okozhat. Másrészt, a szomszédos cellák pirosságát ugyanezzel a függvénnyel kellene meghatározni, nem?
Tegyük fel, hogy C3 és C4 cellák feltételes formázásában szerepel ez a függvény, tehát C3 piros, ha ErrRed(C3)=IGAZ, C4 pedig piros, ha ErrRed(C4)=IGAZ
Excel kiszámolja C3-ra. Közben felülírja C4 értékét. Erre, mivel a C4 feltételes formázás bemenő értéke megváltozott, kiszámolja C4-re is. De mivel a függvény Volatile, újra kiszámolja C3-ra, amivel újra felülírja C4-et, és ez így szerintem végtelen ciklus. Nekem lefagyott az Excelem, amikor kipróbáltam.
Lehet, hogy nem jól értem a felhasználás módját, de nekem itt valami nem gömbölű...
És egy észrevétel: a 'sor' változót szerintem Byte helyett Long típusra kellene beállítani, mert Byte-ként legfeljebb 255 lehet az értéke, egy excel munkafüzet pedig legalább 65536 sort tartalmaz.
excel problémám a következő. van egy munkalapom az év napjaival, hozzárendelve minden naphoz egy érték. egy másik munkalapon pedig minden sorban egy időintervallum egy kezdő és egy végdátummal. (tetszőleges számú nappal egy intervallumban,).
namost a feladat az, hogy minden sorban adjam össze az ahhoz az intervallumhoz intervallumhoz tartozó értékeket egy új oszlopban vmi függvénnyel, de eddig nem jött össze, úgyhogy hilfe!
az (As Boolean) a fgv-hez nem jó, mert futásközben ettől eltérő értéke is van. Az (ER As Range) jó, de szerintem emiatt sem lehet hiba (illetve nem is volt)
Ha nincs a kommentezett sor, akkor megy szépen a függény, helyesen true értéket ad azokra a cellákra, amelyekben "P" van és utána 6-nál több egyéb cella. A kommentezett sor előtti sorban meghatározott Range tartalmazza azt a tartományt, amelyekre még true-t kell kapni, hogy a feltételes formázás érvényesüljön.
Ezt akarom a kommentezett sorral true-ra állítani, de a függvény hibaértékekkel tér vissza. (Nem vba hiba)
Az a helyzet, hogy ezt szerintem pár soros UDF-el meg lehet csinálni, amit feltételes formázásként kell megadni és boolean-t ad vissza a fgv.
Most így néz ki, de szeretném a segítségeteket kérni:
Function ErrRed(ER)
Dim ERRange As Range, oszlop As Byte, sor As Byte, ERRangeColor As Range oszlop = ER.Column sor = ER.Row Set ERRange = Range(Cells(sor, oszlop + 1), Cells(sor, oszlop + 31)) Application.Volatile If ER = "P" Then ErrRed = Application.Match("P", ERRange, 0) Else ErrRed = 6 ErrRedColor = ErrRed ErrRed = ErrRed > 7 If ErrRed Then
Set ERRangeColor = Range(Cells(sor, oszlop + 1), Cells(sor, oszlop + ErrRedColor - 1)) ERRangeColor.Value = ErrRed ' ez az egy sor nem jó, nem tudom hogy kell a "range" cella értékeit "IGAZ"-ra állítani
For i = 1 To meddig If UCase(Cells(Target.Row, i)) = "P" Then If i - figyel >= 6 Then Range(Cells(Target.Row, figyel), Cells(Target.Row, i)).Interior.ColorIndex = 3 figyel = i Else: figyel = i End If End If Next i
If meddig - figyel >= 6 Then Range(Cells(Target.Row, figyel), Cells(Target.Row, meddig)).Interior.ColorIndex = 3
For i = 1 To meddig If UCase(Cells(Target.Row, i)) = "P" Then If i - figyel >= 7 Then Range(Cells(Target.Row, figyel), Cells(Target.Row, i)).Interior.ColorIndex = 3 figyel = i Else: figyel = i End If End If Next i
Ezt én úgy értelmezem, hogy nem pihenőnap nem lehet több, vagyis ha a sor elején több nem P-s cella van, az sem jó. Mondjuk csak a 8. napot akarják kiadni szabadnapnak.
Nem értem. A nem "P"-t tartalmazó cellákat miért kellene színezni? A feladatban nem az van, hogy a "P"-k közötti cellákat kell színezni, ha az több mint 6?
Ez nagyon jól néz ki, de ennek is az a hibája, hogy a sorok elejét és végét nem rúzsozza ki.
Ha megoldod ezeket, nem bajlódom az enyémmel, úgyis csak este felé leszek számítógép közelében. Az is jó, hogy eseményt kezelsz, nem kell külön indítani.
Az én makrómnál a sor eleji ellenőrzéshez a Next oszlop mögé be kell tenni a t=False sort.