Hirdetés
-
Mobilarena
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
-
BDave
őstag
válasz
Fferi50 #50919 üzenetére
Köszönöm, sikerült! Viszont hozzáadtam egy &" előadó" tagot a képlet végére, így meg elkezdte kiírni tizedesvesszővel az amúgy kerek értéket. Hogy tudom újra lekerekíteni? A formázás nem segített.
Tehát így néz ki most a képet:
=SUMPRODUCT((E3:E198<>"E2:E197")/COUNTIF(E3:E198,E3:E198))-(COUNTIF(E3:E198,E3))&" előadó"és így adja ki: 93.0000000000001 előadó
-
föccer
nagyúr
válasz
Fferi50 #50875 üzenetére
Ez be van állítva, így használom rég óra
Egyébként ki kellene crop-olni az időt és csak az év-hónap-nap-ot tárolni, az megoldás lenne. Időbélyegre ninc szükségem, de így érkezik az adat a célszoftver lekérésében.
Most a megoldás végül az lett, hogy a beépített dámum szűrőket használom. Nem sokkal hosszabb és hiba nélkül megy. Érdekes észrevétel volt
-
föccer
nagyúr
válasz
Fferi50 #50873 üzenetére
Szia!
Autoszűrő ki-bekpcsolása mindig megy, nem szoktam egyessével kiszedni a feltételeket, hanem hotkey-el kilövöm az egész szűrőt és újra bekapcsolom. 2 másodperc, sokkal gyorsabb
egyébként sima tartomány, nem szeretem a táblázatos megjelenítést.
Dátum adatok vannak a sorokba, pl 44250,4646412037. (van egy másik, bianco tábla, amibe berakok 4 különböző adatlekérés táblázatát, ami összerendezi, kiválogatja és egy csomó kalkulációt megcsinál és visszaad 1 táblát, amit átrakok adat beillesztéssel az összefoglalóba, így mindig ugyan úgy érkeznek az oszlopok. Fixen így működik évek óta. Nem túl elegáns, de hibátlan).
közben azért nyomozok. Valószínáűleg mégis ott van a gond, h 10 000-nél több uniq adat van az oszlopban és az autoszűrő nem jeleníti meg. Ezt erősíti az is, hogy ha az autoszűrő dátumszűrők funkciójában két dátum között résznél megadom azokat a dátumokat, ami nem jelenik meg a listában, akkor is beszűri, helyesen.
Egéybként meg micsoda it hibát találtam. Nincs tiltva a regedit parancs egyszerű enduserként bejelentkezve
[link] Bár ez nem oldotta meg a problémát, de próbálkozásnak jó volt.
-
jackal79
aktív tag
-
szürke
tag
válasz
Fferi50 #50854 üzenetére
föccer, Fferi50
Köszönöm a segítséget mindkettőtöknek!
"Talán ott, hogy az A oszlopban nincs "GJ/MCs", csak "GJ" és "MCs" külön sorokban"
Talált, süllyedt..."Viszont azt is meg kell nézned, hogy van-e "/" a C6 Cellában:
Pl.HA(HOSSZ(C6)=HOSSZ(HELYETTE(C6,"/","")),FKERES(C6...stb,), 2 FKERES a fentiek szerint)
"
Ez a rész arra vonatkozik ha csak egy nevet kellene visszakapnom eredménynek ezért a vizsgált cella nem is tartalmazza a "/" karaktert?
Tekintsd költői kérdésnek, ebből a részből már semmit nem értekÖrülök hogy a "/" karaktert tartalmazó 2 nevet visszaadó rész működik, a maradék esetben meg majd bepötyögöm ami kell.
Hálás köszönet a segítségért nektek!
-
Lacpac
őstag
válasz
Fferi50 #50842 üzenetére
Igen, úgy értettem, csak az alap képlet ez:
=ÁTLAGHA(D7:W7;"<>"&MAX(D7:W7))
D7-W7 cellatartományban szereplő értékek átlaga, a max-ki van hagyva.
Kellene még ehhez az, ha többször szerepel a max érték ebben a 20 cellában, akkor csak egyszer ne számolja bele az átlagszámításba. -
andreas49
senior tag
válasz
Fferi50 #50829 üzenetére
Szia,
Köszi az infót, kicsit rosszul értelmeztem az "egy lépésben húzással ki tudod jelölni, másolás -> beillesztés" folyamatot. Most már rendben van.
A "Kiegészítés" részt már nem próbáltam, mivel az első válasz értelmezése után megtoldódott a problémám.
Köszi még egyszer a segítséget.
-
botond2225
csendes tag
válasz
Fferi50 #50781 üzenetére
Szia,
Egy összehasonlító tábla lenne a cél:
A táblában lévő A-tól R oszlopok adatai adottak -
(pontosabban C-től I oszlopig kapom meg az adatait, utána lévő J-től P oszlopok csak megnézik, hogy a B oszlophoz képest az egyes boltok hogy szerepelnek és azok kerülnek oda. Tehát pl B3-hoz képest a C3 milyen, ez jelenik meg a J3-ban) -
,ami alapján szeretném hogy az S oszloptól kezdődően végezze el az alábbi számításokat:
A "B" oszlop a referenciaoszlop, ahhoz nézem, hogy az egyes boltok árai hogy viszonyulnak egymáshoz (C-I oszlopok).A J-P oszlopok között jelenik meg, hogy az adott bolt mennyivel tér el, avagy ha nincs összeg, akkor a "nincs" értéket veszi fel.
A Q oszlop egy rangsor oszlop, ami 1-2-3-4-5 értéket vehet fel, ez kitöltve lenne már, mint alapadat, tehát ez is adott mindig.
Az S oszloptól kezdődően az oszlopoknál lévő TOP1-TOP2-TOP3-TOP4-TOP5 oszlopok emiatt lennének, hogy abba az oszlopba kerül annak az adata, amelyik a "Q" azaz a rangsor oszlopban szereplő érték szerepel. Tehát 1 = TOP1, 2=TOP, stb.
Ha egyezőséget talál valahol, oda tegyen 1-et, ha nem talál, tegyen 0-t.
(mivel 4 lehetőség van és mindegyiket szeretném megjeleníteni, ezért 1 sorban az egyes boltoknál valahol szerepelnie kell 1 db 1-esnek a többinek 0-nak kell legyen.Amit ki szeretnék nyerni, hogy az adott bolt olcsóbb-e vagy drágább, vagy pont ugyanannyi, vagy (ha nincs ár) nincs, azaz nincs a kínálatban a vizsgált termékkel.
Tehát a mintafájlban a 3. sorban AA oszlopban azért kap 1-et, mert a B oszlophoz képest az C oszlop magasabb, tehát drágább és a "rangsor értéke", azaz a Q oszlopban 4-es érték szerpel.
Remélem érthetően írtam le és köszi a segítséget.
-
TillaT
tag
válasz
Fferi50 #50756 üzenetére
Kedves Feri és Delila_1!
Nagyon köszönöm, hogy foglalkoztatok a kérdésemmel!
Ahogyan Feri írta, "Ezért úgy gondolom, a kérdező eredeti felvetése pontosításra szorul."
Teljesen igazad van.
Nagyon balga voltam. Valóban csak addig van kiemelés a ComboBoxban megjelenített elemen, amíg a fókusz a ComboBoxon van. Mihelyt elkattintok egy másik vezérlőre, megszűnik a kijelölés.
Én azt szerettem volna elérni, hogy elkattintás nélkül is szűnjön meg a kijelölés.
Végül úgy oldottam meg, hogy a makróban áttettem a fókuszt egy másik vezérlőre.A makró funkcióját tekintve tényleg nem baj ez a kiemelés, csak esztétikailag bántja a szemet, mert az űrlap színvilágához képest nagyon dominál. Még egyszer köszönöm az időtöket!
-
Lasersailing
senior tag
válasz
Fferi50 #50683 üzenetére
Szia,
Ismét köszönöm válaszodat!
Én írtam ki így az adatot (mármint a makróm), így tuti. rá. Sajnos angol cég vagyunk így örökös dátumformátum problémákkal küzdünk.Ami igazán "szép", hogy ez a dátumformátum az exceltől jött automatikusan...
Ezzel írom ki a dátumot oda, ahonnan később beolvasom:Sheets("serials").Cells(sm, 3).Value = Date & "_" & Time
Megcsináltam a mókolást, elég csúnya lett, de működik. Azért megosztom, hátha van szebb ötleted Neked, vagy bárki másnak:
keresdatum = Mid(Sheets("Serials").Cells(se_sm, 3).Value, InStr(1, Sheets("Serials").Cells(se_sm, 3).Value, "/20") + 1, 4) & "/" & Right("0" & Left(Sheets("Serials").Cells(se_sm, 3).Value, InStr(1, Sheets("Serials").Cells(se_sm, 3).Value, "/") - 1), 2) & "/" & Right("0" & Mid(Sheets("Serials").Cells(se_sm, 3).Value, InStr(1, Sheets("Serials").Cells(se_sm, 3).Value, "/") + 1, InStr(1, Sheets("Serials").Cells(se_sm, 3).Value, "/20") - InStr(1, Sheets("Serials").Cells(se_sm, 3).Value, "/") - 1), 2)
Ez úgy tűnik, hogy jól működik, csak nem szeretem, ha kilóg a képernyőről a képlet...
Ill. ekkora képletnél már előfordulhatnak hibák, amit nehéz kiszúrni, ha nem nagyon látványos... -
Lasersailing
senior tag
válasz
Fferi50 #50516 üzenetére
Szia,
Bocsánat, hogy eddig nem válaszoltam, csak közben elragadott a munkám, így ezzel (a szintén munkámmal
) kevesebbet tudtam foglalkozni...
Office 365-öt használunk.
Közben annyit még kinyomoztam az IT-n keresztül, hogy jelenleg 2 vírusírtó fut a szerveren, ami lassítja az írás - olvasást. Elvileg folyamatban van, helyettük egy harmadik telepítése, ha lekerül az első kettő, az segíthet, főleg, hogy az egyik a kettő közül híresen lassú a (helyi) IT szerint...
A dedikált terület nem szerencsés megoldás: Az adatbázis egyik sheetje szériaszámokat tartalmaz. Egyik gépen megnyitják az adott szériaszámot (A-B-C oszlopokba írás), amit a másik gép lezár (D-E oszlopba írás). Ezek között elvileg lehet, hogy csak 5 perc telik el, de akár kevesebb is lehet...
A file megnyitást már úgy csináltam meg, hogy amikor csak olvasni akar belőle, akkor csak olvasásra nyissa meg, azaz az írási jogot meghagyja más felhasználónak.
A munkafüzet megosztást lényegében teljesen kizárom, az (számomra) kezelhetetlen problémákat okozna az adatbázisban (azonos cellába két különböző adat írása), akkor százszor inkább legyen 2 sec az írás.Nagyon köszönöm segítségedet!
Visszatérve az eredeti felvetésemre. Ezeken kívül még van valami, amit érdemes ki/be kapcsolni?
-
Pá
addikt
válasz
Fferi50 #50539 üzenetére
Csak most tudtam megnézni, mert hétvégén másik laptop volt nálam.
Köszi, ez tökéletesen működik, pont azt csinálja, amit szerettem volna tőle. Egy dolgot kéne még megoldani. Hogy amit kiírtunk az új cellába (tehát a függvény eredményét) ki is törölje az eredeti cellából. Vagy a függvények alapvetően nem tudják módosítani a cél cellát és erre egy külön subot kéne írni?Ráadásul talán sikerült is nagyjából visszafejtenem és megértenem, hogy működik, szóval még tanultam is.
Egyedül a végén a "For Each a In b" kifejezés nem logikus. Ha jól értem az a "a" nagyobb egység mert az egész cellára utal. A "b" pedig a kisebb egység, hiszen csak két határoló bizbasz közti rész, nem? Akkor miért nem "For each b In a"?
Mármint látom, hogy valamikor "a" lett a kisebb egység, hiszen a értékér írjuk ki a függvény eredményeként. Csak az nem világos, hogy mikor ment át "a" a teljes cella értékéből csak az adott résszé.ny.janos: neked is köszi, de a fenti megoldás ebben a helyzetben jobban passzol, mert egyéb design okokból sokkal jobb így adott helyen egy extra oszlopból megoldani ezt, mint ennyire szétszedni.
-
Pá
addikt
válasz
Fferi50 #50523 üzenetére
Köszi! Indulásnak jó, de úgy látom, hogy ez minden névre találatot ad a cellában, amelyikben megtalálható a kulcsszó. Nekem arra lenne szükségem, hogy csak arra a névre adjon találatot a cellán belül, ami két időbélyeg között szerepel együtt a kulcsszóval. (egy cellán belül jelenleg sok munkafázis és név van, ebből csak konkrétan egyet keresek)
Most minden névre találatot ad, amik a cellán belül szerepelnek, függetlenül attól, hogy a kulcsszavas, vagy másik munkafázisban szerepelnek.
-
Pá
addikt
válasz
Fferi50 #50512 üzenetére
Közben találtam még pár apróságot, de a fő ludas valóban az volt, hogy egy Transpose függvényem volt, dinamikus indirektes range-dszel és emiatt lefoglalta magának az egész sorokat, plusz valahogy a formázást is vitte magával. Ezt alig tudtam kitörölni.
De így már sikerült elérni a 2.5MB fogyókúrát és most nagyjából reálisnak is tűnik a fileméret.
-
Lasersailing
senior tag
válasz
Fferi50 #50509 üzenetére
Szia!
Először is köszönöm a segítségedet!
1) tömörítés: Ezt nem lehet kikapcsolni esetleg? (hamarabb leszek nyugdíjas, mint hogy a foglalt tárhely számítson, pedig még félidőnél sem járok...)
Most nem látom az adatbázist, de szerintem ~száz kb lehet jelenleg és szerintem évek mire Mb-os méretűvé válik
2) beolvasás miatti megnyitás: Az volt a koncepcióm (lehet, hogy hibás), hogy két file van: Egyik az adatbázis maga, amiben adatokat tárolok (lényegében 3 sheet 3-10 oszlopnyi adattal), másik meg a programot tartalmazza, amit futtatunk 4 számítógépen. A program különböző funkciókat tud ellátni, és mindig az adatbázis file-ba írja az adatokat (ez egyszerre 1-5 cella értékének megváltoztatása). Az adatbázis semmilyen függvényt nem tartalmaz, hogy ne kalkulálgassa újra (ill. egy counts van benne, ezt mondjuk ki tudnám szedni, érdemes lenne?)
3) adatbáziskezelő: sajnos nem értek hozzá. Ill. egész pontosan még középiskolában (25 éve) DBF, meg Clippert tanultam, de azóta azt csak felejtettem. DBF-et tudna excel kezelni? Van esetleg erre valami jófajta oktatóanyag?
accesst nem ismerem egyáltalán, abban nem mernék elmélyedni...
4) beolvasások - kiírások típusa:
elvileg ugyanabba a cellába nem akarok írni kétszer, viszont sokszor írok új sorba. Magyarán az előfordulhatna, hogy mondjuk a 125. sorba írjon egyszerre a program két verziója, két különböző adatot. Amúgy a közös használatúvá tételt 15+ éve használtam melóban, de elég rossz tapasztalatunk volt vele, mindig konfliktus volt belőle, amit viszont az adatbázissal (amit emberi szem nem is lát) nem mernék kockáztatni. -
Lasersailing
senior tag
válasz
Fferi50 #50468 üzenetére
Kár, pedig olyan szép lehetett volna
Sajnos a több textboxot nem szeretném, mert a textboxok adattartama lehet 1-2-3-4 sor is. És úgy írtam az egész makrót, hogy ha kell lehessen 10 soros is a textbox (szakmailag indokolt lenne...).Másik ötletem az alábbi lenne:
Háttértörténet:
Ez a textbox tartalmaz 2 vagy több alkatrész cikkszámot + megnevezést, amikhez tartozó egyedi azonosítót be kell szkennelnie a dolgozónak. Azt szeretném mutatni neki, hogy melyik van már meg és melyik van még hátra.
Mivel azt már megtaláltam, hogy hol kezdődik a törölhető rész és a hosszát is tudom, így elvileg akár ki is törölhetném a már beszkennelt cikkszámokat.
VBAban string típusú változót karakterenként tudok másolni?
Arra gondolok, hogy átrakom a textbox értékét egy stringbe, majd az eredetileg pl. 60 karakter hosszú stringból kitörlöm a 24-40 közötti karaktereket. Ezt hogyan lehet megtenni? (értelemszerűen az új string 43 karakter hosszú lesz) -
bepken
veterán
válasz
Fferi50 #50435 üzenetére
köszi szépen, tökéletes!
én a fenti megoldásommal csak segédoszlop segítségével tudtam elérni, hogy úgy viselkedjen, ahogy szeretném.
a cellaformázás megoldásban nem vagyok még biztos, mert az összefűzött szöveg értékkel kell tovább dolgoznom majd (és ha jól értem, a cell értéke szám marad)
-
-
ny.janos
tag
válasz
Fferi50 #50410 üzenetére
A DARABHATÖBB függvény alkalmazása remek megoldás (nekem magamtól nem jutott volna eszembe, a DARABTELI-vel próbálkoztam volna, de mint rájöttem az nem alkalmas arra, hogy
DARABTELI($A$2:$A$7&$B$2:$B$7;A2&B2)
formában használjam).
Ha megengeded kiegészíteném egy ötlettel, mely esetén nem kell a második segédoszlop:=1/DARABHATÖBB($A$2:$A$7;A2;$B$2:$B$7;B2)
Ez esetben értelemszerűen az összeget kell használni a kimutatásban a maximum helyett. -
TillaT
tag
válasz
Fferi50 #50405 üzenetére
Szia!
Köszönöm. Mielőtt jobban beleásnám magamat inkább egy gyors kérdés.
Jól sejtem, hogy ha pl. e-mailen keresztül elküldök a gépemről egy átalakított menüszalagos munkafüzetet, akkor az a címzett gépén nem az általam testreszabott menüszalaggal jelenik meg, hanem a címzett gépén meglévő Excel beállításoknak megfelelően? -
istvankeresz
aktív tag
válasz
Fferi50 #50399 üzenetére
Szia!
Igen, először MsgBox-al ellenőriztem a ciklusban a változó értékeit, észrevettem, hogy szépen kiírja mindet, de egymást felülírva csak az utolsót írta ki.
Köszi megpróbálom összefűzni!
Delila_1: Köszi ez is nagyon jó megoldás. Kipróbálom mindkettőt.
Más:
Olyan képlet van ami idő formátumolkból pl (08.00 és 16.00) -ból kiszámolja, hogy 8 órát dolgozott valaki? Félórás munkarendel is kellene működni, azaz aki 08:30-tól 16:30-ig dolgozik, akkor arra is kiadja a 8 órát? -
eszgé100
őstag
válasz
Fferi50 #50383 üzenetére
Szia
"Pontosan milyen feltételeknek kell megegyezniük ahhoz, hogy TRUE legyen az eredmény?"
A TRUE eredményt készen kapom, nem nekem kell meghatároznom, van egy programunk, ami rögzíti az eredményeket, és bizonyos paraméterek alapján eldönti, hogy az adott feladat megfelelően lett-e elvégezve? Ha minden paraméternek megfelelt, akkor TRUE, ha valami nem jó, akkor FALSE.
Miért van az, hogy a második képen a MODEL1SUB2_2_3 első sorában FALSE van, a második előforduláskor pedig TRUE?
Valóságban ez egy csavart jelképez, amit egy bluetooth-os nyomatékkulccsal húzunk meg. A program kiküldi a beállításokat a nyomatékkulcsra, majd a nyomatékkulcs visszaküldi a meghúzási nyomatékot, az elfordulás szögét, hányadik csavart húzta meg a programnak, és amennyiben valamelyik érték nem megfelelő, akkor a program FALSE eredményt ír be a Statushoz, majd engedélyez egy újabb próbát, ami ha sikerül, akkor TRUE lesz, 3x lehet próbálkozni, utána supervisor átveszi. FALSE eredményt kaphatunk még akkor is, ha egy lépést vissza- vagy előreugrunk, valamint, ha nem megfelelő értékeket viszünk be a value vagy text inputhoz.A második táblázat hogyan keletkezik?
A táblázat a program log file-ából van kimásolva, egyelőre kézzel, még nem foglalkoztunk automatizálással, de nem hiszem, hogy ez gondot fog okozni a későbbiekben.
Nekem személy szerint csak egy listára van szükségem a végén, hogy volt-e olyan lépés, ami kimaradt, vagy FALSE a Status, és nem lett később korrigálva, illetve, hogy egy-egy lépés volt-e duplikálva, annak ellenére, hogy már elsőre is TRUE volt stb. Ezt az egészet el tudom képzelni, akár egy külön oszlopban a steps tabon, amit aztán egyszerűen leszűrhetünk.
A programban vannak bugok, pl ha egy legördülő listából valasztjuk ki a Step Numbert, akkor arról semmilyen bejegyzés nem keletkezik, legrosszabb esetben egy-egy (vagy akár több) lépés is kimaradhat, ezért nem merjük magunkat teljesen rábízni, kézzel pedig 30-40 perc átnyálazni az eredményeket.
Jelenleg a kézzel ellenőrzött eredmények alapján készítünk egy riportot, kategóriákra bontva és számszerűsítve a dolgokat.
-
föccer
nagyúr
válasz
Fferi50 #50332 üzenetére
Zsír, működik. Kicsit nyakatekert a használata, jó.
Viszont automatikus újra kalkuláció be van kapcsolva, de ha változik a forrás cella értéke, akkor nem kalkulálja újra a cella értékeét. Ha manuálisan kérem az újraszámítást akkor sem. Csak akkor, ha a célcellát megnyitom szerkesztére és nyomok rajta egy entert.
Elrontottam valamit, hogy így kell működnie?
üdv, föccer
-
föccer
nagyúr
válasz
Fferi50 #50313 üzenetére
Alakul. A részhalmazokra bontás működik, megtalálja az új halmazokat, kigyűjti őket.
Viszont, nincs paraméteres választás, csak egy feltététel rendszert tud jelenleg és fixen 20 részhalmazt kezel. Bár utóbbi bővíthető.
Azt szeretném kérdezni, hogy létezik-e arra megoldás, hogy egy szövegcellában összeállított adatot képletként értelmezzen az excel? Olyan kellene, mint a KÉPLETSZÖVEG, csak fordítva kelle, h működjön. Nem egy képletet fordít szöveggé, hanem egy szöveget képletté (hasonlatosan az INDIREKT függvény a hivatkozásokkal.. Ha ez mőködne, akkor onnantól VÁLASZT-al be tudnám rakni a helyére
üdv, föccer
-
föccer
nagyúr
válasz
Fferi50 #50311 üzenetére
Ugyan már. én köszönöm, h időt és energiát áldozol rám
Alapvetően a kapcsolódó üzletág felügyeleti rendszere biztosít (most még manuálisan, később direkt adatkapcsolaton keresztül) 2 db, fejlécezett adattáblát. Ebből a 2 adattáblából némi adatrendezéssel, számítással összefűzéssel de előállítok egy Recept elemzőt. Ez kb 100-120 oszlopot tartalmaz, és minden olyan releváns adatot tartalmaz, amivel később bármilyen műveletet akarok végezni, illetve ebből az adathalmazból tudom legenerálni a "visszatöltő" adattáblákat. (ezt már nem akarom felprogramozni, mert csak részhalmazra bontást szeretném lemodellezni, hogy milyen funkciókkal és paraméterezhetőséggel lássuk el a szoftvernek annak a részét amit később nem fogunk tudni fejleszteni)
Alapvetően ha a technológiát pár oszlopra be tudom vezetni, akkor azt már tudunm bővíteni, duplikálni.
A recept elemző laprol emeli át az adatokat az MCSA1_Szamolo_elsoelem munkalapra az ott megírt INDEX(SZŰRŐ) függvény. (másd előző hsz-em első képkivágását). Az ottani fejléc az adathalmaz első néhány oszlopa.
Az első elem kiválasztására 1 feltételt adok meg, hogy legyen "élő" a recept. Technikailag bármelyik elem lehetne az első, a lényeg az, hogy az adattáblának legyen első, kiemelt eleme, amihez elkezd az algoritmus összehasonlítást végezni. Ha az összehasonlítás eredménye pozitív (összetartozóak), akkor megkapja az adott részhalmaz azonosítóját. Ha negatív, akkor nem kapja meg. 1 recept minden, korábban létrehozott részhalmazon elvégzi a saját összehasonlítását, és amire pozitív a válasz, arra felveszi az adott részhalmaz azonosítóját. Ha végzett az összes részhalmaz "átnézésével" és szegény szerencsétlen recept még mindig magányos ( flag.count = 0), akkor kénytelen magának új részhalmazt létrehozni, mert valahová tartoznia kell. (ilyenkor szegény recept mélyen magába néz, hogy miért közösítették ki a többiek, miért nem találja meg a helyét az univerzumban, de mivel önfejű a lelkem, ezért elvonul még megalapítja a saját kis részhalmazát).
Ez lesz az alap működése a részhalmazra bontásnak.
Az adott részhalmazba való tartozásának ellenőrzésének az algoritmustát a feltételek fülön lehet megadni. Ennek a feltétel rendszer funkcionálitását kell lemodelleznem, hogy mit kell tudjon a lennedő szoftnak.
üdv, föccer
-
föccer
nagyúr
válasz
Fferi50 #50309 üzenetére
Egy komplexebb szoftvernek egy kisebb rész funkciója ez a mester kód ksztó modul, amivel a meglévő gyártási receptúráka "csoportosítani" tudjuk és azokat tömegesen kezeljük.
A szoftver a komplett optimalizációs/tervező/kezelő adatkapcsolati rendszer lesz.
Szintetizálni szeretném a működését, hogy tudjam tesztelni előtte, hogy egy kvázi működőképes algoritmuist adjunk a programozónak.
Irányított szűrő működése megvan, de nagyon rég használtam. Már jó ideje magam rakom össze a kimutatásokat a Sorba rendez, szűrő, egyedi, index, hol.van, szumahatöbb, darabhatübb függvényekkel. Egészen jópofa cuccokat össze lehet dobni 1-1 táblázatos kimutatásra.
-
föccer
nagyúr
válasz
Fferi50 #50305 üzenetére
A makró megírása
Pá
Kicsit szofisztikáltabban, amit a szoftver téma vázlatába írtam a szoftver tervezőnek az árajánlathoz:
o Mester kód újra definiálás futtatása és az eredmény megjelenítése és másik palettán (vagy child form-on).
Első recept definíció szerint első részhalmazként létrehozva
Ezt követően egyesével az összes recepten az alábbi algoritmus hajtódik végre:
• A vizsgált recept megfeleltethető-e az összes, eddig létrehozott részhalmaz elemeinek. Ha igen, akkor az adott receptúra megkapja a részhalmazra mutató flag-et. Egy receptúra tetszőleges számú flag-et kap (nyilván max részhalmazok száma)
• Ha flag-ek száma = 0, akkor recept új részhalmazt nyit az univerzumban.
• Vizsgált recept alapértelmezetten az első flag- szerinti részhalmazba kerül (így az „előrébb” lévő részhalmazok mindig bővebbek)
Részhalmazok szerinti receptállomány megjelenítve, egymás alá csoportosítva, kiemelve azokat a recepteket, ahol flag-ek száma > 1. Kijelölés (akár buttonnal) és drag ezeken engedélyezve.A Mester Kód gyakorlatilag a részhalmaz azonosítójaként értelmezhető.
No, ebből az első recept kijelölése megvan. Odáig kellene egy jő ötlet, hogy a tételek soronként megkapján a flag-eket (ez simán egy sorszám is lehet mindegy, csak rá lehessen szűrővel szűrni.
-
Lasersailing
senior tag
válasz
Fferi50 #50294 üzenetére
Köszönöm Neked, de sajnos ez nem az amire én vágynék:
csinált nekem ~13 kis ablakot, amiből bezárogattam 11-et majd elrendezem azt a kettőt normálisan. Na mondom ez így jó lesz, de utána mikor váltani akarok egy ablakot nem vált, hanem új ablakot nyit meg a már meglévő kettő fölé. Ennél még a a képlopó is jobban használható. Sajnos arra nem gondoltak, hogy az ember szereti látni is amit csinál... -
Lasersailing
senior tag
válasz
Fferi50 #50286 üzenetére
Köszönöm szépen, Neked és Delilának is a segítséget!
olyan kérdés jutott eszembe, hogy két monitoros környezetben dolgozom és szeretném, ha az egyik monitoron a VBA object-jét tudnám nézni, míg a másikon a VBA code-ját. Értelemszerűen ugyanannak az excelnek (általában) ugyanazon userformját
Van erre lehetőség?
-
-
Pá
addikt
válasz
Fferi50 #50238 üzenetére
Közben eszembe jutott egy jó paraszt/favágó megoldás is.
A blokkokat oldalra kellene sokasítani. Szóval "lefelé" van helyem. Elvileg meg tudom csinálni, hogy az A1: D200 blokk első szabályának a hivatkozási celláját sokszorosítom A201 : D400-ban. A második szabálynak a celláját kiterítem A401 : D600-ban és így tovább. Így tudnék rájuk $$ nélkül hivatkozni és érvényesek lennének az egész blokkra.Azon túl, hogy nem túlságosan elegáns, az lenne a kérdésem, hogy ilyen méreteknél mennyire kell aggódni performance issuek miatt? Ugye az eredeti 200x200 blokkos tervemből, ami önagában 40,000 képletezett cella. Lenne kb 7-8x ennyi. Szóval bő 300,000 cella. A legtöbben ilyen halmozott képletek vannak, sok IF-vel, VLOOKUP-pal és INDEXMATCH-csel.
Szóval mennyire lehet számítani teljesítmény gondokra egy ilyen setupnál? Illetve mit és hogy lehet ilyenkor optimalizálni, ha egyáltalán. -
Melorin
addikt
válasz
Fferi50 #50121 üzenetére
Havi átlag 200, de max 300 anyag rendelését kell kezelnem, amikhez kell egy mini kép, hogy tudja mindenki, hogy milyen anyagról van szó. Az adatokat, árakat stb cikkszám alapján tölti ki a táblázat fkeres-sel egy "adatbázisból" , ezt kéne megtoldani még egy oszloppal amiben egy mini kép lenne az anyagokhoz.
Mivel ez a lista folyton változik, nem akarom kézzel ki-be pakolgatni a képeket, automatizálni kellene. -
Lasersailing
senior tag
válasz
Fferi50 #50056 üzenetére
Köszönöm!
A második ötletet simán el tudom képzelni, ez magyarázná, hogy miért csak néha dob hibát.
Holnap megpróbálok betenni egy rövid szünetet ("sleep") és úgy fogom használni egy pár napig, ha akkor is előjön, akkor jelentkezem. Ha nem, akkor meg kitesztelem mi a legrövidebb várakozási idő ami még elfut. (mert közben az is a gond, hogy rengetegszer kell hálózati file-t megnyitni - bezárni, így pont várakoztatni nem szeretném a programot) -
Lasersailing
senior tag
válasz
Fferi50 #50050 üzenetére
Bocsánat valamit elbénáztam, a csatolásnál:
Ugyanaz a programrészlet egyszer elakad máskor nem. Holnap bentről tudok csatolni hosszabb programrészletet.
Amiket ír:
"invisible": ennek az elemnek a láthatóságát nem variálom a makróban, mindvégig látható --> kizárnám
"not enabled": ez nem tudom mire vonatkozhat???
"type does not accept focus": máskor meg elfogadja, talán nem ez a gond, nem? -
the radish
senior tag
válasz
Fferi50 #50029 üzenetére
Szia!
Akkor most már offolom, úgy néz ki, egyedi a problémám. Azért nem értem, mert két különböző gépről, (WIN10, WIN11) és két különböző Office-ról van szó. Az irodai gép IT által menedzselt, azaz korlátozottak a beavatkozási lehetőségeim és nem is emlékszem, hogy babráltam volna vele.
Most gyorsan megnéztem Sasmsung Ativ Samrt Pc-n (Win11 + Office 365) és ott is produkálja. Semmi mást nem csinálok, csupán kikapcsolom a sor és oszlopazonosítókat.
Mindegy, azért tudok ezzel együtt élni és nagyon köszönöm, hogy segítettél ez ügyben (is).. -
the radish
senior tag
-
Fferi50
Topikgazda
válasz
Fferi50 #50015 üzenetére
No itt a makró javított kiadása:
Sub akarmi()
Dim answer As Integer, wsFound As Boolean
Dim wbSearch As Workbook, wsSearch As Worksheet
wsfound = False
On Error Resume Next
Set wsSearch = Sheets(Textbox11.Value)
If Err = 0 Then
'ha van már ilyen munkalap, akkor feltesszük a kérdést
answer = MsgBox("Ilyen nevű munkatárs már rögzítve! Biztos, hogy folytatod a rögzítést?", vbQuestion + vbYesNo + vbDefaultButton2, "Munkatárs rögzítése")
If answer = vbYes Then wsSearch.Copy after:=Sheets("Havi_TEMPLATE"): wsFound = True
Else
Err = 0
Sheets("Szemely_TEMPLATE").Copy after:=Sheets("Havi_TEMPLATE")
ActiveSheet.Name = Textbox11.Value
wsFound=True
End If
On Error GoTo 0
If wsFound Then
With ActiveSheet
.Range("A2") = Textbox11.Value & " " & ComboBox7.Value
.Range("B2") = TextBox12.Value
.Range("C2") = TextBox13.Value
.Range("D2") = TextBox14.Value
End With
MsgBox "Munkatárs sikeresen rögzitve! Kérlek zárd be és nyisd meg újra a programot!"
End If
Textbox11.Value = ""
ComboBox7.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""
'Sheets(xx).Activate az alapmunkalap aktíválása, ha szükséges.
End Sub -
istvankeresz
aktív tag
válasz
Fferi50 #50007 üzenetére
Szia!
Azért, mert a bezárás nélkül nem látszik az új berögzített személy, azaz a új worksheet egy másik comboboxban, ahol ezt az új worksheet-t ki lehet választani. Ezt még nem sikerült megoldanom. De rajta vagyok ezen is.
Esetleg valami GoTo megoldás nem lehet jó nekem? Talán ha az egyik feltétel teljesül, akkor ugorjon ide, ha a másik, akkor ugorjon oda.
-
Magnat
veterán
válasz
Fferi50 #49978 üzenetére
Igen, mondjuk a Text amiatt is necces, h ott mindig azt kapod ami éppen ki van írva, szóval ha össze van nyomva a cella és nem fér ki a valós tartalom, akkor a textben sem lesz benne (meg elég lassú is)... a Value2 annyiban is jobb mint a Value (ez annak a folyománya amit írtál), h az általad is említett currency és date típusoknál adatvesztést is okozhat tizedesek tekintetében, illetve kicsit lassabb is a Value2-nél: [link]
-
istvankeresz
aktív tag
válasz
Fferi50 #49944 üzenetére
Szia!
Ez tökéletes. Viszont a kiolvasott cellákat szeretném másolni egymás alá egy másik munkalapra.
Ezt hova kell berakni, hogy jó legyen? Ha egyáltalán helyes.
lr = Sheets(6).Range("E" & Rows.Count).End(xlUp).Row + 1
Ebbe szeretném beletenni, úgy, hogy minden ciklus után ugorjon egy sort.
Dim cell As Range
Dim ws As Worksheet
Dim lr As Long
For Each ws In ThisWorkbook.Worksheets
For Each cell In Sheets(ws.Name).Range("K2:K6")
If cell.Value Like "1234.56*" Then
Sheets(6).Range("E10") = cell.Value
' MsgBox (ws.Name & " " & cell.Value)
End If
' MsgBox (ws.Name & " " & cell.Value)
Next cell
Next ws
End Sub
MsgBox-ok, csak ellenörzésnek vannak, hogy lássam, hogy a megfelelő értékekkel dolgozom.
Köszi!
-
istvankeresz
aktív tag
válasz
Fferi50 #49934 üzenetére
Szia!
Jó volt kiindulási alapnak a kódod, Köszönöm! Sikerült összeraknom úgy, ahogy nekem kell.
Következő kérdésem mindenkihez:
Feltételnek szeretném megadni egy cella értékét. Ha az a cella egy karakter sorozattal kezdődik, pl.: 1234.56 , de még vannak mögötte karakterek, akkor a tudok olyan univerzális jelet használni, mint máshol a csillag, azaz ha valami 1234.56-al kezdődik akkor vegye figyelembe, egyébként pedig nem. Magyarul VBA-ban is lehet * karaktert használni? Mert nekem így nem találja meg amit keresek.
Új hozzászólás Aktív témák
Hirdetés
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Sorozatok
- Hitelkártyák használata, hitelkártya visszatérítés
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Béta iOS-t használók topikja
- Háztartási gépek
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Vivo X200 Pro - a kétszázát!
- Genshin Impact (PC, PS4, Android, iOS)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- 27%-OS ÁFÁS SZÁMLA I Jogtiszta Microsoft digitális és fizikai termékek I DIGITALKEYZ.COM
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- PC Game Pass előfizetés
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
Állásajánlatok
Cég: FOTC
Város: Budapest