-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
KaliJoe
tag
válasz
Fferi50 #53582 üzenetére
Szia Fferi50,
Evvel a javítással (perjel helyett visszaperjel avagy slash helyett backslash) és úgy, hogy elő és mögé beírtam a { illetve } jeleket, plusz beleállva nyomtam CSE-t úgy ott kapcsozta be ahol kell, nem az elején. Szintaktikailag helyesebb lett a képlet, noha a slash-t is elfogadta..., és kiterjesztés után, kisvártatva megjöttek a számok is. Hurrá!
Köszönöm mindenkinek!
-
KaliJoe
tag
Szia Mutt,
sorok név javítva ÖsszSor-ra.
A2 javítva A1-re. Azt hittem elírás, de akkor mégiscsak úgy kellett és nem értettem a képletet.
Tömbképlethez CSE nyomva, de az egész = jel utáni részt kapcsos zárójelezte. A függvény így már szintaktikailag helyes lett..., de nem működik. Minden számhármasra 0-t hoz eredményül, ami biztosan téves. Ellenőriztem - szűrő funkcióval, és tutti van 1-2-5, 1-2-6, és 1-2-7 is. De nemcsak ezekre, az összesre nullát hoz. :-(
Várom válaszod.
-
KaliJoe
tag
Kedves Mutt,
Annyira tetszett a képleted és a megoldás (hogy nem kell hozzá makró), hogy úgy döntöttem veszek frissítést és áttérek az Office 2021-re, csak hogy azzal oldhassam meg a problémát.
Akadt némi gondom a verzió frissítéssel, de ma meglett az is. Azonnal nekiugrottam, beírtam a képletet, de sajnos nekem nem működik.
Jelenleg ez szerepel a cellában:=LET(Adathalmaz;INDIREKT("A2:E" & Öhsz;IGAZ);Sorok;SOROK(Adathalmaz);Adatsor;INDEX(Adathalmaz;SOR(INDIREKT("A2:A" & Sorok));1/2/3/4/5);aoszlop;INDEX(Adatsor;0;1);boszlop;INDEX(Adatsor;0;2);coszlop;INDEX(Adatsor;0;3);doszlop;INDEX(Adatsor;0;4);eoszlop;INDEX(Adatsor;0;5);SZUM(((aoszlop=K2)+(boszlop=K2)+(coszlop=K2)+(doszlop=K2)+(eoszlop=K2))*((aoszlop=L2)+(boszlop=L2)+(coszlop=L2)+(doszlop=L2)+(eoszlop=L2))*((aoszlop=M2)+(boszlop=M2)+(coszlop=M2)+(doszlop=M2)+(eoszlop=M2))))
Ez jelenleg annyiban tér el a tiédtől, hogy a ;1/2/3/4/5 (amit nem is értek, hogy mit jelent, és mire való, hogy azok nem szerepelnek {} kapcsos zárójelek között. Ha az ott tömbképlet akar lenni, akkor nem tudom (ebben az esetben, hogy csak azt alakítsa tömbképletté), hogy hogyan kellene azt beírni. Ha meg simán beírom a kapcsos zárójeleket elé és utána, akkor képlethibával el sem fogadja.Mit csinálok még mindig rosszul? Vagy mit nem csinálok? Tudsz ebben segíteni?
Előre is köszönettel, KaliJoe
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53534 üzenetére
Szia Fire,
Uppsz, ez Excel 2019-es. És nem aposztóffal írtam, és nem ismeri a LET függvényt. De Névmegadást / elnevezést használhatok hozzá akkor is, nemde?
-
KaliJoe
tag
válasz
Fire/SOUL/CD #48498 üzenetére
Szia Fire/SOUL/CD,
Ha jól értem a problémát nekem erre van egy szebb (igaz, nem egy képletben megfogalmazott) megoldásom. Ha érdekes - hálából
- elküldhetem Neked.
-
KaliJoe
tag
Szia Mutt,
Le vagyok nyűgözve.
Ez a megoldás azért tetszik legjobban, mert nem használ Makrót, és mert Excel2021-ben is működik.
Holnap... ööö... azaz ma ki is fogom próbálni.Megjegyzem már én is attól tartottam, hogy makrót kell írnom hozzá, de Ti zseniálisak vagytok. Köszönöm értékes segítségeteket.
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53525 üzenetére
Szia Fire/SOUL/CD,
Igen, találat!
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53523 üzenetére
Szia Fire/SOUL/CD,
Feri érti jól az #53524-ben.
Tehát az (5 számot tartalmazó) adatbázis rendezett, balról jobbra növekvő.
A keresett számhármas rendezett, balról jobbra növekvő, ezért a 3-10-12 lehetséges csak, a 10-3-12 nem (mert a műveleti / eredeti) adatbázis rendezett, ott nem fognak így szerepelni.
Viszont - ahogy Feri jól értette - a 3-10-x-12 (ez esetben x csak 11-gyel lehet egyenlő),
vagy szemléletesebb példán a 8-20-42 számhármas, lehet úgy, hogy 8-x-20-y-42, vagy x-y-8-20-42, 8-x-y-20-42, és ezek lehetséges permutációi, stb. Tehát, az elé- közbe, utána ékelődés minden verziója megengedett.
Feri jól mondja:Az viszont sehol nincs feltételként megadva, hogy a keresett számoknak közvetlenül egymás után kell az adott sorban lenniük, csak az, hogy legyenek benne a sorban.
-
KaliJoe
tag
válasz
Delila_1 #53518 üzenetére
Szia Delila,
Ezt már az eredeti #53516-ban is leírtam, hogy működik. DE...!!!, nem csak ez a feladat.
Hanem ezeket úgy kell kombinálni, hogy egyszerre mondja meg, hogy az adott számhármas létezik az (teljes) adatbázisban és ha létezik, akkor pontosan hányszor fordul elő?!
-
KaliJoe
tag
Szia Mutt,
Excel 2021-et használok.
OK, értem a SZORZATÖSSZEG megoldást, de az nem teljesen az, amit keresek. Ugyanis nemcsak egy darab számhármast keresek, hanem nagyon sokat, és azt kellene megmondanom, hogy egy adott számhármasból hány darab van a bázisadatként szolgáló adatbázisban. Tehát össze is kell számolni, hogy hányszor találom meg - a Te példádat véve alapul - a 3, 10, 12 számhármast? Aztán nézem / keresem a következő például 4, 8, 20; majd a 4, 8, 21 számhármast és így tovább.
Azt szeretném, hogy megjelenítem a számhármast, majd mögé írom, hogy hányszor található meg az adatbázisban. A következő sorban meg a következő számhármast, és hogy hányszor van meg.Így érthetőbb a probléma?
-
KaliJoe
tag
Sziasztok,
Soronként ötös számcsoportokból (mindegyik szám külön cellában), hármas számcsoportok gyakoriságát szeretném meghatározni. Egyelőre több száz sor, később lehet több is. Az ötös csoportok soronként rendezettek, vagyis A<B<C<D<E, számismétlődés nincs. Öhsz=sorok száma. Ezért a DARABHA függvényt akartam használni.
A-tól E-ig az ötös számcsoportok.
H-I-J-ben a keresett hármas számcsoport.Ha szimplán annyit írok, hogy: =DARABHATÖBB(INDIREKT("A2:E" & Öhsz;IGAZ);H2), akkor simán megtalálja, hogy x darab van a H2-ben letárolt számból a halmazban.
Ha szimplán annyit írok, hogy: =DARABHATÖBB(INDIREKT("A2:E" & Öhsz;IGAZ);I2), akkor simán megtalálja, hogy y darab van a I2-ben letárolt számból a halmazban. stb.Viszont, ha ezt kombinálom, akkor egyből 0 lesz minden, noha a keresett számhármasokból VAN előfordulás:
=DARABHATÖBB(INDIREKT("A2:E" & Öhsz;IGAZ);H2;INDIREKT("A2:E" & Öhsz;IGAZ);I2;INDIREKT("A2:E" & Öhsz;IGAZ);J2)
A képlet szintaktikailag helyes, nincs hibaüzenet, az eredmény mégis hibás. Ti látjátok a hibát? Mit rontok el? Van jobb megoldásotok?Köszönettel
-
KaliJoe
tag
válasz
Delila_1 #53513 üzenetére
Szia Delila,
Már nem tudom mik voltak benne, csak arra emlékszem, hogy teszteléshez előre elkészített listáid voltak. Könnyű volt velük véletlenszerű adatokat felvenni, legyen az szöveges, vagy számos, akár vegyes.
UPC megszűnt, sőt azóta már a digikábeles is. Most a mail@kalijoe.hu vagy a kagvukiny@gmail.com élnek.
Köszönöm.
-
KaliJoe
tag
Sziasztok,
Most máshol került elő a hasonló problémám. Időről időre le akarok majd futtatni egy makrót, amely egy kiindulási táblát fog feldolgozni. A forrástábla sorainak száma folyamatosan növekedni fog. Ezért fontos, hogy indig tudjam az össz sorok számát. Egyszerűen DARAB függvénnyel megszámoltatom, és ahol szám van az jó. De... a további számítások érdekében erre az össz sorra, hogy gyorsítsam a munkát és ne a 'végtelenségig' pl.: A:A hivatkozással, hanem mondjuk konkrétabban csak A2:A664 tartományban számoljon (aztán majd A2:A665, még később A2:A700, stb.) a DARAB függvényem a következőképpen néz ki: =DARABHA(INDIREKT("$A:A" & Öhsz);"=1"), ahol Öhsz egy név, ami arra a cellára hivatkozik, ahol az aktuális össz sorok számát már megszámoltattam.
Újra #HIV! hib. Mit csinálok rosszul? Hogy kell ezt Excelül helyesen írni?
-
KaliJoe
tag
válasz
Delila_1 #53506 üzenetére
Delila kedves,
Anno küldtél nekem egy olyan Excel táblát, amiben 100 számra voltak előkészített listák. Most megint szükségem volna rá (plusz tudnék én is adni Neked egy két lista ötletet), de nem találom.
Megkérlek szépen, küldd el nekem megint azt a szuper kis tábládat, szeretném betenni a sablonba.Köszönöm.
-
KaliJoe
tag
Sziasztok,
Új kérdés: Egy cellát szeretnék (pontosabban az abban lévő értéket) szeretném megjeleníteni, megtalálni, bizonyos feltételek mellett.
T88: =NAGY($U$20:$U$85;1)
T89: =NAGY($U$20:$U$85;2)
T90: =NAGY($U$20:$U$85;3)
U88: =INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;1);U$20:U$85;0);OSZLOP(T88))
U89: =HA(T89<T88;INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;2);U$20:U$85;0);OSZLOP(T89));INDEX($A$47:$W$85;HOL.VAN(NAGY($U$47:$U$85;1);U$47:U$85;0);OSZLOP(T89)))
U90: =HA(T90<T89;INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;3);U$20:U$85;0);OSZLOP(T90));INDEX($A$47:$W$85;HOL.VAN(NAGY($U$47:$U$85;2);U$47:U$85;0);OSZLOP(T90)))Tehát, mit csinál a fenti rész? Egy véletlenül változó rendezetlen számsorból kikeresi a 3 legnagyobb értéket. Sima ügy. Azonban, ha van azonos nagy (tehát pl. az legnagyobb = a második legnagyobbal), akkor a kikérdezett hozzá tartozó érték már nem lesz helyes, mert ugyanúgy az elsőt fogja megtalálni. Nosza, a NAGY függvény keresési tartományát csökkentsük annyira, amiből már kizárjuk az előbb megtalált NAGY értéket. Ez helyes, és működik, de a fenti példa szerint beégetett, tehát csak akkor jó, ha a 46. sorban találtam meg az első legnagyobb értéket, és abból a sorból szereztem meg, amit akarok. DE..., ha bárhol lehet a két egyező elem, akkor ezt függvényesíteni kell(ene). És biztos én vagyok béna, vagy valamit félre értek, de állandóan #HIV hibát kapok, ha a behelyettesített verzióval próbálkozom:
U89: =HA(T89<T88;INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;2);U$20:U$85;0);OSZLOP(T89));INDEX(CÍM(SOR(INDEX($A$2:$U$85;HOL.VAN(U88;$T$2:$T$85;0);OSZLOP(U88)))+1;1;1;IGAZ) & ":" & CÍM(SOR(W85);OSZLOP(W85);1;1);HOL.VAN(NAGY($U$47:$U$85;1);U$47:U$85;0);OSZLOP(T89))), az érdekes rész: HOL.VAN(U88;$T$2:$T$85;0);OSZLOP(U88)))+1;1;1;IGAZ) & ":" & CÍM(SOR(W85);OSZLOP(W85);1;1)
mi önmagában egy másik cellában hozza a : $A$47:$W$85 hivatkozást, az INDEX függvény azonban mégsem fogadja be, mint cellahivatkozást.Mit rontok el? Kérlek, segítsetek! Előre is köszönöm.
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53500 üzenetére
Szia Fire,
Köszönöm. Letöltöttem, majd tesztelem.
-
KaliJoe
tag
válasz
Fferi50 #53476 üzenetére
Szia Fferi50,
Ha annyit se tudnak megtenni, hogy beírják a 36-ot, akkor a kedves felhasználók kap... khmmm... szóval, akkor majd kiírom nekik, hogy milyen formában vihetik be a számokat.
A többi kérdésedet nem igazán értem. Persze, hogy a különböző MO-i és külföldi számok, ahogy azt Mutt és Fire is értették különböző formátumúak (többnyire). Amint megvan, hogy éppen melyik számot formázzuk, az annak megfelelő formátumot kell alkalmazni.
Ha ez nem válasz a kérdésedre, akkor bocsáss meg, de nem értem a kérdést. Meg tudnád fogalmazni másképp?Tisztelettel
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53479 üzenetére
Szia Fire,
Szimpatikus a megoldásod, ki fogom próbálni.
Le tudom ezt tölteni valahonnan?
-
KaliJoe
tag
Szia Mutt,
Köszönöm a megoldásod / próbálkozásod. Ki fogom próbálni.
Szerintem, ki lehet lépni a ciklusból egy vizsgálattal, például, ha 3 (vagy akár csak egy) üres sort i talál, így nem fut le mind az egymillióra. Ez világos.
Ha jól értem a megoldásod, készítettél egy formátum táblát, ahol megvannak országra, plusz külön Magyarországra részletesebben a használandó formátumok, ezeket beolvassa a makró, majd sorról sorra megnézi, hogy melyikhez hasonlít a számsor, ha talál megfelelőt, akkor arra a típusra beállítja a táblában kódolt formátumot.Ha jól értem a működését, akkor ez jó lehet. Tetszik is a megoldásod, de egy kicsit jobban húzok a feltételes formázás felé, mert azt rögzíteni lehet a sablon munkafüzetbe és csak mindig azt az oszlopot kell neki megadni, ahol az adott munkalapon a telefonszámokat reprezentáló számok vannak.
Köszönöm a segítséged, majd még jelentkezem, ha ki tudtam próbálni.
-
KaliJoe
tag
válasz
Fferi50 #53474 üzenetére
Szia Fferi50,
A szabály magából a telefonszámból következik. Ahogy leírtam. Tehát például:
1. Világ telefonszám, feltételrendszer:
1.a. Ha 1-gyel (vagy +1-gyel) kezdődik a szám, és a hossza 11 karakter, netán 1-gyel kezdődik és több, mint 10 milliárd, mint például a 12 899 297 191, vagyis 12milliárd 899 millió 297 ezer 191. Tehát a szükséges maszk: \+\# (000) #0-###-###
3.a.1 Magyarország, Budapest: 36-tal kezdődik, utána két karakter >=11 és <=19, hossza pedig 10 vagy (ami evvel egyenértékű) >=3610000000, de <=3619999999. Tehát a szükséges maszk: \+\## (0) 000-00-00.
3.a.2 Magyarország, Vidék: 36-tal kezdődik, utána két karakter >=20, de nem a 3.b alatt felsoroltak, hossza pedig 10 vagy (ami evvel egyenértékű) >=3620000000, de <=3699999999. Tehát a szükséges maszk: \+\## (00) 000-000.
3.b Magyarország, Nem terület alapú körzetszámok, például a 40-est kiemelve: 36-tal kezdődik, utána két karakter =40, hossza pedig 10 vagy (ami evvel egyenértékű) >=3640000000, de <=3640999999. Tehát a szükséges maszk: \+\## (40) 000-000, de kék írásszínnel, mint ezkék szám
.És így tovább, a feltételekkel. Amiket ehhez kéne kitalálni. Arra próbáltam rákérdezni, hogy ez így megvan-e valakinek úgy hogy az működik is, vagy van-e az én gondolatomnál egyszerűbb megoldás a problémára, ami ezt az eredményt hozza?
Tehát a szabály, amire rákérdezel az maga a telefonszám, és annak értelmes tagolása, mondanám, ahogy mi magyarok tagolni szoktuk a telefonszámokat.
Remélem így már érthetőbb a kérdésem. Van egy Excel táblám, ami magyarázza a számokat vagy ugyanez az infó elérhető a: [link] -ről
-
KaliJoe
tag
Sziasztok Kedves Excel expertek,
(Na akkor még egyszer, mert miután leírtam a kérdésem, újra beléptetett a rendszer, és elszállt a szövegem.)
Szeretnék Excelben telefonszámokat formázni, úgy, hogy a cellában eredetileg csak a számsor szerepel. Viszont különböző formázások kellenek, amire így a Cellaformázás Egyéni szekciója alkalmatlan. (Az én tudásom szerint) marad a feltételes formázás.
Viszont, hátha már valaki megoldotta ezt a problémát frappánsan.Tehát a probléma példákkal:
1. Világ telefonszám: 1-től 9-ig a világ zónái + 3 számjegyes körzethívó + 7 -8 jegyű telefonszám. Pl. +1 (289) 9-297-191, tárolása: 12899297191
2. Olyan országok, ahol változó hosszúságú a körzetszám:
2.a. Például Németország Bad Homburg: +49 6172; Berlin: +49 30; Bonn: +49 228 és 7 jegyűek a számok. Tárolása +49 (####) és a 7 jegyű telefonszám.
3. Magyarország +36 országhívóval. Itt további pontosabb elkülönítés lenne kívánatos
3.a. Körzetenként
3.a.1. Budapest, pl. +36 (1) 789-56-62
3.a.2. Vidék, pl. +36 (99) 452-520
3.a.3. Mobilszámok, pl. +36 (20) 854-14-75, +36 (70) 701-888-0
3.b. Nem terület alapú körzetszámok, pl. +36 (21); +36 (31); +36 (40); +36 (51); +36 (80); +36 (90); +36 (91), ahol a maszk lehet hasonló a mobilszámokéval, esetleg +36 (51) 55-12-85-1 vagy +36 (51) 551-2-851 típusú, ugyanakkor itt jó volna az írásszínnel való megkülönböztetés, mint a 40-es kék számnál a kék szín, 80-as zöldnél a zöld, 90 és 91-es körzeteknél az emelt díjas szolgáltatásokra figyelemfelkeltő piros szín, stb.Ha valaki tud rá jó megoldást, de kellene még infó, akkor tudok küldeni egy táblázatot, ami nagyjából ezt tartalmazza, amit fentebb leírtam.
Segítségetek előre is köszönöm.
-
-
KaliJoe
tag
válasz
Fferi50 #48347 üzenetére
Szia Fferi,
Ha valahogy el tudom küldeni a táblámat, akkor meg tudom mutatni. Egyébként, nem nagyon tudom jobban elmagyarázni. De annyi biztos, hogy Képletkiértékeléskor a hiba már fellépett a HOL.VAN függvényben, és nem azt a sort választotta ki, amit kellett volna - tudniillik - az első dátumra mutató sort. A formátum azonos volt, mert mindenhol szám (ami dátumként csak nekünk érdekes) az Excelnek mindegy, szám-szám. Amúgy meg az is érthetetlen volt a számomra, hogy miért a 100+ sor felett kezdett el tévedni, addig nem...
El tudom valahgy küldeni a táblámat? Tudsz/akarsz vele foglalkozni? Mármint úgy értem érdekel a probléma? Megköszönöm, ha igen. -
KaliJoe
tag
válasz
Fferi50 #48345 üzenetére
Szia Fferi50,
Nem ez nem az, amire nekem szükségem volt, mert ez esetben a szöveges rész rövídítése lett volna a cél... az érvényesítés számára. Viszont Lappy már megadta nnekem a 48 339-es válaszában a megoldást, úgyhogy végülis megvagyok. Azért Neked is köszönöm, hogy foglalkoztál vele.
-
KaliJoe
tag
Sziasztok,
Több kérdésem is van, próbálom röviden megfogalmazni:
4. Tapasztaltátok-e már, hogy a HOL.VAN függvény "téved" a helymeghatározás során?
Egy Munkafüzet egyik munkalapján adatokat gyűjtök napi 7 mérésből. Ezeket az adatokat "átszívom" a Munkafüzet egy másik munkalapjára, ahol grafikuan is megjelenítem őket. 3 képletet bemutatok az érthetőség kedvéért:
=HAHIBA(INDIREKT(CÍM(HOL.VAN(F$1;'Cukor-, étel-, és energianapló'!$B$7:$B$434;1);4;4;1;"Cukor-, étel-, és energianapló");IGAZ);0)
=HAHIBA(INDIREKT(CÍM(HOL.VAN(F$1;'Cukor-, étel-, és energianapló'!$B$7:$B$434;1);5;4;1;"Cukor-, étel-, és energianapló");IGAZ);0)
=HAHIBA(INDIREKT(CÍM(HOL.VAN(F$1;'Cukor-, étel-, és energianapló'!$B$7:$B$434;1)+2;4;4;1;"Cukor-, étel-, és energianapló");IGAZ);0)
és így tovább a 7 adat átemeléséig.
Ha a forrás munkalapon a dátum megadása a 7 egymást követő sorban a következőképpen van:
1. sor: =B314+1 - rejtett, azonos háttérszín, azonos írásszín
2. sor: =B315 - rejtett, azonos háttérszín, azonos írásszín
3. sor: =B315 - rejtett, azonos háttérszín, azonos írásszín
4. sor: =B315 - a formátum itt dátumformátum és megjelenített
5. sor: =B315 - rejtett, azonos háttérszín, azonos írásszín
6. sor: =B315 - rejtett, azonos háttérszín, azonos írásszín
7. sor: =B315 - rejtett, azonos háttérszín, azonos írásszín
8. sor: =B315+1 - rejtett, azonos háttérszín, azonos írásszín, és így tovább
akkor nincs semmi probléma az adatok átemelésével. Hibátlanul működik.Viszont, amikor meg akartam jeleníteni a hétszámot is és a napnevet is, és a 7 egymást követő sor a következőképpen alakult:
1. sor: =B111+1 - rejtett, azonos háttérszín, azonos írásszín
2. sor: =B112 - rejtett, azonos háttérszín, azonos írásszín
3. sor: =HÉT.SZÁMA(B112;2) & ". hét" - megjelenített
4. sor: =B112 - a formátum itt dátumformátum és megjelenített
5. sor: =SZÖVEG(B112;"nnnn") - megjelenített
6. sor: =B112 - rejtett, azonos háttérszín, azonos írásszín
7. sor: =B112 - rejtett, azonos háttérszín, azonos írásszín
8. sor: =B112+1 - rejtett, azonos háttérszín, azonos írásszín, és így tovább
akkor az adatok átemelése elkezdett hibás lenni. A hiba abban mutatkozott meg, hogy a HOL.VAN függvény rendre 4-5 sorral feljebbre határozta meg a keresett dátum sorát, így téves adatokat emelt át.
Érti ezt valaki? Tudjátok az okát? Hogy lehetne úgy, hogy a hét száma, és a nap neve is megjeleníthető legyen, és az adatok átemelése is hibátlanul működjön?
-
KaliJoe
tag
Sziasztok,
Több kérdésem is van, próbálom röviden megfogalmazni:
3. Az alábbi kis programot írtam:Private Sub Worksheet_Change(ByVal Target As Range)
Dim Válasz_byt As Byte
If Target.Cells = Range("B4") Or Target.Cells = Range("B5") Then
If Target.Cells = Range("B4") Then
Range("B6").Select: Selection.ClearContents
Range("B5").Select: Selection.ClearContents
Válasz_byt = MsgBox("Mivel a személy nemét megváltoztattad, alaphelyzetbe (vagyis üresbe) állítottam a 'Kora' (korosztály) és a 'Módosító tényező' cella értékeit.", vbOKOnly + vbExclamation, "Kor-Módosító alaphelyzetbe")
End If
If Target.Cells = Range("B5") And Range("B6") <> Emtpy Then
Range("B6").Select: Selection.ClearContents
Válasz_byt = MsgBox("Mivel a személy korát megváltoztattad, alaphelyzetbe (vagyis üresbe) állítottam a 'Módosító tényező' cella értékét.", vbOKOnly + vbExclamation, "Módosító tényező alaphelyzetbe")
End If
Range("B2").Select
End If
End SubTöbbé kevésbé jól is működik. Azért mondom, hogy többé kevésbé, mert ha a B4 cellát változtatja meg a felhasznló, akkor meg fogja magát hívni újra, amikor a makró a B5 cella tartalmát törli, de ezt nagyjából megkerültem. Ha elegánsabb megoldást tudtok, szívesen alkalmaznám. A Munkafüzetem több Munkalapot tartalmaz, ez csak az egyikre érvényes. Az igazi kérdésem az az, hogyha makróval egy másik Munkalapról kiindulva, ezen a munkalapon - haosnlóképpen a fenti programhoz - törölni akarom a B4-B5-B6 tartalmát, akkor hogy tudom majd elkerülni az önmagát meghívó törli makró működését. Másképpen fogalmazva: programból (makróból) ki lehet kapcsolni - időlegesen, aztán vissza - egy adott munkalapon a Change esemény figyelését?
-
KaliJoe
tag
Sziasztok,
Több kérdésem is van, próbálom röviden megfogalmazni:
2. Az 1.-es kérdést tulajdonképpen azért tettem fel, mert ' Érvényesítésben' feltételektől változó listát szeretnék használni. De ott nem túl sok karakter után nem enged többet beírni. A kérfés: Lehet-e és ha ige, hogyan lehet az érvényesítésnek különböző listákat megadni, egy adott érvényesítendő cellára nézve? -
KaliJoe
tag
Sziasztok,
Több kérdésem is van, próbálom röviden megfogalmazni:
1. Lehet-e wildcard karaktereket használni függvényekben, pl. a HA függvényben? Ezt feltételrendszert kellene lerövídíteni:
=HA(VAGY(B5="1-4 éves";B5="4-7 éves";ÉS(B4="Nő";VAGY(B5="7-10 éves";B5="10-14 éves";B5="14-17 éves";B5="15-18 éves");ÉS(B4="Férfi";VAGY(B5="7-11 éves";B5="11-15 éves";B5="15-18 éves"))));Segédtáblák!P9;HA(B4="Nő";HA(VAGY(B5="18-30 éves";B5="30-60 éves");Segédtáblák!P10:P24;Segédtáblák!P10:P12);HA(B4="Férfi";HA(VAGY(B5="18-30 éves";B5="30-60 éves");Segédtáblák!P29:P32;Segédtáblák!P29:P31);)))
Erre próbáltam, de nem eszi az Excel:
=HA(VAGY(B5="1-*";B5="4-*";ÉS(B4="Nő";VAGY(B5="7-*";B5="10*";B5="14-17 éves";B5="15*");ÉS(B4="F*";VAGY(B5="7-*";B5="11*";B5="15*"))));Segédtáblák!P9;HA(B4="Nő";HA(VAGY(B5="18*";B5="30*");Segédtáblák!P10:P24;Segédtáblák!P10:P12);HA(B4="F*";HA(VAGY(B5="18*";B5="30*");Segédtáblák!P29:P32;Segédtáblák!P29:P31);)))
Ha lehetséges a "*" mint ildcard karakter használata, akkor hogyan kell hasznáni, mert így nem működik. Ez az egyszerűsített összefüggés HAMIS eredményt ad:
=HA("Férfi"="F*";IGAZ;HAMIS) -
KaliJoe
tag
válasz
Fferi50 #48150 üzenetére
Sziasztok,
Köszönet mindenkinek,
aki hozzászólt. Meglett az eredmény és helyesen működik. Ha másnak is kellene ilyen ideírom a megoldást:
Megoldás: =MAX(INDIREKT(HAHIBA(CÍM(4;HOL.VAN(0;A4:X4;0)-5;4;1) & ":" & CÍM(4;HOL.VAN(0;A4:X4;0)-1;4;1);"T4:X4")))
Megjegyzés: a CÍM(?... utáni első szám a sor száma, ahol keresni kell, tehát változtatandó. A példában én a 4-es sort illesztettem be! A HAHIBA függvénnyel kiegészítve még hibamentesre is lehet fejleszteni, akkor ha eléri a tábla jobb szélét (adat kerül már a viszgált utolsó napra is), nem hullik szét!
Még egyszer köszönöm. Megoldódott! -
KaliJoe
tag
válasz
Fferi50 #48144 üzenetére
Szia Fferi50,
Sajnos nem működik a megoldásod. #ÉRTÉK hibát jelez, ha beírom. Sőt, képlet kiértékelésekor már az INDIREKT függvénynél megjelenik az #ÉRTÉK hiba. Mint mondtam az E9, F9 cellákban azok a CÍM-mel kezdődő függvények vannak, amelyeket az eredeti kérdésben odaírtam.
Lehet, hogy a problémám redukálható arra, hogy hogyan lehet a MAX függvénynek tartományt átadni, ha az maga is függvényekből áll össze.Más:
Kipróbáltam Lappy megoldását. Igazából csak félsiker. Valójában működik a dátumokkal, mivel a nap folyamán folyamatosan töltöm az oszlopot, attól függ hány óra van (vagyis melyik sorban van már 0.0-tól eltérő adat, attól függően kéne - soronként - a MAX függvénynek figyelembe vennia a mai napot, vagy tegnaptól nkeresni az értékeket. Ahogy Lappy megadta működik egész napra, de nem attól függően, h a mai napi ellában már megjelent az adat vagy sem. Szóval ez csak félig jó nekem.Fáradozásaitk előre is köszönöm.
-
KaliJoe
tag
Szia Lappy,
Nem értettél meg. Nem dátumok közötti MAX-MIN értékek érdekelnek. Naponta 7 új adatom keletkezik (nem dátum típusú - sima szám), ezeket rendezem naponta egy oszlopba (7 sorba). Ezek közül kell kiválasztani az utolsó 5 oszlopot, amely már adatokkal feltöltött. Én arra gondoltam, h megkeresem az első nulla értéket (az lesz a még nem töltött nap) és az eggyel előtti és a hattal előtti oszlopok tartományát adom át a MAX függvény számára.
Tehát NEM időpontok között kell választanom, illetve MAX-MIN értékeket keresnem.
-
KaliJoe
tag
Sziasztok, Boldog Új Évet kívánok!
A problémám egy hivatkozás megszerkesztésével van. Tartományt kellene átadni a MAX függvény számára.
Kicsit bővebben: Van egy - folyamatosan töltött - 7 soros, 24 oszlopos táblázatom. Az elején már vannak adataim, a végefelé még 0.0-s értékek vannak. Azt szeretném, elérni, hogy a MAX és MIN függvényeim mindig csak az utolsó 5 (nap) adataiból válasszanak MAX és MIN értékeket (tehát ne az összes 24 oszlopból). HOL.VAN függvénnyel megkerestem, hogy melyik az az első oszlop, ahol még 0.0 az érték, vagyis e nap előtt és még vissza 5 nappal kellene az oszlopokat átadni a MAX-MIN számára. Odáig meg is vagyok, hogy pl. meg tudom adni, hogy az egészből a P2:U2 tartományt figyelje.
Így az E9-ben: =CÍM(2;HOL.VAN(0;A2:X2;0)-1;4;1) és
így az F9-ben: =CÍM(2;HOL.VAN(0;A2:X2;0)-6;4;1)
G9-be meg összefűzöm őket: =F9 & ":" & E9; de ez így még csak karaktersor, nem pedig tartományhivatkozás!
Ott mondok csődöt, hogy ezt hogyan tudom úgy átadni a MAX és MIN függvények számára, hogy az - továbbra is - tartományhivatkozás legyen?!
Az INDEX és INDIREKT függvényekkel próbálkozom, de mindig hibához jutok, és a MAX nem eszi meg.Tud valaki segíteni?
Előre is köszönöm.
-
KaliJoe
tag
Sziasztok,
Mit tudtok, lehet-e Excel2010-ben makrózni a Feltételes formázás opciót? (Még mindig a szavazat számlálással foglalkozom, azonban, amikor példa megtanulására makró rögzítést kezdeményeztem, és a mellékelt feltételes formázást akartam létrehozni, akkor a makrórögzítő CSAK a cellák kijelölését rögzítette, SEMMI többet.)
-
KaliJoe
tag
válasz
Delila_1 #34257 üzenetére
Sziasztok,
Igen, jó ötletet adtatok. A rögzítő tábla alján lévő számolásoknál oszloponként egy tizedessel csökkenő mértékben adok hozzá a valós eredményhez. Ez azt jelenti, hogy azonosságnál sem lesz tökéletesen azonos eredmény, de 2 tizedes jegy %-ig ez nem is fog látszani. Névsorrend szerint is beállnak a helyükre! (Így egy csapással két legyet ütöttem.):
=B20/B22+(0.001/HATVÁNY(10;OSZLOP(B22)))
A Sorrend megállapító táblába pedig ezek alapján, és az alapján kérdezek, hogy éppen hányas sorszámú jelöltet keresem:
=INDIREKT(CÍM(2;HA(P7=P6;1;0)+HOL.VAN(NAGY($B$23:$I$23;N7);$A$23:$I$23;0);1;1);1)
Köszönöm az ötletet, kimozdultam általa a holtpontról, és így már meg tudtam oldani. Szerintem így tömör is meg szép is!
Ui.:
1. Nem vagyok rendszergazda.
2. Lelkes amatőr vagyok, akinek néha nagy feladatai vannak. A szavazat feldolgozó programot VBE-ben fogom írni, de ezt a részt nem írhattam CSAK Excel függvényekkel, mert akik ellenőrzik, hogy nincs-e benne csalás / részrehajlás, azok fele ennyire sem értenek az Excelhez, mint csekélységem.
3. A rögzítés után már csak ennyi a feladat... megállapítani a sorrendet. Viszont az ellenőrök "nem szeretik", ha bármit utána bűvészkedek a rögzített táblával, és nem úgy kereshető vissza a felvitel, ahogy a szavazó lapokon megtalálható. -
KaliJoe
tag
-
KaliJoe
tag
Szia lappy,
Sajnos a SORSZÁM függvény sem jó megoldás. Annál a NAGY többet tud. A SORSZÁM csak megmondaná, hogy hányadik a sorban az adott szám..., de nekem az kellene, hogy a rendezetlen számsorban - ahol ráadásul 2 vagy több ismétlődés / azonosság is lehet - azt mondaná meg az alkalmazandó függvény, hogy hol van az az érték, amit éppen vizsgálok. Különösen akkor mondja meg helyesen, ha már találtunk egy vele egyező értéket korábban = ne ugyanazt találja meg, hanem az egyező "másik" értéket.
Sajnos, erre a HOL.VAN függvény sem jött be nekem... vagy nem találtam ki a megfelelő képletet.
Más ötlet?
-
KaliJoe
tag
Szia OP1,
Excel2010-esem van. De... transzponálás nélkül is tudom rendezni... Hiszen a rendez függvény sorra és oszlopra is tud rendezni. Avval nincs baj. És úgy ki is tudom alakítani a származtatott táblát, hogy ne legyen benne ismétlődés.
Viszont én, ha csak egy mód van rá nem akarok változtatni az adatrögzítő tábla mostani - rögzítés közbeni - véletlenszerű elrendezésén. A segítség az, ha úgy tudsz mondani megoldást, ha az adatrögzítő tábla közben nem változik.
Köszönöm... a törődést (legalább).
-
KaliJoe
tag
Sziasztok,
Egy szavazás eredményeit rögzítem egy táblázatban. Kijön a szavazás eredménye %-ban, melyeket egy származtatott táblázatban nagyságrendi sorrendbe állítok a NAGY függvénnyel. A NAGY függvény értékétől függően visszakeresem az adatrögzítő táblából a jelölt nevét.
Eképpen:
=INDIREKT(CÍM(2;HOL.VAN(NAGY($B$23:$I$23;1);$A$23:$I$23;0);1;1);1)
=INDIREKT(CÍM(2;HOL.VAN(NAGY($B$23:$I$23;2);$A$23:$I$23;0);1;1);1)
=INDIREKT(CÍM(2;HOL.VAN(NAGY($B$23:$I$23;3);$A$23:$I$23;0);1;1);1)
stb., növelve a NAGY függvény 2. argumentumát.A problémám ott kezdődik, amikor szavazategyenlőség van. Hiszen a NAGY függvény helyesen találja meg, hogy az egy "másik" az előzővel azonos eredmény, viszont a név visszakeresésekor ugyanazt a nevet kapom vissza, nem pedig a másik azonos szavazatot szerzett jelöltét. Hogy lehet úgy megoldani, hogy akár több azonos szavazat esetén is működjön a sorrend?
Milyen ötletetek van erre?
Ui.: Arra is gondoltam, hogy a szavazás eredményének rögzítése után Adatrendezést hajtok végre szavazatok száma alapján balról-jobbra csökkenő sorrendben, és utána kérem a visszakeresést, akkor - vélhetően - szavazatazonosság esetén is, egymás után elhagyva balról az oszlopokat vissza tudom keresni a KÜLÖNBÖZŐ neveket. De, ha lehet úgy szeretném megtartani a táblázat adatait, ahogy azt felvették, rendezés nélkül, ugyanis így hitelesebbnek tűnik az ellenőrök számára.
-
KaliJoe
tag
Sziasztok,
Visszatértem... és rögtön egy kérdéssel.
Készítettem egy formot Excel2010-ben. Tartalmaz egy kiegészítést a CalendarManagerPlugin Class nevűt, amiből használtam a MonthView - lásd alább a képen - kontrollt. Ezt a számoló programomat most Office365 alatt (Excel2013-nak mutatkozik be a táblázatkezelő) szeretnék használni. Már betöltéskor reklamál, h nem tudott minden elemet betölteni.
Kérdés: Ki tudja, és aki tudja kérem, mondja meg, hogy Office365 alatt hol lehet megtalálni ezt a bővítményt? Hogy tehetném közvetlenül alkalmassá az ilyen formokat tartalmazó számolótáblámat más környezetben való futtatásra?
Válaszotokat előre is köszönöm.Ui.: Azt ne válaszoljátok, h keressem meg az azonos Bedolgozó osztályt az Office365-ben, mert kerestem, de ott ilyet nem találtam.
-
KaliJoe
tag
Sziasztok,
Visszatértem... és rögtön egy kérdéssel.
Készítettem egy formot Excel2010-ben. Tartalmaz egy kiegészítést a CalendarManagerPlugin Class nevűt, amiből használtam a MonthView - lásd alább a képen - kontrollt. Ezt a számoló programomat most Office365 alatt (Excel2013-nak mutatkozik be a táblázatkezelő) szeretnék használni. Már betöltéskor reklamál, h nem tudott minden elemet betölteni.
Kérdés: Ki tudja, és aki tudja kérem, mondja meg, hogy Office365 alatt hol lehet megtalálni ezt a bővítményt? Hogy tehetném közvetlenül alkalmassá az ilyen formokat tartalmazó számolótáblámat más környezetben való futtatásra?
Válaszotokat előre is köszönöm.
Ui.: Azt ne válaszoljátok, h keressem meg az azonos Bedolgozó osztályt az Office365-ben, mert kerestem, de ott ilyet nem találtam.
-
KaliJoe
tag
válasz
slashing #25766 üzenetére
Szia slashing,
Tulajdonképpen mindegy a feladatom szempontjából. Csak nézőpont kérdése. Nem a kirajzolás, hanem a kirajzolt elemek kapcsolata az adatbázissal a fontos.
A fa megrajzolása mellékszál a probléma szempontjából. Sajnos, arra is szükségem lehet, h egy már létező táblát, valahol - a fa egy pontjából - tovább folytassam. Így meg kell tudnom határozni a helyét a fában. -
KaliJoe
tag
válasz
csferke #25762 üzenetére
Szia csferke,
Akkor most még kevésbé értem a problémád! Mivel, ha külön vannak ezek, akkor egy egyszerű kivonás már megadja az eredményeket. Napok tekintetében és az órák tekintetében is.
Ha tehát tényleg D3 a keresett cella, az egy egyzserű kivonás. Ha netán az A3-ra gondoltál, akkor csak össze kell adni a C3+D3 értékeit, és a kívánt formátumot beállítani...
-
KaliJoe
tag
válasz
Fferi50 #25757 üzenetére
Szia Fferi_50,
A szűkített problémára megoldás, amit írtál, de a teljesség szempontjából nem. Mivel láttad a táblát, látod, h ez egy fa szimuláció kezdő munkalapjai. Később ezt makróban akarom megírni, ezek csak skiccek.
Vagyis, mivel a fa bővül / bővíthető, és programból fog bővülni, ezért az egyes linkek változnak! Nem tudom statikusan beírni őket... épp ez lenne a lényeg, hogyha a Szervezet fülön újabb szint keletkezik, és újabb elemek (személyek) épülnek be, akkor a meglévők automatikusan frissítődnek... és én már régen nem is tudom, h éppen melyik cella tartalmazza az egyes elemek helyét.
Előfordulhat, hogy 10-20-vagy több mélységben akarok modellezni egy bináris fát.Szóval, úgy kellene megoldani, h csak egyszer kelljen megadni a beíráskor egy új elem / cella helyét... a többi számítás már erre tudjon támaszkodni, majd, ha új elemet / szintet építek be, és a rajz bővülése miatt változik a cella koordinátája, akkor azt az Excel leköveti.
-
KaliJoe
tag
válasz
csferke #25748 üzenetére
Szia csferke,
Az Excel a dátum és idő értéket, egy egész (az 1900-01-01-től eltelt napok száma) és egy törtrész összegeként tárolja, amely törtrész az egy napon belüli értéket mondja meg.
Tehát, ha a teljes dátumérték - ami Neked az A oszlopodban van - FIX részét veszed, akkor megkapod a dátumot, leválasztva róla az időértéket.
És folytatva, ha a teljes dátumértékből kivonod a dátumérték egész részét megkapod a napon belüli törtértéket. Ezeket megfelelően formázva megkapod a szétválasztott dátumot, és időt.Képlettel (ez jobb):
"C" oszlop: =DÁTUMÉRTÉK(SZÖVEG(KEREK.LE(A1;0);"éééé-hh-nn"))
"D" oszlop: =A1-KEREK.LE(A1;0)
A "D" oszlophoz, még az időformátumot is be kell állítsd! -
KaliJoe
tag
válasz
csferke #25748 üzenetére
Szia csferke,
Az Excel a dátum és idő értéket, egy egész (az 1900-01-01-től eltelt napok száma) és egy törtrész összegeként tárolja, amely törtrész az egy napon belüli értéket mondja meg.
Tehát, ha a teljes dátumérték - ami Neked az A oszlopodban van - FIX részét veszed, akkor megkapod a dátumot, leválasztva róla az időértéket.
És folytatva, ha a teljes dátumértékből kivonod a dátumérték egész részét megkapod a napon belüli törtértéket. Ezeket megfelelően formázva megkapod a szétválasztott dátumot, és időt.Képlettel:
"C" oszlop: =DÁTUMÉRTÉK(SZÖVEG(FIX(A1;0);"éééé-hh-nn"))
"D" oszlop: =A1-FIX(A1;0;)
A "D" oszlophoz, még az időformátumot is be kell állítsd! -
KaliJoe
tag
válasz
Fferi50 #25745 üzenetére
Szia Fferi50,
Nem az eredménye, hanem a képlete. Történetesen az eredménye "A", egy A betű.
A B oszlopban lévő képletemnek sem az eredménye, mert annak a cellahivatkozás az eredménye.
Szerintem, jobb, ha odaadom a táblát, mert akkor érteni fogod mit is akarok.
Oppá, h is tudok teljes Excel fájlt küldeni?
-
KaliJoe
tag
Sziasztok,
Kinek van ötlete arra, hogy hogyan lehetne Excelben megoldani, hogy:
- ha az egyik, mondjuk "A" oszlopban egy hivatkozás van, amelyik egy másik Munkalap egyik cellájára mutat; Példa: =Szervezet!L2,
- a mellette lévő oszlopokban pedig evvel a hivatkozással kapcsolatos számítások vannak, úgy mint:
"B" oszlop: =JOBB(CELLA("cím";Szervezet!L2);HOSSZ(CELLA("cím";Szervezet!L2))-SZÖVEG.KERES("!";CELLA("cím";Szervezet!L2);1))
"D" oszlop: =SOR(Szervezet!L2)
... akkor ennek a hivatkozásnak a felhasználsával lehessen az A oszloptól jobbra levő képletekben felhasználni ezt a hivatkozást.Most úgy működik a táblám, hogy minden egyes helyen, ahol a ' Szervezet!L2' cellára történik hivatkozás, oda magát a hivatkozást kell betenni.
Lehet-e valahogy az A cellában szereplő hivatkozást belevarázsolni a mellette lévő képletekbe?Kérlek, ha nem érthető írjatok..., kérdezzetek, hogy pontosíthassam!
-
KaliJoe
tag
válasz
Delila_1 #25676 üzenetére
Szia Delila_1,
Nem, nincs cellahivatkozás. Ez funkció, és nincs köze cellához. Konkrétan ez csak egy bizonyos értékekkel növeli a változót. Ha nincs megadva növekmény, akkor 1-gyel. Ennyit tud... De nem is ez a lényeg, hanem ezen kezdve el akartam kezdeni felépíteni a saját függvényeimet.
De egyébként az előző poszt képes részében látszik a teljes helyzet.
-
KaliJoe
tag
Sziasztok
Van itt valaki, aki tud megoldást a 25581-es hozzászólásra?
Köszi
-
KaliJoe
tag
Sziasztok
Az alábbi - de tulajdonképpen bármely másik - két programocskát / funkciót szeretném elérhetővé tenni, bármely fájlomban lévő, bármely makróm számára. A két makrócska helye a PERSONAL.XLSB-ben van.
Kérdés: Mit kellene még tennem, h a más Excelekben lévő makrók meghívhassák, futtathassák e makrókat?
Option Explicit
Function Incr(var_Szám As Variant, Optional var_Növ = 1) As Variant
' If IsMissing(var_Növ) = True Then var_Növ = 1
Let Incr = var_Szám + var_Növ
End Function
Function Decr(var_Szám As Variant, Optional var_Csökk = 1) As Variant
' If IsMissing(var_Csökk) = True Then var_Csökk = -1
Let Decr = var_Szám - var_Növ
End Function -
KaliJoe
tag
Sziasztok,
A kérdésem a következő: Egy egyedileg létrehozott tömb, később egy ciklussal feltöltött eleminek számát - programfutás időben - hogy tudom megkérdezni a programtól. Itt a '.Count' tulajdonság nekem nem működik.
Találgatás:
Talán fel kellene vennem az egyedi tömb tulajdonságai közé, és amikor feltöltöm a tömböt, akkor minden egyes rekordba tegyem be az utolsó rekord sorszámát?
Definíciós rész:
Private Type typ_MunkavállalóAdatbázis
Név As String
SzülDátum As Date
Adóazonosító As String
TAJSzám As String
TelefonSzám As String
Email As String
BelépésDátum As Date
Munkahely As String
Pozíció As String
End TypePrivate udef_MunkavállalóAdatbázis() As typ_MunkavállalóAdatbázis
Felhasználás, feltöltés:
ReDim udef_MunkavállalóAdatbázis(byt_Ciklus)
byt_Ciklus = 1: byt_AktuálisSor = 2
Do Until Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapHosszúNévOszlop).Value = "Vége"
If Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapDolgozóStátuszOszlop).Value = "Aktív" Then
udef_MunkavállalóAdatbázis(byt_Ciklus).Név = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapHosszúNévOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).SzülDátum = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapSzülDátumOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).AdóAzonosító = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapAdóAzonosítóOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).TAJSzám = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapTAJSzámOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).TelefonSzám = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapTelefonSzámOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).Email = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapEmailOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).BelépésDátum = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapBelépDátumOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).Munkahely = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapMunkahelyOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).Pozíció = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapSorSzámOszlop).Value
byt_Ciklus = byt_Ciklus + 1
End If
byt_AktuálisSor = byt_AktuálisSor + 1
Loop -
KaliJoe
tag
Sziasztok,
A kérdésem a következő: Egy egyedileg létrehozott tömb, később egy ciklussal feltöltött eleminek számát - programfutás időben - hogy tudom megkérdezni a programtól. Itt a '.Count' tulajdonság nekem nem működik.
Találgatás:
Talán fel kellene vennem az egyedi tömb tulajdonságai közé, és amikor feltöltöm a tömböt, akkor minden egyes rekordba tegyem be az utolsó rekord sorszámát?Definíciós rész:
Private Type typ_MunkavállalóAdatbázis
Név As String
SzülDátum As Date
AdóAzonosító As String
TAJSzám As String
TelefonSzám As String
Email As String
BelépésDátum As Date
Munkahely As String
Pozíció As String
End Type
Private udef_MunkavállalóAdatbázis() As typ_MunkavállalóAdatbázisFelhasználás, feltöltés:
ReDim udef_MunkavállalóAdatbázis(byt_Ciklus)
byt_Ciklus = 1: byt_AktuálisSor = 2
Do Until Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapHosszúNévOszlop).Value = "Vége"
If Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapDolgozóStátuszOszlop).Value = "Aktív" Then
udef_MunkavállalóAdatbázis(byt_Ciklus).Név = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapHosszúNévOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).SzülDátum = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapSzülDátumOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).AdóAzonosító = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapAdóAzonosítóOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).TAJSzám = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapTAJSzámOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).TelefonSzám = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapTelefonSzámOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).Email = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapEmailOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).BelépésDátum = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapBelépDátumOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).Munkahely = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapMunkahelyOszlop).Value
udef_MunkavállalóAdatbázis(byt_Ciklus).Pozíció = Worksheets("Személylap").Cells(byt_AktuálisSor, const_SzemélylapSorSzámOszlop).Value
byt_Ciklus = byt_Ciklus + 1
End If
byt_AktuálisSor = byt_AktuálisSor + 1
Loop -
KaliJoe
tag
válasz
Polllen #25127 üzenetére
Szia Pollen,
Ez biztos nem megoldás. Mivel a .PrintPreview súgójában benne van az a Variant változó aminek egy munkalapra kell mutatnia, és akkor kérhető ki az Igaz / Hamis érték... a súgó szerint. Egyébként a jelzett "hiányzó változó" hibaüzenettel reagál. De nyilván nem csinálok valamit jól, ha végül nem ez történik.
Ehhez kellene a segítség, h az történjen, mit gondolok :-) -
KaliJoe
tag
válasz
Delila_1 #25121 üzenetére
Szia Delila_1,
Próbáltam... :-)
Üres makrót eredményez... a nyomtatás ablak előhívása nem vált ki programsor rögzítést, viszont ha elküldöm a nyomtatást, akkor egy egészen másik parancsot hoz. Nevezetesen ez:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
-
KaliJoe
tag
Sziasztok,
A tény: AZ egyik űrlapomon képeket használok, amelyeket a felhasználó viselkedésétől függően jelenítek meg. Ez jól működik is.
A kérdés: Az alábbiakban látható módon egy konstanst használok, hogy bárhol a modulban elérhető legyen a mappa bejárási útvonala. Viszont a konstanst nem engedi csak explicit módon megadni, nem lehet úgy, h egy Alapértékeket tartalmazó munkalap egy cellájában legyen.
Ti hogyan oldanátok meg?Const const_KépKönyvtár As String = "D:\CentrumNet WorldWide Kft\Programozás\Jelenléti ív\"
'Const const_KépKönyvtár As String = Worksheets("Alapértékek").Cells(7, 1) -
KaliJoe
tag
válasz
Polllen #25117 üzenetére
Szia Pollen és Delila_1,
Azt hiszem az irány jó, de makacsul dobja a hibaüzeneteket, arra hivatkozva, h definiáljak változót. Készítettem Variant típusút, értékét az aktuális munkalapra irányítottam... de az nem érdekli, csak követel...
...
Dim wsh_Űrlap As Variant
wsh_Űrlap = Worksheets("Űrlap Nyomtatáshoz")
...
If ActiveWindow.SelectedSheets.PrintPreview(wsh_Űrlap) = True Then
Worksheets("Alapértékek").Select
ActiveSheet.Unprotect
Worksheets("Alapértékek").Cells(4, "J").Value = Worksheets("Űrlap Nyomtatáshoz").Cells(2, "M").Value + 1
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
... -
KaliJoe
tag
Sziasztok,
Ki tudja, h milyen VBA sorral lehetne meghívni a "nyomtatási nézetet"... és aztán hagyni a felhasználót, h elmolyoljon (kvázi beállítsa a számára megfelelő nyomtatási paramétereket), és ha sikeres a nyomtatás akkor valahol a táblában lökjön egyet egy számlálón.
Ez az utolsó rész, miszerint hogy lökjön egyet a számlálón sima liba, de nekem most mindenképp lök rajta... ha a saját magam által készített (nem eredeti Excel) "Nyomtatás" feliratú gombját megnyomja. Emögött lévő makró utolsó sora elvégzi a számláló növelést, de függetlenül attól, h készült-e nyomat. -
KaliJoe
tag
Sziasztok,
A Jelenléti ív programom adatainak megjelenítéséhez - egy új munkalapon - "Űrlap Nyomtatáshoz"-t készítek, vagyis egy űrlap mezőkkel kiegészített munkalapot.
A kérdés az, hogy hogyan tudom meg, pl. egy választódoboznak éppen mi az aktuális értéke? Vagyis, h melyik értéket választotta a felhasználó? Itt mi a hivatkozás módja? (A VBA-ban már tudom, de itt megakadtam, és a help sem segített. :-( )
-
KaliJoe
tag
válasz
Fferi50 #24981 üzenetére
Szia Fferi50,
Office 2010.
A bajom a Change vezérlés ki-be kapcsolásával, az az, hogy odáig értem, h legyen egy változó, ami "vezérli", hogy működhet-e a Change rész... (bár ez sem teljesen világos előttem), hogy hogyan?... de a problémám az elméletben ott van, hogyha egyszer kikapcsoltam, mi fogja visszakapcsolni, engedélyezni, h a Change rész lefusson, lefuthasson?
-
KaliJoe
tag
válasz
Fferi50 #24979 üzenetére
Szia Fferri50,
Néztem. Át is írtam a kódomat a KeyDown-ra... aztán a tesztelésnél jött ki, h nem jelzi a Backspace-t. Mivel ott voltak a konstansok, azt hittem sínen vagyok...
Igaz nekem nem
"Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)" -dal hívta meg az eseményt, hanem
"Private Sub object_KeyDown( ByVal KeyAscii As MSForms.ReturnInteger)" vagy
"Private Sub object_KeyDown( ByVal KeyANSI As MSForms.ReturnInteger)" formában. Ez lehetett baj?Azért, ha tudod, a Change esemény figyelés megoldását leírnád érthetőbben? Kérlek... :-)
-
KaliJoe
tag
válasz
Fferi50 #24973 üzenetére
Szia Fferi50, és Szia Mindenki,
Végül visszatértem a Change eseményre, mert a karakter most sem volt kiolvasható rendesen... noha még konstansok is vannak...
A problémát megoldottam - nagyjából - még egy változó segítségével, amely azt figyeli, h éppen rövidül-e (backspace, delete) vagy növekszik a TextBox.Value sztring hossza.
Viszont keletkezett egy új gondom... Change esemény akkor is bekövetkezik, ha éppen inicializálom a szövegdobozt és / vagy valamit - a felhasználó beavatkozásán kívül - magam írok hozzá a karakterlánchoz (pl. telefonszámban a tagolást, (, ), jeleket és szóközt) ... így gyakorta többször is meghívja önmagát a Change, nem várt eredményeket hozva.Próbáltam kikapcsolni az eseményfigyelést a
Application.EnableEvents = False és
... esemény programkódja ...
Application.EnableEvents = True
utasításpárossal, de mintha rá se hederítene... Mit kell még átállítani, hogy ne következzen be esemény, vagy hogy lehet megkerülni? -
KaliJoe
tag
válasz
Fferi50 #24969 üzenetére
Szia Fferi50,
Megpróbáltam azért... már majdnem nagyon örültem, h ez mégiscsak megoldás lesz, mert valóban ez megmondta a billentyűnyomást... egy Integer formában vissza is adta...
... kivéve éppen a keresett Backspace-t
, meg társait, mert ezekket megnyomva a TextBox végrehajtja a műveletet, de a TextBox_Neve_KeyPress (ByVal KeyANSI As MSForms.ReturnInteger) nem hívódik meg...
Namármost, ha tudtok olyan beállítást, amely ezekben az esetekben is meghívja a eseményvezérelt rutint, akkor helyben vagyok!
-
KaliJoe
tag
válasz
Fferi50 #24969 üzenetére
Szia Fferi50,
Sajnos, ez sem az amit kerestem... Mert nekem egy TextBox_Neve_Change eseményen belül kellene megmondanom, h mi volt a karakter...
Az a módszer sem jó, h leválasztom az utolsó karakterét, mert pl. egy Backspace rögtön el is vesz egy karaktert a TextBox_Neve.Value tartalmából...
Szóval, azt kellene megmondanom, h pl. a Backspace-e az utolsó billentűnyomás, kb. még az előtt, h kivonná a TextBox_Neve.Value értékéből az utolsó karaktert. -
KaliJoe
tag
válasz
slashing #24968 üzenetére
Szia slashing,
Sajnos, ez nem jó... ennek pont az ellentéte kell. Amit ott leírtak, az arra jó, ha én (vagy a felhasználó) akar elküldeni egy billentyűnyomást, vagy billentyűkombinációt az éppen futó Makró számára.
Nekem az kell, hogy a felhasználó éppen mit nyomott meg utoljára... Ebben nagyon sokat segít a Like (mert ki lehet vele szűrni rengeteg nem kellő bevitelt... de nem tudom, hogy kezeli-e a speciális / vezérlőkaraktereket. Ha erre tudsz valami linket...
-
KaliJoe
tag
Sziasztok,
Tud valaki megoldást arra, hogy egy űrlap textboxának kitöltése közben meg tudjuk határozni, h éppen mi volt az utolsó felhasználói billentyűnyomás?
A Like operandussal sokat ki tudok szűrni, de nekem vezérlőkaraktereket kellene megfigyelnem, úgy mint Backspace, Delete, kurzormozgató nyilak... Ötlet? Módszer?
-
KaliJoe
tag
Sziasztok,
Van arra valakinek valami ötlete, hogy hogyan lehetne egy képlet - tehát nem makró! - részeként leellenőrizni, h egy bizonyos nevű munkalap létezik-e a Munkafüzetben?
-
KaliJoe
tag
Szia kymco,
Ha a verbális erőszakot nem akarod, akkor próbálkozhatsz a fizikaival is. Lehet gyorsabb megoldás!
Képletben:
...
For Each str_Dolgozó as wsh_DolgozókNeve
If "verbális erőszak"<>"Eredmény" then
Do
Üt=Üt+1
Loop "verbális erőszak"<> "Eredmény"
End if
Next str_Dolgozó
... -
KaliJoe
tag
Sziasztok,
Tud valaki trükköt vagy konkrét parancsot, amivel egy VBE makróban kijelölt (pl. Bármi.Select - tel kiválasztott) és / vagy beillesztett cellamegjelöléseket le lehet venni a cellákról? Vagyis olyan mintha ki lenne jelölve, aztán ESC gombot nyomna a felhasználó...
Ötlet? Parancs? Trükk?
-
KaliJoe
tag
Sziasztok,
Ki tudja, hogyan lehet érvényes formában speciális karaktereket bevinni makróba, úgy, hogy végül képletté lehessen átadni. Valahogy így:
...
str_COszlop = "=SZÖVEG(B" & Trim(str(lng_AktuálisSor)) & ";""nnnn"")"
...
Worksheets(str_DolgozóRövidNév).Range("C" & Trim(str(lng_AktuálisSor))).Formula = str_COszlop
...
vagy
str_HOszlop = "=HA(VAGY(E" & Trim(str(lng_AktuálisSor)) & "=0;D" & Trim(str(lng_AktuálisSor)) & "=0);0;(E" & Trim(str(lng_AktuálisSor)) & "-D" & Trim(str(lng_AktuálisSor)) & ")-G" & Trim(str(lng_AktuálisSor)) & ")"
...
Worksheets(str_DolgozóRövidNév).Range("H" & Trim(str(lng_AktuálisSor))).Formula = str_HOszlop
...
Az első példa tartalmaz olyan részletet, ahol " idézőjelet kellene bevinnem. Nem tudom, az helyes-e így, mindenesetre szintaktikailag nem minősíti hibának, evvel még elindul.
A második példa nem tartalmaz speciális karaktert... mégis azonos az eredmény, futás közbeni hibára fut, miszerint "Application-defined or object-defined error"...Szóval, ki-mit-tud képletbevitel témában?
Ui.: Csak string képletek beírásával van bajom, a számokat tartalmazó képlet hibátlanul átmegy.
-
KaliJoe
tag
Sziasztok,
Írok egy jelenléti ív programot. Oda jutottam, hogy egy újabb vizsgálatnál ki akarom íratni a dolgozó teljes nevét. Ehhez most éppen a rövid név áll rendelkezésemre, ami egyezik a dolgozó jelenléti adatait nyilvántartó Munkalap nevével. Viszont a beírt VBE sor hibára fut. Megnéztem előtte sima képlettel ott rendben van. Az adatok:
Az Excel sor: =INDEX(Személylap!B2:K25;HOL.VAN("KalinaJL_1";Személylap!K2:K25;0);1)
A VBE sor kiemelve a kódrészlettel:
For Each wsh_DolgozóRövidNév In Worksheets
If dat_BeírandóDátum <= Worksheets(wsh_DolgozóRövidNév.Name).Cells(Worksheets(wsh_DolgozóRövidNév.Name).Cells(1, 1).Value, const_DolgozóNévOszlop).Value Then
int_Válasz = MsgBox("A kiválasztott" & Chr(10) & Chr(13) & _
Chr(9) & WorksheetFunction.Index(const_SzemélylapAdatbázis, WorksheetFunction.Match(wsh_DolgozóRövidNév.Name, const_SzemélylapRövidNévOszlop, 0), 1) & Chr(10) & Chr(13) & _
"nevű dolgozó adatbázisában későbbi időpont az utolsó bejegyzés, mint az Általad választott dátum. Akarod felülírni az űrlapon megadott információkkal az adatbázisban lévőt illetve beszúrni, ha nem létezik bejegyzés erre a dátumra?", _
vbQuestion + vbYesNo + vbDefaultButton2, "Felülírás-Beszúrás?")
If int_Válasz = vbYes Then
bol_Beszúrás = True
ElseIf int_Válasz = vbNo Then
Exit Sub
Else
'Úgy vesszük, mintha Nemet mondott volna = Visszalépés az űrlaphoz, hogy módosíthasson
Exit Sub
End If
End If
Next wsh_DolgozóRövidNévA piros rész dob hibát, miközben, az értékeket rendesen tudja:
A hibaüzenet:
Kinek, mi az ötlete, mi lehet a gond? És, főleg, mi lehet a megoldás?
-
KaliJoe
tag
Sziasztok,
Van egy felsorolásom, amelyik a hét napjait tartalmazza, magyarul.
Van egy űrlapon két Combobox-om, amelyek .Value paraméteit a felhasználó állítgatja, természetesen a hét számát választja ki az egyikkel és a hét napját a másikkal.A problémám akkor keletkezik, amikor vissza akarom fejteni ezeket az adatokat újra dátummá, vagy dátumértékké, emígyen:
dat_BeírandóDátum = DateAdd("n", (CBox_Hét.Value - 1) * 7 + CBox_NapNeve.Value, Date)
vagy emígyen:
dat_BeírandóDátum = DateAdd("n", (CBox_Hét.Value - 1) * 7 + enu_HétNapja = CBox_NapNeve.Value, Date)
Miközben enu_HétNapja tökéletesen tudja (és értéket is rendel a hét napjaihoz), hogy mennyit ér mondjuk 'péntek', ahogy ezt az alábbi kép is mutatja:Persze, arra is rájöttem, h enu_HétNapja = CBox_NapNeve.Value összefüggésre max. egy False válaszra méltat az Interpreter... mivel:
... és közben CBox_NapNeve.Value típusa karakterlánc (magától értetődően), amikor nekem számot kellene az összeadásba adnom... :-(
Tehát a kérdésem az, h hogyan kellene helyesen megfogalmazni a fentiekben Látható sort VBE módra, hogy az összefüggés helyesen adja az éven belül eltelt napok függvényében a dátumot? -
KaliJoe
tag
Kedves Blogozók,
Én még csak újonc vagyok itt és éppen csak néhány napja csatlakoztam Hozzátok, de nagyon meglepett az a kedves hozzáállás, amivel egymás (köztük az én) problémái(m) iránt viseltettek. Magam is ilyen gondolkodásúnak tartom magam, úgyhogy nagyon örülök, hogy köztetek lehetek!
Evvel az üzenettel és képpel kívánok Boldog Új Esztendőt, és köszönöm meg értékes segítségeteket.
-
KaliJoe
tag
Sziasztok,
Tudtok jó megoldást arra, hogy hogyan lehet ciklusból megcímezni 24 különböző CheckBoxot, amelyek neve csak egy sorszámban tér el? A CheckBoxok egy Frame-ben belül vannak.
A cél, h egy cellákban adott listából feltöltsem a CheckBoxNN.Caption tulajdonságát.Ahová be akarom tölteni programból:
Vagy csak manuálisan lehet az értékeket megadni? Emigyen:
ChboxNév01.Caption = Worksheets("Személylap").Cells(byt_AktuálisSor, "B").Value ,
helyett
ChboxNév01.Caption = Worksheets("Személylap").Cells(2, "B").Value
ChboxNév02.Caption = Worksheets("Személylap").Cells(3, "B").Value
ChboxNévNN.Caption = Worksheets("Személylap").Cells(xx, "B").Value -
KaliJoe
tag
Sziasztok,
Kinek milyen ötlete van arról, h valamit az Excel megcsinál normál cellás képletben, és ugyanazt nem teszi VBE-ben?
Mutatom a kódsorokat:
Cellás: =MARADÉK((MOST()-CSONK(MOST();0))*24;1)*60 , ami kitűnően kiszámolja egy adott időpillanatban a percek számát.
VBE-s:
byt_ElemÉrkÓra = Fix((Now - Fix(Now)) * 24)
byt_ElemÉrkPerc = (((Now - Fix(Now)) * 24) Mod 1) * 60
byt_ElemTávÓra = Fix((Now - Fix(Now)) * 24 + 1 / 3)
byt_ElemTávPerc = (((Now - Fix(Now)) * 24) Mod 1) * 60
ebben a kódrészletben azonban nem hajlandó a perceket helyesen számolni. Az órák rendben, a percek viszont nullázódnak, mivel a MOD osztás eredménye eleve 0 lesz. Utána már hiába szorzom 60-nal.Ötleteket kérek. Ha nincs ötlet, h miért különbözik a megoldás, akkor áthidaló, vagy megkerülő ötleteket várok!
Köszönöm. -
KaliJoe
tag
válasz
slashing #24756 üzenetére
Szia Slashing,
Jah, de akkor meg váltogatni kell két ablak között. Nem jó megoldás. Olyan kell, h egy ablakon belül külön görgethető két nézet...
De, ha Neked sem megy, akkor meg vagyok nyugodva... h nem én nem csináltam meg valamit, amit meg kellene, h úgy működjön.Jó éjszakát...
-
KaliJoe
tag
válasz
DrojDtroll #24753 üzenetére
Szia DrojDtroll,
Ehhez a témához egy kérdés: Sima ügy felosztom - függőleges osztóval - a nagyméretű táblámat. Szeretném A-tól J-ig a baloldalon görgetni (függőleges irányba), míg K-tól szeretném, ha a tetején (vagy egy tetszőleges ponton) hagyni. Nekem viszont nem görgeti külön, hanem EGYÜTT.
Megőrjít. Kell még azon kívül tenni valamit, h felosztom?
Új hozzászólás Aktív témák
- OLED TV topic
- Hobby elektronika
- Filmvilág
- Építő/felújító topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- alza vélemények - tapasztalatok
- RETRO beárazás (mobil, PC, konzol)
- A fociról könnyedén, egy baráti társaságban
- Egyslotos Galax VGA az NVIDIA Blackwell platformon
- Óra topik
- További aktív témák...
- BESZÁMÍTÁS! Asus ROG B450 R7 5800X 32GB DDR4 1TB SSD RX 6800XT 16GB ZALMAN S2 TG A-Data 750W
- BESZÁMÍTÁS! 16GB (2x8) Kingston HyperX Fury 1600MHz DDR3 memória garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 12 mini 256GB Red -1 ÉV GARANCIA -Kártyafüggetlen, MS3627
- HIBÁTLAN iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3337, 94% Akkumulátor
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest