- Félreértések az FSR 4 és a PlayStation 5 Pro körül
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Azonnali informatikai kérdések órája
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- OLED TV topic
- VR topik
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- A GravaStar analóg klaviatúráira nem mondható, hogy konformisták volnának
- Bluetooth hangszórók
- iPad topik
-
PROHARDVER!
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
-
agemate
addikt
válasz
m.zmrzlina #9449 üzenetére
Köszönöm!
-
eeeasy
csendes tag
válasz
m.zmrzlina #9443 üzenetére
Igen, pontosan ilyen táblára van szükségem.
"Ezekhez az elemekhez honnan fogunk árat rendelni? Üresen hagyjuk az ár helyét?"
Igen.
"Mindig a tábla1 terméknevei a bővebbek mint a te példádban vagy van olyan is mint az én példámban a nagyharang-templomi nagyharang ahol a tábla2 leírása bővebb?"
Elméletileg a tábla1 terméknevei tartalmazzák a felesleges szavakat, kicsi az esély arra, hogy a tábla2 bővebb.
-
eeeasy
csendes tag
válasz
m.zmrzlina #9441 üzenetére
"Az első táblázat hibás elemeit mindig a második táblázat első termékoszlopában kell keresni"
Igen.
"mások kettőt változtatás nélkül hozzácsatolni"
Igen.
"Azonos sorban szereplő 3 terméknek azonos az ára is?"
Egy sorban egy fajta termék van, az oszlopok ('A', 'B', 'C') termékleírások/termékjellemzők.
Az volna a cél, hogy az ár átkerüljön a táblázat1-ből a táblázat2-be az azonos termékhez. A különböző táblázatokban a terméknevek ('A' oszlop)nem teljesen azonosak, csak részlegesen egyeznek, ez a fejtörő, asszem.
-
eeeasy
csendes tag
válasz
m.zmrzlina #9438 üzenetére
lehet felreertheto volt, hogy egybe mehet a harom tablazat. pontositok, a ketto mehet egybe, a harmadik annak a semaja, amit szeretnek, tehat a vegeredmeny.
-
eeeasy
csendes tag
válasz
m.zmrzlina #9438 üzenetére
igen, mehetnek egy tablazatba
-
eeeasy
csendes tag
válasz
m.zmrzlina #9436 üzenetére
bal oldalon tablazat1, jobbra tablazat2, alul tablazat3.
http://mobilarena.hu/dl/upc/2011-02/13/16014_afsyrvpvrsq2ig7y_excel.jpg
-
polarx
tag
válasz
m.zmrzlina #9397 üzenetére
Ez esetben az kapott eredmény:0245,62E+04
még mindig nem az igazi.egyéb ötlet?
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #9393 üzenetére
-
válasz
m.zmrzlina #9359 üzenetére
Akkor talán így
Sub find()
eleje:
On Error Resume Next
Cells(2, 3).Activate
amitkeres = InputBox("Add meg a keresni kívánt nevet!", "Keresés", amitkeres, 13000, 100)
Cells.find(What:=amitkeres, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
If Err.Number <> 0 Or ActiveCell.Row <> 2 Then
MsgBox ("A keresett név nincs a listában.")
GoTo eleje
End If
End Sub -
válasz
m.zmrzlina #9355 üzenetére
Hát szerintem ez a kód nem működik jól, vázolom mit látok. A kód a C oszlopban lefelé keres (C2 cellától lefelé). Feltöltöttem pár adattal
C2->a
C3->b
C4->c1. Ha "a"-t keresek, akkor semmit nem ír ki(megtalálja az "a"-t) és kilép a szubrutinból.
2. Ha "b"-t (vagy "c"-t) keresek, arra azt írja ki, hogy nem található (holott igen) és újra bekéri mit keressen
3. Ha "x"-et keresek(ami valóban nincs a C oszlopban), akkor kiírja hogy nem találta és bekéri újra, hogy mit keressenSzóval mit is szeretnél kivitelezni, hogy kellene, hogy elméletben működjön ez a kód?
-
válasz
m.zmrzlina #9355 üzenetére
Megsasolom, mert így hirtelen ránézésre ezt "szebben" is meg lehetne írni. (de nem biztos persze) csak itt nálam nagy a forgalom most éppen, jelenleg egy "kiírt valamit a nyomtatóm, és azóta nem tudok nyomtatni vele" user-t veri a víz.
Mondtam neki: Öngyilkos akar lenni a nyomtatód
Miért?
Mert kiírta, hogy vegyél neki cián patront.(Egy rendszergazada találkozón hallottam ezt az aranyköpést, de most tényleg ez a "baja" a printernek.
)
-
válasz
m.zmrzlina #9353 üzenetére
Igen (többek közt).
1. rossz helyen is van a hibakezelés a kódban
2. használd a Resume Next "verziót" és ezt követően az Err.Number-t vizsgáld meg -
válasz
m.zmrzlina #9350 üzenetére
Formailag van gond a hibakezeléssel, itt egy kis olvasnivaló a témakörben, mely után biztosan rájössz a megoldásra: [link]
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #9348 üzenetére
Érdekes, hogy második alkalommal is az On Error GoTo uzenet utáni sor okozza a hibát mint elsőre de először el tud menni az uzenet: címkére másodszor már nem.Akkor sem ha nem ugyanaz az inputbox tartalma mint először.
Magyarul, ha kétszer gépeli el a júzer a nevet akkor ugyanúgy kiakad a kód mintha nem is lenne benne hibakezelés.
-
Delila_1
veterán
válasz
m.zmrzlina #9348 üzenetére
Szokásomhoz híven félreértettem a dolgot, azt hittem, csak a páros sorokban kell keresni.
-
Delila_1
veterán
válasz
m.zmrzlina #9346 üzenetére
A feltételhez ezt írd annak lekérdezéséhez, hogy az aktív sor páros-e?
If ActiveCell.Row Mod 2 <> 0 Then
A sorszám 2-vel történő osztásának a maradékát vizsgálja. Páros sorszámnál ez 0.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #9345 üzenetére
Még az előzőhöz...
Ha viszont a 2.soron kívül lévő cella tartalomra keresek akkor rendben működik (adja a hibaüzenetet) akárhányszor ismétlem meg a keresést.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #9341 üzenetére
Nekem is volna egy kérdésem a #9341-ben lévő kóddal kapcsolatban a nálam okosabbakhoz.
Miért van az, hogy ha olyan karaktersorozat kerül az inputboxba ami nincs a munkalapon, de még csak nem is része egyik létezőnek sem akkor az első próbálkozást rendben lekezeli a hibaüzenettel, a másodiknál viszont kiakad a 91-es hibával?
-
pirit28
csendes tag
válasz
m.zmrzlina #9341 üzenetére
Szia !
Gratula !
Kérdésedre válaszolva, igen egy név csak egyszer szerepel a listában.
Köszönöm szépen a fáradozásaidat. Az utóbbi kód amit írtál ,tökéletesen megfelel arra amire én szeretném használni. Sok fáradságtól mentettél meg.A további szép napot kívánok !
-
pirit28
csendes tag
válasz
m.zmrzlina #9336 üzenetére
Szia m.zmrzlina !
Köszönöm a gyors választ, és a megoldást a kérésemre.
Sajnos a cégnél csak 2002 és 2003-as Office-ok vannak ezek frissítésére nincs mód.
A kód amit írtál tökéletesen megfelel , nem is kellene ennél több de ha tudnád még ezt egy kicsit cifrázni azzal, hogy csak a 2-es sorban keresse a neveket, és minden egyes újabb név keresésekor a 2-es sor legelejéről kezdje a keresést.Még annyi lenne hogyha pl:; elgépelem a nevet ami az adott lapon nem szerepel akkor megáll run-time 91-es hibával.De egyébként így is használható.Köszönöm !! :-) -
Delila_1
veterán
válasz
m.zmrzlina #9282 üzenetére
CSAK a lényegre nem figyeltem.
A Beszúrás/Szimbólum menüpont közvetlenül adja a karaktertáblát.
Ki is teheted az ikonját, ha sűrűn használod. A Testreszabás menüben a Parancsok fülön a Beszúrás kategóriát választod, a Parancsok között megtalálod a Szimbólumot, azt felhúzod az Eszköztárra az ikonjaid közé. -
Delila_1
veterán
válasz
m.zmrzlina #9286 üzenetére
Eddig nem néztem bele a karaktertábla súgójába.
Most kiderült, hogy nem kell kivaksizni pl. a felső indexes karaktereket. A speciális nézet csoportosításánál az 'Unicode alosztály' kiválasztása után kapsz egy választási lehetőséget, ahol bejelölheted a 'Felső és alsó indexek' menüpontot, és máris csak a keresett karakterek jelennek meg. A 'Számformák' kiválasztásával a törteket kapod meg, de kérheted a nyilak-, vagy a matematikai műveleti jelek-, valutaszimbólumok megjelenítését is. -
Delila_1
veterán
válasz
m.zmrzlina #9284 üzenetére
Arról nem tudok, de egy apró segítség, hogy a karaktertáblából át is húzhatod a kiválasztott karaktert a fogd és vidd módszerrel.
-
Delila_1
veterán
válasz
m.zmrzlina #9282 üzenetére
Tudni kell hozzá a karakter ASCII kódját. Pl. a 0128 az € karakter kódja, a 128 pedig Ç-é.
Bal Alt billentyűt nyomva tartva a számbillentyűzeten beviszed a a kódot, utána felereszted az Alt-ot.
A gugliban számos találat jön fel az ASCII kereső szóra, karaktertáblákkal.Magad is készíthetsz karaktertáblát, akár Excelben. Egy oszlopba felviszed a számokat, egy másikban a KARAKTER függvénnyel hivatkozol rá. A nullával kezdődő kódokhoz a cellát szöveg formátumúra kell állítani.
-
perfag
aktív tag
válasz
m.zmrzlina #9222 üzenetére
Nem a másik munkafüzetre gondoltam, mert ha jól értettem a vágóasztalon keresztül éred el a beillesztendő adatot. A kódodból annyit látok, hogy van benne egy címke, ahova eljutsz valahogy és előtte valami történik. Lehet, hogy nem aktív a jelenlegi munkafüzeted.
Vagy a Selection elé tenném a ActiveWorkbook.Worksheets(I).Selection.., esetleg
Set Wss = ActiveWorkbook.ActiveSheet
...
Wss.SelectionJelzem ismét: csak okoskodom, hátha segít, a problémádba nem mélyedtem el.
-
perfag
aktív tag
válasz
m.zmrzlina #9219 üzenetére
Hm, csak okoskodom: mivel említesz egy másik munkafüzetet, én a kódban elhelyeznék egy ActiveWorkbook-ot, hátha bejön. Ha nem jön be, káromkodnék. Mint a kocsis.
-
Nesh007
csendes tag
válasz
m.zmrzlina #9169 üzenetére
Nos igen én is erre gondoltam először, de a kivonás azért nem jó mert, ha az éjszakás műszak mondjuk leáll 22:00 órakor és elindul 01:00 kor. az eredmény -21:00 óra lenne.
:-( és ez az én bánatom.
De azért köszi -
válasz
m.zmrzlina #9094 üzenetére
Látom, azt az egyenlőséget sem értetted (ami nem egyenlőség), pont azért írtam, mert arra gondoltam, hogy azon elmeditálsz, hogy mi is rossz a kérdéseddel...
Sebaj, túl vagyunk rajta...Azt én pontosan tudom, hogy Delila_1 "ott van a szeren" az Excelben és Ő szereti is azt amit csinál, de ha azokat a szabályokat betartja, ahogy én is nekiláttam a feladatnak
# Nincs segédoszlop
# Nincs makró
# Univerzális a képlet (nem csak idén működik, hanem bármely évben, az első héttől kezdve)
# Csak annyi adat van megadva, amit scott_free korábban felvázolt (pl A1 tartalmazza, hogy hányadik hétr kíváncsi, ami lehet 1 is)nos ezen feltételek mellett biztos vagyok benne, hogy
1. van annyira "vehemens" hölgyemény, hogy megoldja (kihívásnak tekinti vagy csak remek agytornának)
2. de biztosan nem fog egy "10 centis" képlettel előállni...scott_free
Ha olyan fontokat használsz, ami teljesen hétköznapi, minden OS tartalmazza alapból stb, akkor természetesen másik gépen is megmaradnak. Természetesen, ha Te telepítettél valami külső betűkészletet és az a másik gépen nem található meg, akkor valamelyik szabvány betűtípussal fogja helyettesíteniSemmi gond (tudom, hogy ez furcsán hangzik) de nekem az ilyen feladatok kikapcsolódást jelentenek sokszor. Ha épp nem kódolok, vagy (mint épp most 2 napja) gépeket rakok össze és telepítek (hajnalig még 2 új lapost kell életre kelteni), akkor tényleg jó egy kicsit a szürkeállományt megtornáztatni, ezzel a feladattal (meg feltételekkel) rendesen meglehet és az felüdülés ilyenkor számomra.
-
válasz
m.zmrzlina #9092 üzenetére
Az.
2013-ban már nem lesz ilyen szerencsénk, mert jan. 1 az kedd, 2.-án meg már lehet tiplizni melózni, és az az első hét.
Én meg itt vért izzadok bammeg, hogy összehozzam. -
scott_free
senior tag
válasz
m.zmrzlina #9083 üzenetére
köszönöm, nagyon sokat segítettél!amúgy a hivatalos "munkahetek" szerint az idei első munkahét január 3-ával indult.
-
válasz
m.zmrzlina #9087 üzenetére
Szóval erre gondolok, itt vasárnaptól-szombatig tart a hét (WEEKNUM 2. paramétere 1)
itt meg hétfőtől-vasárnapig tart a hét (WEEKNUM 2. paramétere 2
Így már talán érthetőbb, hogy a korábbi képletedet, ez mennyire tudja befolyásolni.
-
válasz
m.zmrzlina #9087 üzenetére
Ezt most tényleg komolyan kérdezted?
365 nap = 53*7Mondjuk ezzel kapcsolatban van egy érdekesség, akinek van fent 2003-as Excel, az kipróbálhatná.
A feladat alapvetően ugyanaz, mint korábban
A1->2011.12.31
A2->2010.12.31 stb, egészen 2000.12.31B1->WEEKNUM(A1) és másoljátok le a 2000-es dátumig. Minden évben 53 hetet fog kiírni, de a 2000-es évre 54 hetet...
Megvan még ez a jelenség?
-
válasz
m.zmrzlina #9085 üzenetére
Hát dec. 31-el vége az évnek, meg a heteknek is, jan. 1-el kezdődik az első hét...
de ha ezt nem hiszed, járj utánaA1-be -> 2011.01.01
B1-be -> WEEKNUM(A1) (Azt adja vissza, hogy az adott dátum, az év hányadik hetére esik(kell hozzá az Analysis Toolpak bővítmény))majd A1-be -> 2011.01.03
Aztán "lőn világosság".
-
válasz
m.zmrzlina #9083 üzenetére
scott_free barátunk egy olyan feladatot adott, ami látszólag egyszerű, de valójában egy egész jó fejtörő. Sajnos ez nem jó megoldás ugyanis ezen év első 2 napja tartozik az első héthez, nem pedig 3.-a.
(ha elseje hétfőre esett volna, akkor minden oké, de hát nem
)
Ez az infó figyelembevételével már borul is a dolog, összetettebb képlet szükségeltetik.
(bevallom így átgondolva lehet, hogy inkább makróban oldanám meg)Félre ne értsd, nagyon jó, hogy próbálsz segíteni, csak ezt fontosnak tartottam megemlíteni.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #9008 üzenetére
-
válasz
m.zmrzlina #9008 üzenetére
Igen, az lesz az oka.
Ezért szívtam én is, emlékeztem hogy régebben vesszővel voltak elválasztva az ezres csoportok. Aztán megnéztem, hogy a számformátum esetén mivel választja el az excel az ezres csoportokkat, ha bejelölöm neki az ezres csoportosítást.
láttam, hogy szóközzel (nálam), lecseréltem a vesszőt szóközre és "lőn világosság". -
m.zmrzlina
senior tag
válasz
m.zmrzlina #9005 üzenetére
A következő formátum pedig nem "eszi meg" a legnagyobb helyiérték után következő számokat:
#,###-" e"
Természetesen a kötőjel itt is ott van az utolsó kettőskereszt mögött.
-
válasz
m.zmrzlina #8950 üzenetére
Az általános formátum esetén is működik ez tény, mivel általános formátum esetén az Excel belső konverziókat is elvégez automatikusan, pl szöveg-ből szám és fordítva. Ezt egyszerűen leellenőrizheted, egy általános formátumú cellába beírsz egy szöveget, majd egy számot.
Az előbbi esetben balra igazítja (mint a szövegeket), utóbbi esetben jobbra igazítja (mint a számokat szokás).Mindig törekedj arra, hogyha számmal dolgozol és olyan fgv-t is használsz, aminek a a helyes működéséhez számformátumú cella szükséges, akkor szigorúan arra is formázd, még ha esetleg pl Általános formátummal sincs gond(csak megjelenítésben)
Ha így jársz el, sokkal kevesebb gondod lesz...
-
válasz
m.zmrzlina #8948 üzenetére
Arra ügyelj, hogy a KÓD fgv az 1 karaktert vizsgál, tehát ugyanazt az eredményt adja, ha az adott cellába 1 vagy 10-19/100-199/1000-1999 stb közti szám van.
(Azaz pl mindig 49-et fog eredményül adni, ha 1-essel kezdődik a cellában található szám, függetlenül hány számjegyű)Létezik a SZÁM fgv, ami megvizsgálja, hogy egy adott cella tartalma, számot tartalmaz-e avagy sem. Az adott cellákat kötelező Szám formátumra formázni a SZÁM fgv használata esetén!
A SZÁM fgv HAMIS értéket ad vissza, ha a cella üres(törölték DEL-el), és pl egy szóköz beírásakor is. -
válasz
m.zmrzlina #8946 üzenetére
=KÓD(A1) - Decimális érték (10-es számrendszer)
=DEC.BIN(KÓD(A1)) - Bináris érték (2-es számrendszer)
=DEC.HEX(KÓD(A1)) - Hexadecimális érték (16-os számrendszer)
=DEC.OKT(KÓD(A1)) - Oktogonális érték (8-as számrendszer) -
válasz
m.zmrzlina #8944 üzenetére
"De egy olyan felhasználónak aki csak használja a munkafüzetet és nem érdekli mi miért van benne annak talán hasznos lenne hogy ha nem lát a cellában semmit akkor a cella semmiként is viselkedjen"
Igen, erre való, hogy törölve legyenek a cellák. Erről nem a felhasználónak kell gondoskodni, hanem a munkafüzet készítőjének. Az olyan típusú megoldások, hogy szóközt rakok cellá(k)ba, nem bevett gyakorlat, egy szakkönyv sem javasol ilyet, mert hibalehetőségek rengetegét hordozzák magukban, egy ilyen "látszólag üres" cellára való hivatkozások, nem várt eredményeket produkálnak.
(Elég gyilkos dolog, egy üresnek hitt cellával dolgozni, ami csak "ránézésre" üres)"Érdekes, hogy a =ÉRTÉK(C9) fv #ÉRTÉK! hibaüzenetet ad ha szóközt teszek C9-be"
Egyáltalán nem érdekes, ez a dolga. Az ÉRTÉK függvénynek elég egyértelmű a definíciója: "A számot képviselő szöveget számmá alakítja."A szóköz nem tesz eleget ennek nyilván...
-
válasz
m.zmrzlina #8942 üzenetére
A teljes képletet kellene látni, mert amit leírtál, az biztosan nem úgy működik, példa
B1 -> =HA(A1="";"üres";"teli")
C1 -> =HA(A1>0;"teli";"üres")Ha most A1-et törlöd(DEL gomb), akkor B1 és C1 is az "üres" értéket kapja
Ha A1-be egy szóközt gépelsz, akkor B1 és C1 is a "teli" értéket kapjaHa A1="" feltételt használsz, ez csak akkor igaz, ha az A1-nek nincsen értéke (üres, DEL gombbal törölve), ha bekerül egy szóköz, akkor már nem üres, illetve a szóköznek számértéke is van 32 (vagy hexa 20, ahogy tetszik), ergo az A1>0 feltétel esetén igaz lesz.
Ha ez nálad nem így működik, annak az lesz az oka, hogy az ÉS()-ben felsorolt feltételek valamelyike nem teljesül(vagy épp teljesül) , de biztosan nem az üres cellával van a gond...
-
Delila_1
veterán
válasz
m.zmrzlina #8933 üzenetére
A feltételes formázásnál elegendő az
=ÉS($B9=C$8;C9<>"") képlet a =$C$9:$H$15 területre megadva.A feltételes formázásnál az = jel már eleve képviseli a HA függvényt, ezért utána már azonnal következik a feltétel(ek) megadása.
-
JamesHolden
aktív tag
válasz
m.zmrzlina #8936 üzenetére
Szuper, sikerült is!
Hálás köszönte neked is
-
Swen_N
csendes tag
válasz
m.zmrzlina #8933 üzenetére
Szia
Köszönöm, tökéletesen működik!üdv,
Swen -
perfag
aktív tag
válasz
m.zmrzlina #8909 üzenetére
Chip Pearson gyűjteményes oldalát megnézted már?
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #8906 üzenetére
A kérdés mostanra annyit egyszerűsödött, hogy ki lehet-e választani (programkódban természetesen) hogy beillesztéskor forrásként az Office vágólap és ne az oprendszer vágólapja szerepeljen?
Az történik ugyanis (a clipbrd.exe-vel kiválóan követhetően) hogy amint lefut az a programsor amiben az UnMerge van a rendszer vágólapja kiürül. Az Office vágólapon viszont továbbra is ott van a beilleszteni kívánt adat.
Két módszert próbáltam megkerülendő a problémát. Az egyik hogy töröltem az egész lapot ahová a beillesztés megy majd létrehoztam egy újat ugyanazon a néven. Talán mondanom sem kell ez nem jött be. A másik hogy az UnMerge előtt letároltam a vágólap tartalmát egy átmeneti helyre majd az UnMerge után bemásoltam a végleges helyére majd az átmeneti helyéről töröltem. Ez sem az igazi mert ez meg nagyon nyögvenyelőssé teszi a munkafüzet működését.
-
Vizes Tomi
tag
válasz
m.zmrzlina #8838 üzenetére
Köszönöm a tippet, de nem az a gond, hogy nagy az állomány hanem az, hogy több
munkalap van sőt több ilyen fájl.
Sajnos csak úgy lehet beküldeni az adatokat, hogy egy munkalap egy település.
Rá lehetne rakni a határérték táblázatot minden munkalapra csak attól félek, hogy a fogadó oldalon okoz kavart mert a beküldendő táblázat szerkezet kötött, és ha egyéb táblázatot talál akkor lehet, hogy sikít.De lehet, hogy kipróbálom annyit megér
-
Swen_N
csendes tag
válasz
m.zmrzlina #8819 üzenetére
köszönöm mindkettőtöknek
-
Swen_N
csendes tag
válasz
m.zmrzlina #8814 üzenetére
kijelölöm A5-től E14-ig
feltételes formázás képlet, beírom amit írtál
és ilyenkor az egész színes lesz ha D1-be teszek x-et, én csak azt akarom hogy mindig az alatta lévő oszlop legyen színes de ez lehet a B is vagy C -
Swen_N
csendes tag
válasz
m.zmrzlina #8811 üzenetére
ez jó lesz, de ide szerintem még kell valami, mert az egészet beszínezi, mert ugye itt nem egy cellától függ mint az előbb, hanem azon oszlopok celláitól ami felé teszek x-et.
-
Swen_N
csendes tag
válasz
m.zmrzlina #8806 üzenetére
Akkor még egy dolog
Bocs ha tök alap dolgok, de nagyon sokat segítenek, viszont nem vagyok nagy excel tudor...
marad a fenti példa:
azt szeretném ha például adunk egy háttérszínt a B5-nek akkor az alatta lévő oszlop is színes legyen, illetve így tovább ha C5-nek, ha E5-nek, mikor melyik kellene. Ha meg leveszem a színt B5-ről, E5-ről, stb...akkor tűnjön el alóla is a színezés.
(úgy is jó ha ez így nem megy, hogy beírunk egy x-et a felső cellába és az adja a feltételt az alatta lévő oszlop színezésére)
köszi
-
Swen_N
csendes tag
válasz
m.zmrzlina #8806 üzenetére
Köszönöm, tökéletesen működik, leszámítva a 2-es problémát, azt én sem értem miért csinálja illetve, nem csinálja!
-
Swen_N
csendes tag
válasz
m.zmrzlina #8804 üzenetére
Szia
szuper ezaz! működik de van két probléma:
1. van vagy 30 sor, muszáj egyenként beállítani? nem lehet valahogy másolni, és persze akkor tudja a program, hogy mindig az aktuális sor dátumához viszonyítson.
2. csak akkor színeződik át, ha munkalapot váltok, nem automatikus. Ez miért lehet?
üdv,
Swen
-
iwu
addikt
válasz
m.zmrzlina #8751 üzenetére
hogy mik vannak
de sajna mindent üresnek látok. -
iwu
addikt
válasz
m.zmrzlina #8747 üzenetére
MAkró nincs, azt néztem.
a workbook open procedúrája hol van? -
Satchmo7
csendes tag
válasz
m.zmrzlina #8675 üzenetére
Köszönöm a választ m.zmrzlina és Cuci3!
Villamosmérnök vagyok szóval a programozás nem áll messze tőlem de a suliba C-t meg Assembly-t tanultunk de a munkámba most makrókat kellene írnom, egyelőre nézegetem amiket küldtetek és nem megyek tanfolyamra. Ha még valakinek van ötlete milyen könyvvel induljak vagy online forrás azt nagyon megköszönöm.
-
iwu
addikt
válasz
m.zmrzlina #8671 üzenetére
KÖSZÖNÖM!!!
-
válasz
m.zmrzlina #8625 üzenetére
Hát ez gond, ugyanis a
Sheets("szűrőháló").Range("A1").Selectés
Sheets("szurohalo").Range("A1").Select
sem működhetne...Ha másik munkalapon állsz, akkor nem lehet direktbe hivatkozni(kiválasztani) így egy cellát. Szerintem telepíts szervízcsomagot az Office-hoz, mert jó eséllyel most nincs, vagy legalábbis nem naprakész a frissítése...
(Nálam sem megy egyik verzió sem, Office 2010 x64)
-
válasz
m.zmrzlina #8621 üzenetére
Nincs ebben ellentmondás, csak vannak olyan esetek (általában egyszerű dolgok esetében), ahol a beépített funkciók lassabbak, mint egy VBA kód.
Az első példa erről szól, azaz a MAX függvény meghívása sokkal lassabb, mint egy IF/THEN/ELSE elágazás/struktúra alkalmazása.A második eset már teljesen más, hisz ott egy nagyobb tartomány összegét számolják ki, ciklus segítségével, ez esetben a beépített WorkSheetFunction.Sum függvény meghívása lényegesen hatékonyabb.
A topicban leggyakrabban elég egyszerű problémák merülnek fel, legalábbis arra gondolok, hogy nem igazán számít a sebesség. Egy összetettebb project esetében persze ezekre illik odafigyelni. A másik "probléma" meg az szokott lenni, hogy gyakran (főleg azon emberkéknél, akik nem rég óta ismerkednek az Excel-el illetve a VBA programozással) abba a hibába esnek, hogy a netről összeszednek mindenféle leírást és azt alkalmazzák, azaz ilyen dirib-darabokból "tákolják össze" a programjukat. Na ez öreg hiba, mert gyakran az egyik szubrutinjuk teljesen más programozástechnikát tartalmaz(akárcsak szintaktikailag is), mint a másik.
Az is gond kezdő emberkéknél, hogy nem arra használják az excel-t, amire az alapvetően hivatott, azaz néha úgymond adatbázis-kezelőként használják, olyan feladatokat szeretnének kivitelezni az excel-el, amire Ő nem igazán hivatott, és ilyenkor jön a teljesen felesleges makrózgatás, és a szükségtelenül bonyolult makrókódok.
-
Sickboy25
addikt
válasz
m.zmrzlina #8601 üzenetére
Köszi ez így jó lesz...
-
dellfanboy
őstag
válasz
m.zmrzlina #8585 üzenetére
felírtam köszi
-
perfag
aktív tag
válasz
m.zmrzlina #8574 üzenetére
Nézd meg ezt, ez egyszerű: [Sub modelled_import_v2()]
Egy másik módszer: megnyitja a txt fájlt Excel munkafüzetként és másolással átrántja az adatokat: [itt].
A profik [így] csinálják (van benne egy kis ErrorHandling is)
-
válasz
m.zmrzlina #8564 üzenetére
Hali!
Kértem, hogy olvasd el a leírást (ami magyar ráadásul)
"Számomra ez arról szól, hogy az On Error Resume Next önmagában nem old meg semmilyen hibát csak ettől a kód "nem vesz tudomást" a hibáról."
nem akarom leírni mindent, ami a linken található, de az On Error Resume Next utasítás nem hogy letiltja, hanem bekapcsolja a beépített hibakezelőt(in-line error handler).
Az On Error Resume Next rögtön követő sor válthatja ki a hibát, ezért az elé kell rakni. Ha a hiba létrejön, akkor le lehet kezelni (IF err) és a program folytathatja a futását(a példaprogi amit adtam is ezt tenné, csak én abba beraktam egy Exit Sub sort, amivel ugyebár kilép a subrutinból).
Ha nincs hiba, akkor a hibakezelő rész "ki lesz hagyva" és úgy folytatja a futását.Zomb€€
Az OS Regional Settings (Területi Beállítások) módosítása globális, ha külön nincs felprogramozva az adott alkalmazás, akkor ezt veszi alapul. Az adatbázisoknál, amikor létrehozod őket, kapásból van lehetőség, magának az adatbázisnak a "területi beállításaira", azaz, hogy milyen formátumban tárolja az adatokat.(Oracle, Paradox, Access stb).
Ha a program felülbírálja a területi beállításokat(mert hogy lehet, sima formázással), akkor lényegtelen, hogy magának az adatbázisnak milyen területi beállításai vannak. Elsősorban amit érint ez a beállítás, az a Dátum/idő/pénznem...Szóval ezen esetekben(különösen a tizedesjegy-elválasztó esetén) érdemes csak magában az Excel-ben megváltoztatni az elválasztó karaktert, így nem fogja dátumként azonosítani a pl 1.23-at. Persze kézi beillesztéssel(nem pedig adatok importálásával adatbázisból) ez nem kivitelezhető anélkül, hogy az Exelben át ne írnád a tizedes-elválasztót, mert különben a pontal elválasztott tizedes számokat automatikusan dátumnak értékeli.Fire.
-
válasz
m.zmrzlina #8560 üzenetére
Hali!
Először is amit kérdezel, az nem tudálékosság vagy okoskodás, nagyon helyes, hogy ezt megkérdezted, ha nem vagy tisztában ezzel a dologgal.
A legnagyobb tudásbázis természetesen a Microsoft MSDN Library-ban található, számos területen, egyetlen "gond", hogy angol, amit ha jól sejtem, nem űzöl alapszinten sem.
A sors fintora, hogy az OpenOffice tudásbázisában találtam magyarul leírást, és ahelyett hogy leírnám, hogy mi jó vagy nem jó a kérdésedben, inkább azt javaslom, hogy olvasd el, szerintem ezután már érthető/egyértelmű lesz a dolog.
Zomb€€
1. Ezt a "monológot" olvasd el.
(Mellesleg -tudtommal- nincs lehetőség az AutoDate formázás működésének beállítására)2. Ez érdekes kérdés, bevallom elsőre azt mondanám, hogy nem kivitelezhető, de ezt nem teszem, előbb utánanézek.
Fire.
-
válasz
m.zmrzlina #8557 üzenetére
Hali!
Private Sub CommandButton1_Click()
On Error Resume Next
ActiveSheet.Paste
If Err Then
MsgBox "Nincs mit beilleszteni." + Chr(13) + "Végezd el a kijelölést!", vbCritical, "Figyelem !!!"
Err.Clear
Exit Sub
End If
'további utasítások (jó ág)
End SubFire.
-
perfag
aktív tag
válasz
m.zmrzlina #8532 üzenetére
Exit Sub helyett Else.
Sub back_color()
If whatMin_new - whatMin_old < 0,000694 Then
backcolor=7
Else
If MeterEvent = "MeterLost" Then backcolor = 4
If MeterEvent = "MeterRecovered" Then backcolor = 3
End If
End Sub -
perfag
aktív tag
válasz
m.zmrzlina #8459 üzenetére
Bármelyik kezdőknek szánt VBA leckébe belenézel ott ez áll:
If conditions Then
expressions
Else
expressions
End IfAzaz a Then után új sor, majd az egészet lezárod End If-fel.
If ActiveCell.Value = "" Then
isLastRow = True
Exit Sub
End IfBár ahogy #8457-ben láttam nem is annyira amatőr módszer.
- de az!
- a #8457-ben nem azt láttad, amit Fire láttatni akart veled
- korábban is feltűnt, hogy makacsul ragaszkodsz első ötleteidhez, akkor minek kérdezel -
Delila_1
veterán
válasz
m.zmrzlina #8455 üzenetére
Nézz utána a Public változóknak, amiről Perfag írt, vagy várj estig, míg újra gép közelébe kerülök.
Addig biztosan megírja valaki, mit kell tenned. -
Delila_1
veterán
válasz
m.zmrzlina #8451 üzenetére
A változók értékét átadhatod egy másik szubrutinnak. Pl. ha az Első() szubrutin C változójának az értékével szeretnél dolgozni egy Második nevű szubrutinban, akkor az Első rutinodban
Második C
módon hívod meg. A Második paramétere legyen C, vagyis
Sub Második(C)
.
.
End SubA Második End Sub-ja után a vezérlés visszajut a hívás helyét követő sorra.
-
perfag
aktív tag
válasz
m.zmrzlina #8449 üzenetére
A Microsoft támogatás szerint "a line label defined in another procedure, you receive the error message "Label not defined." This message means that the label is not defined in the current Sub or Function." ez nem fog menni.
Megoldást én az Error Handling-ot felhasználva keresnék, Chip Pearson ezt írja: "Every procedure need not have a error code. When an error occurs, VBA uses the last On Error statement to direct code execution. If the code causing the error is in a procedure with an On Error statement, error handling is as described in the above section. However, if the procedure in which the error occurs does not have an error handler, VBA looks backwards through the procedure calls which lead to the erroneous code."
Az Err.Number-nek utánanéznék, milyen saját értéket adhatnék és ezzel vissza tudnék térni a főciklus ErrorHandlerébe, ahol egy GoTo, vagy GoSub a kívánt helyre vinné a vezérlést. -
Delila_1
veterán
válasz
m.zmrzlina #8446 üzenetére
Azt hiszem, félreértettelek. Címke alatt egy cella címzésére gondoltam.
If valami then Go To Címke 'vagy Gosub Címke
Címke:
utasítások
Return 'Gosub esetén, innen az if-et követő sorba ugrik vissza.Ezt azonos modulban kell elhelyezned.
-
Delila_1
veterán
válasz
m.zmrzlina #8441 üzenetére
Application.Goto Reference:="nomorelines"
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #8433 üzenetére
Az If...Then okozta. A végére kellet az End If
-
jobbacsabba
aktív tag
válasz
m.zmrzlina #8431 üzenetére
Nekem ezek az egymásba ágyazott függvények szuahéliek.
Az excelt csak közbenső állomásként használom az analitikai programok között és a végső vizualizáló program (origin) között.
Szemléltetve a problémát:
nm A
282.0 12.55
283.0 15.ápr
...
696.0 jan.32
: ilyen adatpárok vannak, amit a program beilleszt. A 15.ápr valódi értéke 15,04, de az excel már 2010.04.15-öt mutat cellatartalomra a szerkesztőlécben, de van pl. a jan.32 ami valójában 32,01 és a szerkesztő léc szerint pedig 1932.01.01 (akkor a 12.55 mért nem dec.55?)
Remélem érthetően adtam elő a problémámat.
Végül is a lényeg számomra, hogy míg excelt használok, valahol át kell állítanom, hogy mit értelmezzen tizedes elválasztóként.
Köszi a segítséget!
Ha nagy leszek megértem ezt a makró és egymásba ágyazott függvény dogot. Remélem. -
perfag
aktív tag
válasz
m.zmrzlina #8418 üzenetére
Három adat az három adat! Ehhez tömb (array) változó kell.
[#8420] szerint csak egy adattal akarsz dolgozni, akkor a
.Color = hatterszin helyett .ColorIndex-et kellene használnod.
Szerintem. -
m.zmrzlina
senior tag
válasz
m.zmrzlina #8420 üzenetére
Illetve meg lehet fogalmazni úgy is a kérdést, hogy van-e a szín megadásának olyan módja amihez egyszerűbben lehet rendelni adattípust.
-
Delila_1
veterán
válasz
m.zmrzlina #8418 üzenetére
Nem biztos, hogy erre gondoltál. Az A21, B21, és C21 cellák 0 és 255 közötti egész számot tartalmaznak. A makró az A22 cella hátterét színezi a fenti értékek szerint.
Sub szín()
Cells(22, 1).Interior.Color = RGB(Cells(21, 1), Cells(21, 2), Cells(21, 3))
End Sub -
válasz
m.zmrzlina #8405 üzenetére
Hali!
"Ez a sor a Case szerkezet egyik ága ezért nem evidens hogy a columnid_1-nek 0-tól különbözik az értéke. Simán lehet 0 ezért kell ezt az esetet kezelni."
Ez a korábbi hsz-odból, meg ebből a kódból sem derül ki, mert a ActiveCell.Column sosem ad vissza nullát.
Gondolom a változók nullázásáról a kód más részén gondoskodsz.Ebből a kódból azt feltételezem, hogy az lenne a feladat, hogy az első oszloptól, az activecell oszlopáig az összes oszlopot kijelöld. Ha jól feltételezem, akkor azt így lehet megoldani
Range(Columns(1), Columns(ActiveCell.Column)).SelectFire.
-
válasz
m.zmrzlina #8403 üzenetére
Hali!
1. Az a feltétel értelmetlen, mivel mindig igaz lesz. Azért, mert a sor- és oszlop indexek 1-től kezdődnek.
2. Nem tudom pontosan mit szeretnél megoldani, de ez így teljesen rossz próbálkozás Range(1, columnid_1).Select
Fire.
UI: Nálam nem működik a programkód gomb jelenleg, sőt a smiley-k sem...:-(
Szerk.
Újra szerkesztve már megy... -
válasz
m.zmrzlina #8401 üzenetére
Hali!
Igen.
Fire.
-
perfag
aktív tag
válasz
m.zmrzlina #8379 üzenetére
Ha az a változó értéke 40438,00128, akkor:
a = a - Fix(a)
levágja az egész részt. Ha nem vehet fel negatív értéket, akkor aFix() helyett jó az Int() függvény is. -
m.zmrzlina
senior tag
válasz
m.zmrzlina #8378 üzenetére
Azt szeretném elérni, hogy az aktív cellában lévő tizedestörtről (aminek a formátuma dátum) leválasszam a napot reprezentáló egészrészt.
Tehát pl a 40438,00128 helyett 0,00128 kerüljön a a változóba.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #8377 üzenetére
Időközben az előző kérdés nagyban leegyszerűsödött.
Hogyan tudom a mindenkori aktív cella értékét (tartalmát) átadni egy változónak?
-
Delila_1
veterán
válasz
m.zmrzlina #8370 üzenetére
-
Delila_1
veterán
válasz
m.zmrzlina #8365 üzenetére
-
Delila_1
veterán
válasz
m.zmrzlina #8365 üzenetére
-
válasz
m.zmrzlina #8365 üzenetére
Hali!
Delila_1 megoldása tökéletes alapot nyújt a kivitelezéshez. Annyit kell tenned, hogy a táblázat struktúráját módosítod (az egy adott másodperchez tartozó értékek egymás mellé kerüljenek külön oszlopba, mert most egymás alatt új sorban vannak) illetve ennek megfelelően a feltételes formázást.
Fire.
-
Delila_1
veterán
válasz
m.zmrzlina #8365 üzenetére
Kijelölöd az oszlopot, pl. az ábra szeinti F-et, és egyszerre adod meg a feltételes formázást. Fontos, hogy a képletben ne $E$2, hanem $E2, vagy csak E2 szerepeljen.
-
Delila_1
veterán
válasz
m.zmrzlina #8363 üzenetére
-
Delila_1
veterán
válasz
m.zmrzlina #8361 üzenetére
Feltételes formázás. Olyan színű legyen a cella, mint amelyik lámpa a három közül éppen on állapotban van. Ennyi feltételt a régebbi verziókban is elő lehet állítani.
Ez a színezett cella lehet az, amelyik az időpontot tartalmazza. -
válasz
m.zmrzlina #8356 üzenetére
Hali!
Cellában
=KÖZÉP(A1;3;1)Makróban
Valtozo = Mid(Range("A1"), 3, 1)(melyik cella, hányadik karakterétől, hány karaktert)
Fire.
-
perfag
aktív tag
válasz
m.zmrzlina #8183 üzenetére
Ha a Google-be beírod "vba Select vs Activate" kapsz pár millió találatot a kérdésedre.
Azt írják, hogy a Select arra jó, hogy több munkalapot kiválassz egyidejűleg, míg az Activate-tel csak egyet lehet aktívvá tenni. Az MSDN kiemeli, hogy cellákat kijelölni csak aktív munkalapon lehet (munkalapokat kijelölni csak aktív munkafüzetben).A prog.hu-negy érdeks gondolat: Annyit azért megjegyeznék, hogy makróban a Select és Activate metódusok használata szerintem nagyon rossz gyakorlat. Miért? Mert valamennyi munkafüzet, valamennyi munkalap és valamennyi cella tartomány elérhető címzéssel.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #8182 üzenetére
Közben megoldottam.
Az azért érdekelne, hogy mi is a pontos különbség Select és Activate metódus között.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #8181 üzenetére
Olyan mintha valamelyik .Select vagy a Selection.ClearContents felülírná a vágólap tartalmát.
Hogyan lehetne lekezelni ezt a problémát úgy hogy ha nem muszáj nem szeretnék formot tenni a munkalapra?
-
Styleboy
tag
válasz
m.zmrzlina #8174 üzenetére
Köszi a segítséget. Valahogy ez 2003ban nem akart működni,de a 2007ben jó.
Ezer hálám. -
válasz
m.zmrzlina #8163 üzenetére
Hali!
Akkor itt egy képlet, aminek "mindegy" hogy milyen a területi beállítás(minden olyan területi beállítás jó, amiben pont vagy vessző a tizedeselválasztó) illetve az is, hogy a cellában ponttal avagy vesszővel elválasztva szerepel a százalék. pl 12:34 (12.34 %) avagy 12:34 (12,34 %)
(Ha valaki nem pontot vagy vesszőt használ, akkor meg #ÉRTÉK hibát dob)=HA(HIBÁS(ÉRTÉK(HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);".";",")));ÉRTÉK(HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);",";"."));ÉRTÉK(HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);".";",")))
Fire.
UI: Makrónál az lehet "gond", hogy ott meg minden usernél engedélyezni kell a makrók futtatását az Excel beállításokban illetve a munkafüzet megnyitásakor is rákérdez(het)...
-
Delila_1
veterán
válasz
m.zmrzlina #8163 üzenetére
Írj egy makrót a cserére, tegyél ki hozzá egy gombot. Amelyik gépen szükség van a cserére, megnyomják, a másikon nem.
A másik fórumon, ahol feltetted ezt a kérdést, már leírtam ugyanezt az választ.
-
válasz
m.zmrzlina #8160 üzenetére
Hali!
Átírtam a már majdnem jó megoldásod, itt A1-ben van a 12:34 (12.34 %)
=HELYETTE(KÖZÉP(A1;SZÖVEG.KERES("(";A1)+1;SZÖVEG.KERES("%";A1)-SZÖVEG.KERES("(";A1)-2);".";",")*1
Az egyetlen fontos dolog, hogy a százalékos értéknek minden cellában egy szóköz és % jel kövesse, tehát ahogy a példádban is van:
12:34 (12.34szóközszázalék)Fire.
-
válasz
m.zmrzlina #8158 üzenetére
Hali!
"Csak mert nagyon nem így van."
Nem is írtam, épp azt írtam, hogy ha az egy cella tartalma, akkor az szöveg.
A cella tartalmát fel lehet dolgozni, adott esetben makró nélkül is, persze ehhez tisztában kell lenni, hogy azok a cellák milyen tartalmakat vehetnek fel. Pl példádnál maradva12:34 (12.34 %)
34:56 (34.56 %)
123:456 (56.78 %)Ebben az esetben a százalék értékek makró nélkül is kiszedhetőek és számmá alakíthatóak (százalékká is)
Ha ennél változatosabbak a cellatartalmak, nem ennyire kötöttek, akkor makró(de akkor sem biztos, csak tudni kellene, hogy mégis milyen tartalmak vannak a cellában)Szerk
Akkor inkább azt kérném, hogy pár cellatartalmat adj meg, meg azt, hogy mit szeretnél csinálni(nem képlet érdekel, hanem feladatleírás). Így látnám mi a probléma...Fire.
UI: Mellesleg ha kijelölnéd az összes ilyen cellát és egy sima csere segítségével lecserélnéd a pontot vesszőre már az is megoldást jelenthetne...
Új hozzászólás Aktív témák
Hirdetés
- Időjárás topik
- Félreértések az FSR 4 és a PlayStation 5 Pro körül
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- AliExpress tapasztalatok
- BestBuy topik
- Kertészet, mezőgazdaság topik
- PROHARDVER! feedback: bugok, problémák, ötletek
- Béta iOS-t használók topikja
- Szeged és környéke adok-veszek-beszélgetek
- Filmvilág
- 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
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Xiaomi Redmi 10 128GB, Kártyafüggetlen, 1 Év Garanciával
- Okosóra felvásárlás!! Samsung Galaxy Watch 5 Pro, Samsung Galaxy Watch 6 Classic
- Csere-Beszámítás! Felsőkategóriás számítógép PC Játékra! I9 13900KF / RTX 4080 / 32GB RAM / 1TB SSD
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Thinkpad X230 legenda: i7 CPU, IPS kijelző, 12 GB, dupla SSD, magyar villbill, webcam, fingerprint
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest