Keresés

Részletes keresés

Alkesz_ Creative Commons License 2012.03.30 0 0 17611

"kezd = Application.WorksheetFunction.Match(keres$, Columns(3), 0)
        Range("S1") = kezd"

 

A kezd nevű változóba bekerül a HOL.VAN függvénynek megfelelő VB-s MATCH függvény eredménye, a keres$ első találati helye a C oszlopban:

és ezt az értéket azonnal beíratjuk az S1 cellába.

 

Azt levettem, hogy a "Columns(3)" lehet a C oszlop harmadik sorától, vagy valami ilyesmi, de hogyan módosítsam ezt a paramétert az E oszlop 59 sorától-ra  ?  :-)

 

Előzmény: Delila10 (17610)
Delila10 Creative Commons License 2012.03.29 0 0 17610

Beírhatsz egy új sor, mondjuk a Dim ... alá. Legyen ez Range("O1") = "" .  Amikor az alcsoportot kiválasztottad, üressé teszi az O1 cellát, és akkor látszik, hogy ki kell választani a méretet, nem maradhat benne az előzőleg bevitt adat.

 

Említettem, hogy ez egy kiforratlan példány. :(

Előzmény: Alkesz_ (17608)
Delila10 Creative Commons License 2012.03.29 0 0 17609

Egy makró érvényes, a másik csak egy kis maszat, törölhető.

 

A küldött füzet lapfülén jobb klikk, Kód megjelenítése. Beléptél a VB szerkesztőbe. Bal oldalon látod, hogy a füzet Munka1 lapja van kiválasztva, jobb oldalon ott van a

Private Sub Worksheet_Change(ByVal Target As Range)

kezdetű makró. Az egészet jelöld ki, másold, bal oldalon a saját füzeted lapját (ahol a kiválasztásokat akarod elvégezni) jelöld ki, és jobbra másold be a kódot.

 

Az ilyen jellegű makrók akkor indulnak automatikusan, mikor a lapra beviszel egy adatot. Az

If Target.Address = "$N$1" Then sor azt adja meg, hogy akkor végezze el a következő, End If utasításig tartó műveleteket, ha ez a bevitel az N1 cellába történt.

 

Nézd meg itt a fórumon pippancs 17586-os hozzászólását, ami megmutatja, hogyan kell a sor- és oszlopcímekből névvel megjelölt tartományt létrehozni.

 

Előzmény: Alkesz_ (17608)
Alkesz_ Creative Commons License 2012.03.29 0 0 17608

Hamar elakadtam..  :-((

Azt megtaláltam hogy hogy a fejlesztőezközök/makrók/szerkesztés menü alatt tudom a saját celláimra átírni a makrót, de hogyan tudom az ott található két makrót (ha egyátalán mind a kettő makró?), átteni az én munkafüzetembe?

 

Alkesz.xlsm - Munka1 (Code)

Alkesz.xlsm - Module1 (Code)

 

Előzmény: Delila10 (17605)
Törölt nick Creative Commons License 2012.03.29 0 0 17607

grat., és szívesen

Előzmény: Zsongilingi (17601)
Alkesz_ Creative Commons License 2012.03.29 0 0 17606

Én sem ragaszkodom a bonyolúlt, és plusz munkához.. Ez a gyakorlatban úgy néz ki hogy egy másik munkafüzetlapon van egy megrendelő nyomtatvány, és azon látszik minden. Színek, elemek, munkalapok, fogók, stb... (Ezen fog majd működni a választós rész) És ezt szoktam kinyomtatni a vevőnek. Már én sem tudom mindig, hogy melyik elemnek van szériaméretben ajtaja, és azért jó ha a saját hülyeségem ellen is véd :-) A másik gyakori eset, amikor az árajánlatba ölt munka után a vevő tizedjére is a "Mia lenne ha az inkább fiókos lenne?" "Mi lenne ha ez kisebb lenne 10 cm-el, az meg nagyobb?" és bizony itt kezd elpattani a cérna, de milyen jó lesz ha klikkelek egyet és már látjuk is az eredményt, aztán nyomtat, vagy ment másként .pdf és már küldöm is.

 

Nekifekszek a makros változat feldolgozásának, és biztos hogy jelentkezek hol is akadtam el ... :-))

 

Köszi az eddigieket..

Előzmény: Törölt nick (17604)
Delila10 Creative Commons License 2012.03.29 0 0 17605

Szükség van az első segédoszlopra.

 

Mikor az N1-be beírod az alcsop-ot, indul a makró.

Egy keres$ nevű változóba összefűzi a Fő- és alcsoport kiválasztott értékeit:

keres$ = Range("M1") & "_" & Range("N1")

 

A kezd nevű változóba bekerül a HOL.VAN függvénynek megfelelő VB-s MATCH függvény eredménye, a keres$ első találati helye a C oszlopban:

kezd = Application.WorksheetFunction.Match(keres$, Columns(3), 0), és ezt az értéket azonnal beíratjuk az S1 cellába:

Range("S1") = kezd

 

Ettől a sortól egy ciklus indul a C oszlop celláin lefelé:

For sor = kezd To usor (az alsó sort az usor = Range("A" & Rows.Count).End(xlUp).Row + 1 határozza meg).

 

Mikor az aktuális sor 3. cellája már nem azonos a keres$ értékével:

If Cells(sor, 3) <> keres$ Then, akkor az S2 cellába bekerül a fölötte lévő (még azonos) sor száma:

Range("S2") = sor - 1, és kilépünk a ciklusból:

Exit For

 

Az O1 cella érvényesítése erre a két, sorszámokat tartalmazó cellára hivatkozik az INDIREKT függvénnyel, így sikerült elérni, hogy mindig a kiválasztott Fő_al-nak megfelelő méreteket adja.

 

Ez a lényege a makrónak, a többi helyfoglalás a változóknak, és az eseménykezelés tiltása, -engedélyezése (bármit is jelentesen). Az utóbbit majd valaki szabatosan leírja.

 

Nem kell félni a makróktól, nem harapnak.

 

Az A oszlopban feltételes formázással láthatatlanná (háttér színével megegyezővé) teheted a sokszor szereplő egyforma adatokat, de kellenek a segédoszlopokhoz.

A segédoszlopokat elrejtheted, sőt, az egész táblázatot is, mikor már minden rovatát kitöltötted.

 

Előzmény: Alkesz_ (17600)
Törölt nick Creative Commons License 2012.03.29 0 0 17604

Na igen, ha webshopba szánod, pl. letölthető árkalkulátornak, akkor ez a szépséghiba nem megengedhető.

Ha viszont személyesen akarod használni, és azzal a céllal, hogy gyorsan kikeresd egy termék árát, akkor úgyis tudod, hogy mi a termék és milyen paraméterei vannak. Az meg nem a táblázatból fog kiderülni számodra, hogy egy adott bútor választható-e 350 mm-es ajtóval, vagy sem. Szóval akkor egyszerűen nem választasz olyan paramétereket, amelyek hibát eredményeznek.

Nyilván, meg lehetne csinálni bolondbiztosra is, csak kérdés, hogy kell-e, megéri-e. Én biztos nem erőlködnék. De lehet, hogy a bútorasztalosok nem olyan lusták, mint a programozók :)

 

Előzmény: Alkesz_ (17603)
Alkesz_ Creative Commons License 2012.03.29 0 0 17603

Nem rossz, csak a szépséghibája ott lehet, hogy minden méret választható az elemekhez, az is ami nincs, ugyan nem ír árat ha nem stimmel a méret...

De még elemezgetem hogyan is lehetne ezt koorigálni...

 

Azért köszi, mert minden megoldás érdekel :-)))

Előzmény: Törölt nick (17602)
Törölt nick Creative Commons License 2012.03.29 0 0 17602

Ehhez mit szóltok?

http://data.hu/get/4914275/Alkesz.xlsx

 

Semmi makró, csak beépített függvények. A K17:M17 mezőkben kell beállítani a méreteket, K28-ban pedig az árkategóriát. A végeredmény L28-ba kerül.

Előzmény: Alkesz_ (17600)
Zsongilingi Creative Commons License 2012.03.29 0 0 17601

Köszönöm! Sikerült!

Előzmény: Törölt nick (17596)
Alkesz_ Creative Commons License 2012.03.29 0 0 17600

Igen látom az én gondolatmenetem csak akkor működne, ha az E oszlop adatait csoportosítanám egy legördülő menűhöz, az "O1"-be, de elég nehéz lenne mindent elnevezni úgy hogy ne legyenek átfedések a csoportok között... Kialakul lassan a megoldás csak a makróhoz abszolút nem értek, és mindenféleképpen olyan megoldást akarok amit 100%-ban átlátok működésileg.De muszály fejlődni...

 

Nézzük a kérdéseket:

