Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
szevasztok. Egy egyszerű dologban szeretném a segítségetek kérni. Nem tudom melyik függvénnyel lehetne a problémámon segíteni.
pl:
Dávid
Béla
Dávid
Judit
Enikő
Béla
Például van egy ilyen oszlopom, amiben ismétlődnek a nevek, és azt szeretném kiszűrni,h hány fajta név szerepel a sorban, és nem azt hogy hányszor szerepel. Melyik függvénnyel tudnám? Le tudnátok irni a teljes formáját, ha az oszlop terjedelme A1:A10, és üres cellák is vannak benne. Köszi:)
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False
'Helyfoglalás Dim sor As Long, usor As Long, kezd As Long, keres$, sorM As Long Dim WS As Worksheet
'Kezdő értékek megadása Set WS = Sheets("Árlista") 'A WS változóba tesszük az Árlista lapot sor = Target.Row
If Target.Column = 4 Then 'Ha a D (4.) oszlopba írsz Range("E" & sor) = "" 'Az aktuális sor E cellája legyen üres keres$ = Range("C" & sor) & "_" & Range("D" & sor) 'Értékadás Range("M1") = keres$ 'Beírás az M1-be
'Hol.van a kezd változóba. A lap 5. oszlopában keres kezd = Application.WorksheetFunction.Match(keres$, WS.Columns(5), 0) sorM = 1 'Értékadás, majd ide ír az O:P tartományba Range("O:P").ClearContents 'Előző O:P törlése
'Első üres sor a WS lapon usor = WS.Range("B" & Rows.Count).End(xlUp).Row + 1
'Ciklus, ami kikeresi a keres$ értékhez tartozó sorokat a WS lapon 'az előzőleg kikeresett "kezd" értéktől kezdve For sor = kezd To usor 'Ha WS lap 5. (E) oszlopa aktuális sorának az értéke =keres$, If WS.Cells(sor, 5) = keres$ Then Range("O" & sorM) = sor 'az O oszlop sorM-edik cellája az akt. sor száma lesz, 'a P oszlopba pedig bekerül az INDIREKT függvény Cells(sorM, "P") = "=INDIRECT(""'Árlista'!D""&RC[-1])" sorM = sorM + 1 'sorM értékének növelése 1-gyel Else Exit For 'Ha már a WS.E <> keres$, kilépünk a ciklusból End If Next End If
'A méret beírásakor beírja az akt. sor L oszlopába a Főcsop_Alcsop_Méret nevet. 'Erre hivatkozik a H oszlop képlete. 'Ez a sor a küldött fájl makrójában az M2-be írt, írd át! If Target.Column = 5 Then _ Range("L" & sor) = Cells(sor, 3) & "_" & Cells(sor, 4) & "_" & Cells(sor, 5)
Application.EnableEvents = True End Sub
Az Árlistához rendelt makró nem változott, a Module1-ben lévőt rendeltem a gombhoz. Az utóbbi az indító lap (Árajánlat) celláit írja át az Árajánlat első üres sorának a megfelelő celláiba.
Minden sorban lenne egy terméknév pulssz két cella az egyikben egy utoljára bejövő mennyiség és mellette egy másikban pedig a dátum, hogy mikor változott meg utoljára a mennyiség.
Nagyon érdekes megoldás. Jó sok munkát fektethettél bele. Nagyon szépen köszönöm!!!
Csak nekem egy picit így már bonyolult, mert nem látom át teljesen a makrók / gomb működését.
Lehet hogy nekem sem kéne bonyolítanom, és azt amit az előbb leírtam úgy kellene megoldanom, hogy egy munkafüzetlapra másolom az árajánlatot, az árlistával, és a végén elrejtem ami nem kell?
Hol van a cella, amit módosítasz? Egyetlen cellához, egy teljes oszlophoz, vagy egy meghatározott területen lévő cellákhoz szeretnéd ezt a beírást létrehozni?
Nem az "Árlista" lapon akarom kiválasztani, hanem az "Árajánlat" lapon, a 17. sortól, a 41. sorig. (Be is állítottam a listákat, a méret kivételével... Ez nem ment, de elnevezéssel ezt már elméletileg meg tudom oldani.)
Gyakorlatilag, ha kész akkor csak az "Árajánlat" lapon kell dolgozzak. A segédszámítások az "Árlista" erre elkülönített (rószaszín) területén jelennének meg.
Az árlista lapon csak elkülönítettem egy területet (rózsaszín) azoknak az adatoknak a számára, amelyeket segédként valahol meg kell jelentetni, mint például a makró "kezd" értéke, vagy az "Árajánlat" lap 17.sorának főcsoport&alcsoport&méret összefűzve. És mint láthatod csak az első terméknek csináltam helyet (Árajánlat 17.sor), a többi sornak, lehet hogy még kellesz hely, de ezt még nem látom át világosan. Végül is ha a 17. sorra már működik, onnan remélem már magam is boldogulok, és át tudom bővíteni az alatta lévő 24 sorra is.
Az "Árlista" zöld területe az amit eddig csináltunk. Ezt szerettem volna átvinni az "Árajánlat" lapra, csak hát nem olyan egyszerű mint gondoltam.
Neked ez lehet hogy zavaró, nekem viszont ez a súgás a hogyan is csináljam tovább kérdésre :-)
Az én meglátsom szerint az általad írt makrót kell áttenni az "Árajánlat" lapra, és módosítani hogy a D17 -et figyelje induláskor az első terméknél, (a másodiknál a D18 -at, harmadiknál D19 -et, így tovább D41 -ig.)
Az első terméknél a méret pontos beazonosításához az adatok az "Árlista" lapon a rózsaszín részen jelennének meg. A "kezd" értéke jelenne meg az "Árlista!C22" -ben a meddig (ennek nincs neve a makróban) pedig az Árlista!C23. (Ezt nem tudtam megoldani, mert az "Árajánlat" - on futó makrót nem tudtam módosítani hogy az "árlista" lapba írjon.)
Ezek után már egy sima OFSZET -vagy SZÓKÖZ operátor-, az Árajánlat H17-ben kiszámolja az árat a Árlista!C25, és a kategória alapján.
A makró végül is teljes egészében csak azt szolgálja (ha jól tudom), hogy a legürdölű menüknek a méret sorát leszűri az adott termék méretválasztékára. Utánna már az így kiválasztott 3 jellemző (főcsoport&alcsoport&méret) összefűzése adja az OFSZET függvény számára a "mit keressen" útmútatást.
Alakítottam az Árlista lapon, pontosabban az arról készített, Árlista (2)-n.
Mivel a tartományod folyamatosan bővülhet, nem szerencsés dolog adott sorok (58:260) közötti keresés.
Az új lapon elrejtettem a B:T, és az AE:AF oszlopokat. Adtam egy kitöltendő cellát a mennyiséghez, hogy a vevővel való megbeszéléskor azonnal mondani tudd neki a kiválasztott darab(ok) teljes árát.
Mikor megegyeztetek a V4:AB4 cellák adataiban, az "Árajánlat lapra" gomb beviszi ezeket az értékeket az Árajánlat lap első üres sorába.
Van egy cella aminek az értékét ha megváltoztatom akkor a mellette lévő cellábban lévő dátumnak meg kellene változnia az aktulális dátumra (tehát jelzi, hogy mikor lett utoljára változtatva a cella értéke).
Tudsz az érvényesítéssel más lapra hivatkozni, de csak úgy, hogy előbb nevet adsz a tartománynak, és ezzel a névvel hivatkozol rá. Nehéz megjegyezni a neveket, de van hozzá egy segítség. Mikor az érvényesítésnél beírtad az = jelet, F3 billentyűre megjelennek az addig megadott nevek, amikből választhatsz.
Ha jól értem, az Árlista lapon akarod kizongorázni az egyes tételeket az A4:D4 cellákban, és ezeket egymás után megjeleníteni az Árajánlat lap 17. sorától kezdődően.
Azt próbálom megcsinálni, hogy az "Árajánlat" fülön szépen lehessen dolgozni, ott vinném be az adatokat, és ott jelenne meg az ár. Csak a függvény átírása nem sikerül, mert nem tetszett neki az én kis naiv elgondolásom, hogy majd "Árlista!..." módon hivatkozgatok a másik lapra, hogy onnan vegye az adatokat....
Meg nem tudtam, hogy a makrót egymás alá másolom 25-ször, (25 termékbeviteli sor van), és a
"If Target.Address = "$B$4" Then"
sorban átírom a "$B$4" -t a 25 megfigyelt cella nevére, vagy hogy is pontosan?
És még felmerült egy kis probléma azzal is, hogy az "Árajánlat" lapon, a méretnél , az érvényesítés nem enged másik lapra hivatkozni.. :-((