Ha jól sejtem az X oszlop az törölhető nincs jelentősége?

A "segédoszlop2" az a keresésbe segít, de a "segédoszlop1" jelentőségét nem látom.

És nem értem a makro mi alapján tudja megadni egy választott termék kezdő (S1), és záró sorát(S2).

 

Kezdetnek ennyi kérdés, de biztos lesz még mire át tudom ültetni a teljes termékpaletára a dolgokat.

 

Előzmény: Delila10 (17599)
Delila10 Creative Commons License 2012.03.28 0 0 17599

Most jut eszembe! A makrót nem kell indítani, azért hiszed, hogy anélkül is működik.

Ez egy eseményvezérelt makró. Árgus szemekkel figyeli, mikor változik meg az N1 cella értéke, és akkor sebtében beírja a két értéket az S1 és S2 cellába. Az O1 érvényesítése csak erre vár, és a kellő helyről veszi a listája értékeit.

Előzmény: Alkesz_ (17597)
Delila10 Creative Commons License 2012.03.28 0 0 17598

A makró ahhoz kell, hogy a kiválasztott fő- és alcsoporthoz tartozó kezdő-, és zárósort kikeresse. Ennek alapján adja az ezekhez tartozó méreteket az O1 érvényesítése. Nélküle a méret érvényesítés meghalna, vagy mindenhez mutatná az összes létező méretet.

 

Látom, Jimmy nyert az ofszet-es, hol.van-os függvényével, pedig a =HA(HIBÁS(HOL.VAN(S3;D:D;0));"";INDIREKT(P1) INDIREKT(S3)) képletben hibakezelés is van. Amíg nem választod ki a méretet, hibára futhat (az ofszet-es is), ha az újonnan kiválasztott csoportban nincs olyan méret, mint ami az előző választásból benn maradt az O1 cellában.

 

Érdemes az ofszet-es képletbe is betenni ezt a hibakezelést.

Előzmény: Alkesz_ (17597)
Alkesz_ Creative Commons License 2012.03.28 0 0 17597

Nos nagyon nagy vagy! Bár egy kicsit módosítottam a dolgon, de a két segédcella nagyon sokat segített a helyes meglátáshoz, mert bár én is errefelé keresgéltem a megoldást, de Te (Ti) kellettél (kelletetek) a sikerhez. Én ezt írtam be egy cellába és makró nélkül is megoldódik a probléma:

=OFSZET(E1:K37;(HOL.VAN(S3;D2:D37;0));(HOL.VAN(P1;F1:K1;0));1;1)

No meg persze ott van a szép megoldás az összefűzésre, eszembe nem jutott volna....

 

Nagyon szépen köszi még egyszer!

Előzmény: Delila10 (17595)
Törölt nick Creative Commons License 2012.03.28 0 0 17596

alt+f11

insert new module -> ide bemásolod azt a kódot

 

utána a felhasználói függvények között megtalálod és úgy tudod használni mintha egy akármilyen más excel függvényt használnál.

Előzmény: Zsongilingi (17594)
Delila10 Creative Commons License 2012.03.28 0 0 17595

A Q1 cellába ezt is írhatod: =HA(HIBÁS(HOL.VAN(S3;D:D;0));"";INDIREKT(P1) INDIREKT(S3))

Előzmény: Alkesz_ (17590)
Zsongilingi Creative Commons License 2012.03.28 0 0 17594

Köszönöm a segítséget, de én ennél sajnos butább vagyok. Azt hogy adom meg, hogy a nevezett cella értékéből legyen betű?

Előzmény: Törölt nick (17592)
Delila10 Creative Commons License 2012.03.28 0 0 17593

http://data.hu/get/4910909/Alkesz.xlsm címre kitettem egy kiforratlan megoldást, csak hogy ne hidd, hogy feledésbe ment a kérdésed.

 

Az M1:P1 tartományba viheted be az igényeidet, az ár a Q1-ben jelenik meg.

A B oszlopban az eredeti szóközöket alsó kötjelre kell cserélned, mert a névadás nem fogadja el a szóközt.

 

Vettem fel két segédoszlopot, valamint Alsó és Felső elnevezéssel a T, ill. V oszlopba kigyűjtöttem az egyedi értékeket a B oszlopból.

 

Elég hosszú a mese hozzá, ha szükséges, levélben leírom, vagy megbeszéljük Skype-on, mivel egyéni a feladat.

Előzmény: Alkesz_ (17590)
Törölt nick Creative Commons License 2012.03.28 0 0 17592
Előzmény: Zsongilingi (17591)
Zsongilingi Creative Commons License 2012.03.28 0 0 17591

Sziasztok!

Az F26 cellában lévő számot szeretném betűvel megjeleníteni a B27-es cellában. Kérlek, segítsetek! Köszönöm!

Alkesz_ Creative Commons License 2012.03.28 0 0 17590

Na még egy próbálkozás:

 

Előzmény: Delila10 (17587)
Alkesz_ Creative Commons License 2012.03.28 0 0 17589

Ja a kép...

Előzmény: Delila10 (17587)
Alkesz_ Creative Commons License 2012.03.28 0 0 17588

Csináltam egy képet, de ez csak részlet, ettől több adat van sorokban, de mindegyik ennyi oszlopból áll, és ilyen "hármas" kategória felosztásba belefér. Én is gondolkodtam olyanba, hogy az első és a második kategória már jelent egy sorszámot és ahoz adódik hozzá a harmadik kategória HOL.VAN fügvénye és így az összeg meghatározza a tényleges helyet de nem jöttem rá mivel lehetne megoldani...

Előzmény: Delila10 (17587)
Delila10 Creative Commons License 2012.03.27 0 0 17587

Tudnál kitenni egy képet arról, hogy állítod össze a 3 dimenziót? Talán mégis megoldható a metszet operátorral.

Előzmény: Alkesz_ (17584)
Delila10 Creative Commons License 2012.03.27 0 0 17586

Köszönöm, így már a 2007-ben is alkalmazható a metszet operátor.

Előzmény: pippancs (17585)
pippancs Creative Commons License 2012.03.27 0 0 17585

2003-ban:  Beállítások --> Számolás --> Képletekben címkék is használhatók,

2007-ben:  Képletek --> Definiált nevek  alatt érhető el.

Előzmény: Delila10 (17583)
Alkesz_ Creative Commons License 2012.03.27 0 0 17584

Sziasztok!

 

Csak felmerült egy kis probléma. A lényeg az lenne hogy egy táblázatból kellene az oszlop és a sor álltal meghatározott cella értékét visszaadni. Ezt mint Jimmy the Hand elmndta az OSZFET és a HOL.VAN függvényekkel meg is oldottam. De a probléma az lett, hogy mivel a változókat legördülő listából adom meg, így egy olyan nagyon hosszú lista keletkezik hogy görgethetem egy hétik is míg kiválasztok valamit. Ha viszont a legördülő listákat egymásba ágyazom akkor szétesik a fent említett két függvény.

 

Hogy jobban érthető legyen elmondom hogy mihez kell:

 

Konyhabútorokat készítek, és az árajánlatokat excelben szoktam csinálni. Van egy árlistám ahol a legtöbb elem ki van számolva. Példáúl "Alsó elem 2 ajtó 800 mm széles" , és ennek van több ára attól függően, hogy milyen kategóriájú ajtó megy rá. Azt nem kell mondanom, hogy nagyon sok elem van, sok méretben. A végső feladat az lenne hogy egy másik munkafüzet lapján kiválasztom egy legördülőből a kategóriát, egy másik cellában az elemet, és kiírja egy harmadik cellában a hozzá tartozó árat. Ez menne is, csak be kellene ágyaznom a legördülőket egymásba, mint példáúl Alsó elem -> 2 ajtós -> 800 mm széles. Csak ha beágyazom akkor a fenti függvények nem jól működnek mert a HOL.VAN fügvénnyel nem tudom meghatározni a sort. Mert ugye az már csak az adott "szülő" legördülő listától számol.

 

Remélem értelmesen meg tudtam fogalmazni a kérdést.

Segítséget előre is köszönöm.

Delila10 Creative Commons License 2012.03.27 0 0 17583

Igazad lehet, kipróbáltam 2007-ben, ott nem jött össze. Lusta vagyok kikeresni, hogy milyen beállításon kell módosítani.

Előzmény: Törölt nick (17582)
Törölt nick Creative Commons License 2012.03.27 0 0 17582

Nem biztos h működik nála (pl: hogy a képletek használják a sor- vagy oszlopcímkéket külön engedélyezni is kell valahol ha jól emlékszem)

(nálam pl nem működik, de nem is találom 2010-esben hol kell bekapcsolni - úgy emlékszem 2003-masban be ezt külön engedélyezni kellett

Előzmény: Delila10 (17581)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!