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.
Százas nagyságrendű oszlopszám? Kezelhetetlen. Hogy lehet nyomtatni? Hogy lehet lekérdezni? Hogy lehet elemezni? Rengeteg nehézség, amik nyilvánvalóvá teszik, hogy nem jó a terv. Abból indul ki, hogy az adatok beírását és megtekintését ugyanabban a táblában akarja megoldani, így egyesítve mindkét feladat nehézségeit. Adatbáziskezelő jobb lenne? Az Excellel elég jól lehet emulálni. Csinálnék egy néhány oszlopos listát, és az adatokat egy másik táblában (egy pivot táblában) könnyedén vizsgálnám. A pivot tábla egy nagyon jól idomítható eszköz. Az adatbeírás egyszerűsítésére pedig rengeteg segédlet létezik. Így első becslésre egy negyedórás munka, és olyan lehetőségeket nyitna meg, amik ebben a jelenlegi táblázatban elképzelhetetlenek. Szerintem.
A függvény az I oszlopba beilleszti a J oszloptól IZ oszlopig tartó tartományban elhelyezett utolsó cellaértéket. Alapesetben a csak számadatot tartalmazó cellát nem észleli, ezen segített a cella szöveges formátumra beállítása.
Nektek is köszönöm a segítséget, ez volt a legjobb megoldás a keresett feladatra! Köszönettel: M. Csaba :)
Nem, ez csak folyamatosan kitöltött cellák esetén ad helyes eredményt, bár arra az esetre szép, de a példában hézagosan vannak.
Én viszont írtam egy makrót az este, ami először lefutott, aztán olyan elképesztő mértékben lefagyasztotta az Excelt és a VB-szerkesztőt is (lehet, hogy véletlen egybeesés folytán történt pont akkor), hogy most a szentháromsággombhoz kellett nyúlnom, mert reggelre sem tért magához (mielőtt kimásolhattam volna a kódot).
A makró alapja, hogy szükségünk van egy folyamatosan kitöltött oszlopra, ahol meg lehet számolni a sorokat, ahol dolgozni kell (pl. egy x az A oszlopban minden sorba, aztán elrejtés), vagy egy határolójelre, pl. az A200-ba, hogy efelett van a színpad.
A =CÍM(SOR();DARAB2(B2:DZ2)+1) képlet megadja az utolsó kitöltött cella címét, 130 oszlopig. Az oszlop betűjele után a sorszámot is hozzá írja (pl. $DC$2), de gondolom, ez nem túl nagy baj.
Persze hogy az lenne a legjobb, de sajnos access-ben sem vagyok jobb, másrészt alap felhasználóknak készül a tábla. Egységek napi nyomon követésére készül úgy, hogy az előző oszlopa az előző feladatát tartalmazza, de egyben kell látni, hogy ki hol jár. A szabad, feltételes, foglalt stb. státuszok egyéb adatok már megoldva grafikusan feltételes formázással... Az index, fkeres stb... függvényekkel próbálkoztam netes infók alapján, de nem tudtam ebbe életet lehelni. Az excelnek egyébként nem lenne mindegy, hogy a sorban az utolsó nem üres cellának milyen formátumú tartalmát másolja át?
Egyébként ilyenkor jön a kedvenc vesszőparipám, hogy ezt bizony adatbázisba tenném. Százas nagyságrendű oszlopszámmal minden táblázat kezelhetetlenné válik.
Szia. Százas nagyságrendben. Szöveges tartalmú lenne, egy időpont, egy helyszínt, egy feladat, és a lezárásnál egy eredmény rövid leírása. Nagyságrendileg két rövid mondat lenne.
Sziasztok! Új vagyok itt köztetek, mégis engedelmetekkel segítségért fordulnék hozzátok!
Egy jókora excel táblázatban fogok dolgozni, amely vízszintesen változó számú adatot fog tartalmazni. Pillanatok alatt át kell látnom, hogy az adott sorban az utolsó adatot tartalmazó cellába mit írtam. (szöveges)
Ezért kellene azt megoldanom, hogy a mellékelt kép szerint pl. az első oszlopban képlettel folyamatosan jelenítse meg, hogy az adott sor utolsó adatot tartalmazó cellájában mi szerepel.
Makróval megoldottam úgy, hogy a lépéseket végrehajtva letároltam, mármint egy cella jobbra, ugrás a sor végére, másol, vissza, beilleszt... - ezzel az a gondom, hogy minden sorra egyesével ki kell adni, másrészt manuális futtatást igényel. Ezért gondolkodtam az FKeres és hasonló függvényekben, azonban tapasztalat hiányában nem tudtam úgy megalkotni, hogy működjön. Feltöltöttem egy egyszerűsített példa táblát, ez lenne a cél.
Kérlek segítsetek ha tudtok ebben. Köszönettel: Csaba
Másik munkafüzetbe most nem tudom, de ugyanannak a munkafüzetnek a Veve lapjára ez átmásolgatja:
Sub másol() Dim lap As Worksheet i = 1 For Each lap In ActiveWorkbook.Worksheets If Left(lap.Name, 3) = "Ve " Then Worksheets("Veve").Cells(i, 1).Value = lap.Name For j = 1 To 13 Worksheets("Veve").Cells(i, j + 1).Value = lap.Cells(15, j) Next j i = i + 1 End If Next lap End Sub
Én egy sheetekkel alaposan megrakott excel fileból szeretnék adatokat kigyűjteni.
A sheeteknek saját neve van (Ve 1-től Ve 25-ig), mindegyikben ugyanazon táblázat van és ezeknek a sheeteknek a 15. sorát szeretném (A15-től M15 celláig) egymás alá gyűjteni egy másik fileba.
A sheetek nem egymás után következnek a sorban, van köztük más elnevezésű munkalap is.
Ha nem jó, vagy más excel verziót használsz, akkor a google segítségével keress másikat, az excel verziód számának megadásával. Megjegyzem, a Microsoftnak vannak saját leírásai, de ezeket nekem még nem sikerült értelmeznem:-)
Azért előrebocsátom, hogy nem lesz vele könnyű dolgod. Kell egy kis idő, míg kiigazodsz a diagram megszerkesztésén, a különböző feliratok kezelésén, a tengelyek beállításain stb. De megéri.
Sziasztok, lenne egy pár kédséem, ha valamelyikőtök tud segíteni hálás lennék.
Excelben most relatíve sok adatról kell kimutatásokat készítenem. Valahogy így képzeljétek el: Fel van sorolva több száz személy, neveik egy oszlopban. Egy másik oszlopban a nemzeti hovatartozásuk, egy harmadik oszlopban hogy vásároltak-e már itt valaha (igen/nem) Egy negyedik oszlopban a családi állapotuk (kb 4 változó) Még két oszlop amiben kb ugyanennyi változó van (egyenként) Egy oszlop ami a legkedveltebb termék , itt relatíve sok lehetőség van, és van akinél több tétel.
A következő grafikus kimutatásokat kell csinálnom:
A százalékos arányokról hogy hány százalék jár itt először / nem először. %os felbontás az országokról ahonnan érkeznek %os felbontás a csládi állapotokról %os felbontás a legkedveltebb termékekről %os felbontás a maradék két oszlopban lévő elemek gyakoriságáról, ugyanígy.
Ha jól gondolom el ehhez egy vagy maximum két fogást elég lenne ismernem, de valahogy nem jön össze, igazából nem ismerem az Excelt. Örülnék ha segítenétek, köszönöm szépen.
Az alábbi problémában szeretnék segítséget kérni. Adott két cella melyekből az egyik a kivehető szabadság napok számát tartalmazza, a másik pedig a kivett napok számát. A sor többi része pedig az aktuális év napjai. Olyan függvényt keresnék mellyel meg lehet azt oldani, hogy ha a naptári napok cellákba karakter kerül akkor az a kivehető napok számát csökkentse, a kivett napok számát pedig növelje a kitöltött cellák számának megfelelően. (2007-es excelt használok).
Voltaképpen az a munkám, hogy ésszerűsítsek munkafolyamatokat, és ezen a ponton már nem találom ésszerűnek az exceles megoldást. Sose volt igazán az, csak nem volt meg a lehetőség másra, de most már tartunk ott, hogy megvan.
Kösz a tippet, nem teljesen látom át ugyan, de már nem is akarom. Itt azért nem heti pár sornyi adatról van szó, és az egész rendszer a heti elszámoláson alapul. Nem teljesen egyformák a táblázatok, ahogy az idő előrehalad, változnak benne a tételek, és egyébként a dolgozóknak sorokat kell beszúrniuk meg törölniük és bizonyos fokig önállóan karbantartaniuk.
Én ebbe a táblázatba több munkát már nem vagyok hajlandó tenni, ennél többet nem ér meg, elérte az életciklusának a végét. Amikor a céghez jöttem három éve, még minden dolgozónak minden héten új külön munkafüzete volt elég kevés rendező elvvel, amiket aztán valaki hetente egynapos munkával összesített, másvalaki meg nem tudom mennyi munkával bogarászott ki belőle egy másik összesítést... azóta sikerült összevonni, egységesíteni, telerakni makrókkal (a topic segítségével, emiatt kérdezgettem itt a legtöbbet), de most slussz, leveszem a kezem róla. A következő generációs megoldás már adatbázist fog használni, sokkal egyszerűbb és hatékonyabb és védhetőbb lesz. Gyakorlatilag ez az egyetlen dolog, amiért VBA programozással kell foglalkoznom, és az a része sem éri meg az időt, hogy folyton beleássam magam, és újra belerázódjak, mi mit csinál itt, hiszen egyetlen évi párszor elővett feladatért nem éri meg karbantartott tudással rendelkezni egy nyelvből. Ez a magasabb szintje a "mi mennyit ér meg"-nek. Plusz állandóan a megosztott munkafüzetek korlátaiba ütközöm programozás közben. Sokkal rugalmasabb funkcionalitást képzelek el, mint amit érdemes Excelben bütykölgetni. Összességében tényleg sok munkát tettem már bele, de ideje elengedni.
Tudom, rengeteget dolgoztál rajta, hogy működjön. Mégis engedj meg egy kis "belekotyogást". Ha mindenki minden héten ugyanolyan formátumú táblázatokat használ és "csak" az egyéni adatok különböznek, én biztosan nem hoznék létre minden hétre külön munkafüzetet. A "minta" munkafüzetbe tennék egy munkalapot, ahová mindenkinek felírnám az adott heti adatait egy-egy sorba. Amikor belép, megnézném, hogy van-e már adata arra a hétre - ha igen, visszatölteném az "adatlapra", ha nincs, akkor üres előkészített munkalapot kapna. Ezt a munkalapot lehet menteni - az adattároló lapra -, nyomtatni, módosítani stb. Kilépéskor pedig lehet üríteni.
Ez működik közös használattal is.
Előnye a megoldásnak, hogy a korábbi adatok bármikor megnézhetőek - szükség és engedély esetén akár módosíthatóak is, anélkül, hogy több munkafüzettel kellene bajlódni. Továbbá statisztikák, grafikonok is egyszerű módon készíthetőek belőle.
(Nekem van egy ilyen működő munkafüzetem hasonló feladatokra - pl. jelenléti ív, munkaórák eltöltése stb.).
De, a védelem működik, ahogy írtad is, csak a ki-be kapcsolás nem! Nagyon sok munka volt, rengeteg tesztelés, folyton újabb és újabb hibák és buktatók jöttek elő, de azt hiszem, most már tényleg jó.
A feladat egy olyan táblázat, aminek van néhány közös használatú munkalapja, valamint dolgozónként egy (4-5-6) személyes munkalapja, aminek egyformának kellene lennie. És ebből hetente kell egy. Eddig az előző hetit másolgatták és nullázták az adatait.
Ezek a személyes munkalapok egyre kaotikusabbak és egyformátlanabbak lettek az idők folyamán, ami már az összesítést végző makrót is meglékelte. Új utat kerestem, és a megoldás ilyen lett:
Van egy mintamunkafüzet, aminek egyetlenegy ilyen személyes munkalapja van minta néven, és a kezdő munkalapra felírva a dolgozók neve. Ez nincs megosztva, de le van védve a userinterface-es módszerrel. A kezdőlapon van egy gomb, ami nem működik az eredeti munkafüzetben (név alapján), csak a másolatban, de ott is csak egyszer. A más néven lemásolt munkafüzetben a nevek listája alapján létrehozza a megfelelő számú és nevű másolatot a munkalapból, levédi őket (mert a másolás a védelmet nem másolja), majd megosztja a munkafüzetet. Így a mintamunkalap és a másolatok is folyamatosan védettek.
Ha kézzel le kell venni a védelmet karbantartás miatt, akkor azt az eredetin fogom megtenni, ami nincs megosztva. Utána be kell zárni és újra megnyitni, ekkor a makró (amelyik érzékeli, hogy nem megosztott munkafüzetben índították el a megnyitáskor) ismét levédi userinterface-esre a lapot.
Elég bonyolult, és többször bejöttek újabb és újabb hibák a tesztelés során, de most már megy.
Mondom, ez meg van oldva, csak az érdekelt, hogy van-e egysoros megoldása, és ezek szerint nincs. Érdemben javítani nem lehet rajta azzal, hogy a ciklust ide-oda pakolgatjuk.
Köszi a segítséget, de sajna ez nem segített nekem :(. 3 darab fájl érintett a dologban, amik valószínűleg meg voltak nyitva a frissítés idejében, a többi fájlt az excel hibátlanul megnyitja.
Tapasztalatom szerint néha megéri egy "munka" munkalap vagy segédoszlop használata a problémák megoldásához, mert ott működnek az excel beépített függvényei.
Ha nem írja be sehova a számot, amit megtalált, akkor nem lehet csak ciklussal megcsinálni szerintem - az első számot tárolod egy változóban, majd minden egyes számolásnál megnézed, hogy a kapott érték kisebb-e mint a változó értéke. Ha globális változót használsz, akkor ezt a vizsgálatot beépítheted magába a myfunc függvénybe is szerintem.
Megosztott munkafüzetben nem lehet a lapvédelmet sem bekapcsolni, sem kikapcsolni. Megőrzi azt az állapotot, amelyben megosztottad.
A Userinterfaceonly kapcsoló viszont csak a munkafüzet nyitvatartása alatt működik - ahogyan írtad is -, mivel pedig megosztott munkafüzetben nem műxik a védelem, ezért nem is használható. Más trükköket kell - sajnos - a zárolásra használni.
Ezzel sikeresen visszavezettük a feladatot egy pontosan ugyanolyan bonyolultságúra. :-) Hiszen mint mondtam, ciklussal már megoldottam, így csak áthelyeződik a ciklus egy másik függvénybe.
A myfunc egy index-hol.van kombináció, tehát tisztán beépített függvényt használ.
Egy kicsit revideálnom kell ezt a dolgot, mert csak leírtam, amit olvastam.
A gyakorlatban azt látom, hogy megosztott munkafüzetben ugyanúgy hibát okoz a lapvédelem bekapcsolása a megnyitáskor, mint máskor, de nincs is szükség rá; a forrás állításával ellentétben megőrzi a védett tulajdonságát a lap bezárás-megnyitás után. De lehet, hogy ezt a megosztás teszi, és anélkül tényleg így volna.
Azt hiszem, nagyot fejlődött az elmúlt két szabadnapomon a táblázat is meg én is. :-)
Az A oszlopban vannak számok. Van egy myfunc nevű felhasználói függvény, ami egy számhoz egy dátumot rendel egy másik munkalapról.
Hogy lehet makróval egy lépésben meghatározni ennek a minimumát? Tehát olyasmire gondolok, mint MIN(myfunc(A:A)). Az excel kijavította dupla szárójelre, de így se működik.
Ciklussal már megoldottam, tehát csak ennél tömörebb és elegánsabb megoldás érdekel, amúgy működik.
Már majdnem segítséget kértem ehhez a makróhoz, mert át kellett írni úgy, hogy azokat a sorokat ne próbálja elrejteni, amik zárolt cellával kezdődnek (a lapvédelem miatt).
De sikerült önállóan megoldanom. :-)
Közben egyébként találtam egy nagyon érdekes dolgot, hátha valakinek még szintén új:
A ThisWorkbookban lehet egy ilyent csinálni:
Private Sub Workbook_Open()
Benne egy ilyen sorral (a lap most valamilyen kiválasztott lapot jelent):
Ez olyan védelmet ad a munkalapnak, ami csak a felhasználói beavatkozások ellen jó, de a makrók szabadon dolgozhatnak. Pl. az általam definiált gombot lehet nyomkodni, az működik így is. Ezt a védelmet nem lehet interaktívan beállítani, csak makróból, és nem őrződik meg, ha bezárjuk, ezért minden megnyitáskor automatikusan lefuttatjuk.
Range("A7") = "" For Each cell In Range("C1:C2000") If cell = "x" Then Range("A7") = Range("A7") & cell.Offset(, 1) Else Range("A8") = cell.Offset(, 1) End If Next MsgBox "Kész", vbInformation End Sub
Az az A7 cellában fűzi össze a D oszlop azon celláinak az értékét, ahol a sor C-jében x-et talál.
Olyan problémában kérném valakinek a segítségét, hogy az .xlsx kiterjesztésű fájl megnyitásakor ...érvénytelen a fájl kiterjesztése vagy formátuma... hibaüzenetet kapom. A probléma gyökere valószínűleg a windows frissítésének idejére vezethető vissza, lehet, hogy nyitva volt akkor a fájl. A word meg tudja nyitni de azzal sokra nem megyek mivel semmitmondó karakter sorozat van benne. Előre is köszönöm szépen a segítséget. :)
Ha megnézed a táblát amit linkeltem, és lefuttatod benne a kódot úgy, hogy lásd közben a táblát, akkor láthatod hogy hogyan "futnak" vagy "pörögnek" a karakterek. :)
A pörgetésen azt értem, hogy futtassa végig a karaktereket a cellában addig amíg meg nem találja az első x-et. Aztán keresse tovább a másodikat, és amíg nem találja, futtassa az előtte lévő karaktereket...
Tudom, máshogy is meg lehet oldani hogy oda kerüljön az érték, de ezt most így álmodtam meg. :) Nincs semmi gyakorlati haszna, nem kell semmilyen projekthez, csak unalmamban gondolkodtam rajta.
Mit értesz pörgetésen? Mit kéne csinálnia, amit most nem csinál?
Kipróbáltam, nekem valamiért csak a második x-től kezdi belerakni, de nincs időm debuggolgatni. Elég nyakatekert program. Mi értelme magában a célcellában előállítani az értéket és változtatgatni? Csak lassít. Miért nem teszed egy változóba, aminek a végeredményét a cellába írod? Ha nem subként, hanem functionként írod meg, akkor bármelyik cellába teheted, nem kell bedrótozni a célt.
"Az elképzelésünk az, hogy egy word-os körlevélszerűségbe beszúrunk két excel cellát, ahol az egyikbe a numerikus érték kerül, ez alapján a másik cellába a szöveges megfelelő menne."
Megmagyaráznád, hogy ez mit jelent? Ugyanis körlevél készítésnél nem a körlevélbe "szúrunk be Excel cellákat", hanem adatmezőket hozunk létre az alábbiak szerint (Nem könnyű, oda kell figyelni, de a végeredmény nagyon kényelmes használatot tesz lehetővé):
A Te feladatodnál célszerű, ha csak a levél alapszövege készül Word-ben, az adatok az Excel munkafüzetben maradnak (hivatalos nevén adatforrás). És a munkafüzet megfelelő oszlopainak nevét kell beírnod a Word körlevélbe adatmezőként (Pontosabban nem beírni kell, hanem a levélnek az adatforrással történt összekapcsolása után kiválogatni listából). A körlevél tartalmát és formázási beállításait az egyetlen példányban elkészített Word dokumentum határozza meg, az egyes példányainak számát és az adatmezők tartalmát az Excel táblázat.
Te is így tervezed?
Mert ebben az esetben _nyuszi megoldása tökéletes. Ahogy látom, ő csak egyetlen cellára vonatkozóan írta meg, de nem okoz gondot egy ciklusban végigszaladni a makróval az Excel táblázat valamennyi során, kitöltve egy segédoszlopot a számok szöveges formájával.
Ezután az így kapott Excel táblázat lesz a körlevélnél az "Adatforrás", és annyi leveled lesz, ahány sora van a táblázatnak. A körlevél Word alapdokumentumában pedig megadod a címzett mezőt, és az egyéb adatmezőket, valamint az Excel táblázat számait tartalmazó oszlopot, illetve a számok szöveges változatát tartalmazó oszlopot adatmezőkként.
Este nem tudtam aludni és azon gondolkodtam, hogy adott oszlopban lévő adatokat hogyan tudnék összefűzni egy cellába. Magában ez még menne, olyan megoldást szeretnék ami feltétel alapján fűz.
Vagyis: "D" oszlopban pl ASCII karakterek, és ebből csak azokat fűzze össze mondjuk "A7"-be, amit a "C" oszlopban x-el jelöltem. Ez valahogy így néz ki:
Sub ss() Dim cell As Range
Range("A7") = "" For Each cell In Range("C2:C400") If cell.Value = "x" Then Range("A7").Value = Range("A7").Value & cell.End(xlDown).Offset(0, 1).Value End If Next End Sub
Viszont amit nem tudtam megoldani, hogy addig amíg nem talál "x"-et, pörgesse az ASCII karaktereket "A7"-ben. Ha talál egy "x"-et akkor rakja be a jelölt karaktert, és amíg nem talál másikat, pörgesse tovább az ASCII-t.
Ha jól emlékszem, a Word körlevél egy Excel-táblázatból szedi az adatokat (legalábbis nálam mindig így volt, bár kb. 5-ször, ha kellett ilyet csinálnom).
A már megosztott függvénnyel vegyél fel még egy oszlopot, és azt, mint mezőváltozót (vagy mi a rettenetet) illeszd be a Wordbe (ahogy minden mást is).
Nem tudom, mennyire vagytok kész a Word doksival, de ez lesz a legegyszerűbb és legjobban járható út, akármennyire is pöpec már a formázás.
Word doksiba táblázatot (pláne olyat, amiben képlet van) ne tegyél bele, ha nem muszáj, mert nehéz szépre formázni, meg egyébként is: hogy néz má' ki? :D
(Nálam a b) verzió egyébként az szokott lenni, hogy végiggondolom, hogy biztosan kell-e nekem betűvel is kiírni... :) )
Az elképzelésünk az, hogy egy word-os körlevélszerűségbe beszúrunk két excel cellát, ahol az egyikbe a numerikus érték kerül, ez alapján a másik cellába a szöveges megfelelő menne.
Miután 100-as nagyságrendű a körlevél, úgy gondoljuk érdemes némi energiát feccölni bele.
Mindenesetre köszönettel elmentjük a küldött rutint.
Ezen a fórumon ez az első hsz-em, köszöntök mindenkit.
Nem vagyok profi excel programozó, és most is egy barátom tett fel egy kérdést amire én nem tudom a választ.
Feladat: van egy függvény az Office 2003-ban, neve BAHTSZÖVEG (szám). A megadott számot szövegként irja ki. A probláma gondolom ismert, THAI nyelven. Kérdezzük, hogyan lehet megmagyaritani a szöveget??
Az ures cellakat kijelolom, majd a felette levo kitoltott cella erteket szeretnem a cellaba iratni, viszont csak a cella "szamat" masolja le es nem az erteket.
Probaltam a cellat fomazni, de semmi nem segitett, raadasul egy fura kijeloles van, amit nem tudok eltuntetni.
Bocsi a szakszerutlen leirasert, hatha valaki a kep alapjan tudja, hogy mi lehet a gond.
Private Sub Worksheet_Change(ByVal Target As Range) Dim x As Integer If Target.Address = "$J$1" Then For x = 1 To Target ActiveSheet.PageSetup.RightHeader = x & ". példány" ActiveWindow.SelectedSheets.PrintOut Copies:=1 Next End If End Sub
Van egy oszlop, ahol értéke van a kérdéseknek, vagyis, hogy adott sorban mennyit érjen az x. Legyen ez mondjuk az A oszlop. B oszlopba kerülnek az x-ek. Abba a cellába pedig, ahol az eredményt akarod látni, beírod a következő képletet: =SZUM(HA(B1:B100="x";A1:A100;)) Ami fontos, hogy tömbképletként kell bevinni, vagyis Shift+Ctrl+Enter egyidejű lenyomásával. Így azokat az értékeket összegzi az A oszlopban, amelyeket B-ben x-el megjelölsz.
Az "A oszlop" lehet akár másik munkafüzetben is, sőt, azt a munkafüzetet meg se kell nyitnod, ha a képletben pontosan hivatkozol rá. Valahogy így fog kinézni: =SZUM(HA(B1:B100="x";'D:Dokumentumok[Súlyozásos_Tábla.xls]Munka1'!$A$1:$A$100;))
A képletet bemásolod a jegyzettömbbe. Előveszel egy kitöltött kérdőívet, ráállsz a cellára, ahová az eredményt kéred, a szerkesztőlécen beilleszted a képletet, és az említett módon beviszed. Azután esetleg kicseréled a képletet az értékére.
Segítséget szeretnék kérni, nem vagyok nagy exceles és küzdök már egy ideje.
Van egy kérdőív, melyben "X"-el jelölik ha valami igaz rájuk, ez eddig ok, DARABTELI-vel össze tudom számolni. A gondom az, hogy van olyan kérdés ami 4 pontot ér, tehát nekem úgy kéne összeszámolnom az X-eket, hogy valahol 1, valahol meg 4-pontnak számít.
Biztos van erre valami tök egyszerű megoldás, de nem jövök rá.
Ez egyéni élőfej, élőláb paraméterezésénél nincs ilyen opció, és amikor a nyomtatást indítod, akkor már se a lapok tartalma nem változhat, se makró nem fut..
Igen köszönöm, nem szeretném állandóan szerkesztgetni a fejlécet. Van ere valami megoldás?De amit írtál is remekül fogom tudni használni, ezzel is időt spórolva :) Uh. köszönöm
Én úgy értelmeztem, hogy egyszer akarja kiadni az utasítást, hogy nyomtasson 3 példányban, és ennek ellenére valahol (fejlécben?) legyen feltüntetve (automatikusan), hogy 1. vagy 2. vagy 3. példány.
Mert lusta háromszor elindítani a nyomtatást és közben módosítani a fejlécet...
Ezt a kérdést már többször feltetted. Kicsit nehezen érthető a megfogalmazás miatt. Most megpróbálom értelmezni. Valószínűleg azt szeretnéd, ha egy cellába beírsz 1 és 3 közötti számot, ennek megfelelő példányban nyomtassa ki a lapod tartalmát.
A cella, amiben az értéket megadod, nálam a J1. A makrót a lapodhoz kell rendelned: lapfülön jobb klikk, Kód megjelenítése. Beléptél a makró szerkesztőbe, ahol jobb oldalon kapsz egy nagy üres területet, oda kell másolnod.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$J$1" Then _ ActiveWindow.SelectedSheets.PrintOut Copies:=Target End Sub
Mikor megváltoztatod a J1 cella értékét, indul a nyomtatás.
Van egy 1 oldalas exel munkafüzet amit 3 példányban akarok nyomtatni, és példányszámozni szeretném. Tehát az 1 nyomtatás 1 pld 2.nyomtatás 2pld stb.. Office 2007-ben dolgozom.
ha itt használom az indirekt képletet, akkor nem a makron belül cseréli le a számokat, hanem keresni fog a munkalapon egy cellát, aminek az értékét bemásolja
Nekem csak annyi kell, hogy a makron belül a 3-as érték paraméterezhető legyen.
Datum formazassal kapcsolatban kernek segitseget, hogy megtalaljam az elterest.
Adott 2 oszlop 2013-2014 kozotti ertekekkel (honap-ev).
A: idoszak regi, a cella erteke Jan-13 (a szeresztolecen is ezt latom: Jan-13)
B: idoszak uj, a cella erteke Jan-13 (a szeresztolecen ezt latom:2013-01-01)
Olvastam a neten, hogy valaki azt javasolja, hogy masoljam at az ertekeket egy notepadra a B oszopbol, majd masolas es beillesztes.
Beillesztettem, tovabbra is ezt latom, Jan-13, viszont a szeresztolecen ezt latom: 2015-01-13.
Hogyan tudnam kompatibilisse tenni a 2 oszlop formatumat, hogy meg tudjam nezni, hogy melyik sorban tortent valtozas? Az if fuggvenyt hasznalnam. Vagy van jobb modszer?
Azt hogyan lehet megoldani, hogy az alábbi képletben az R3C3 tag dinamikusan változzon, azaz a 3 értéke pl egy változó értékétől függjön?
Az a gondom, hogyha ezt a képletet más cellába illesztem be, akkor mindig a 3. sor 3. oszlohoz fog tartozni a képlet, mígy nekem csak az lenne a célom, hogy mindig más cellába rögzítőjön.
Van egy 1 oldalas exel munkafüzet amit 3 példányban akarok nyomtatni, és példányszámozni szeretném. Tehát az 1 nyomtatás 1 pld 2.nyomtatás 2pld stb.. Office 2007-ben dolgozom.
For Each cell In crange If cell.Value < "-0,05" Then cell.Interior.Color = vbRed ElseIf cell.Value < 0 And cell.Value > "-0,05" Then cell.Interior.Color = vbYellow ElseIf cell.Value >= 0 Then cell.Interior.Color = vbGreen End If Next
Van egy 1 oldalas exel munkafüzet amit 3 példányban akarok nyomtatni, és példányszámozni szeretném. Tehát az 1 nyomtatás 1 pld 2.nyomtatás 2pld stb.. Office 2007-ben dolgozom.
Nekem is az MNB árfolyamokkal van bajom. URL alapján szépen szedegeti le. A bajom az hogy eddig eddig úgy szedte le, hogy 2015.08.11. Most pedig úgy tölti le, hogy 2015. augusztus 11. További függvényeket arra alapoztam hogy számmal írja. Hogyan tudnám átkonvertálni? Az ötletem az hogy ahogy eddig is beírom hogy 2015.08.11 az E1 oszlopba és az F1 oszlopban pedig átkonvertálom 2015. augusztus 11.
Sajnos a cellaformázás sehogy sem akar összejönni.
Kicsit teszteltem az EXCEL Visual Basic sebességet:
C++ -om még nincs, de FreePascal -m már igen.
Mindkét rendszerben megírtam ugyanazt az algoritmust: (csak a szintaktika tért el)
Keresse meg 1 000 000-ig a prímszámokat
Excel VB: 3 másodperc
FreePascal: 0,2 másodperc
Érdekesség: A freepascal ban eredetileg egy egyesével léptetett forciklus ment 3-tól 1000000-ig,
aztán lecseréltem egy while ciklusra, hogy kettesével tudjam léptetni (csak a páratlan számokat nézze), de ettől csak 2 század másodpercet javult.
Basicben eredetileg is kettesével léptettem (így volt 3 másodperc), amikor visszabutítottam (kiszedtem a step 2-t), akkor keményen felment 6 másodpercre a futásidő...
Az árfolyamok le voltak tárolva évenként külön filebanm működött szépen.
Az MNB a napokban eléggé átszabta a weboldalát. Most úgy működik az árfolyam lekérés, hogy legördülőből kiválasztod az adott évet, nyomsz egy letöltést és jön a file. Igen ám, csak teljesen mindegy milyen évet kérek le, a file neve mindig ugyanaz: arfolyam-letoltes.xls
Na ezt kellene valahogy megoldani oly módon, hogy a VBA kiválassza 2015-öt a legördülőből és után szépen nyissa is meg.
Igen, úgy össze is van adva a megfelelő helyeken. Viszont van pár cella, ahol nem akarok már külön cellákat az összeadandó adatoknak. Emiatt kellene ott a cellában az = jel után beírva.
Ha csoportbafoglalással csinálnám és külön cellába raknám, akkor sajnos a lapon lévő felette lévő sorokat ehhez kéne igazítani, ami meg már elcsúfítja az egészet.
Elsőként köszönöm a hozzászólásokat és főként a megoldásokat, jelenleg Feriével bővítettem és remekül működik.
pimre javaslatát is lementettem és majd a későbbiekben tesztelgetem.
A külön mappákra pedig azért van szükség mert előfordulhat, hogy két fájlnak is ugyanaz a neve és olyankor a felhasználónak kellene módosítania a nevet és szabadon eldönteni hová menti, de ő nem tudja hogy melyik gépen milyen folyamat fut és miért (csak ha elmagyaráznám mikor mit hova, de az is mindig más és más), így nincs fennakadás és nap végén az elkészült fájlokat már én tudom szintén makróval vizsgálni mi velük a további teendő.
Valószínű nem lesz ez végleges de most gyorsban ez nekem jó lesz.
Ha nem akarsz a szerkesztőlécen képletet írogatni, és inkább beírnád két cellába a két időt, akkor már össze fogod tudni adni őket, ha megfelelően vannak formázva (azaz pl. időnek formázod a cellákat, vagy hagyod általánoson).
Például az A1 értéke: 0:05:15, a B1 értéke pedig: 0:04:20, akkor az A2-be írt =A1+B1 helyes eredményt fog neked adni.
Teljesen mindegy, hogy melyik verziót használod, ízlés kérdése csak.
"Azért később majd azt is meg kellene csinálnom, hogy a mappákat ne én készítsem el manuálisan hanem a makró magától ismerje fel hol tart a mappa számozás és készítsen egy következő sorszámú mappát."
Ha ezt úgy értetted, hogy nem szeretnéd az utolsó elkészült mappa sorszámát egy külön fájlban őrizgetni, akkor itt egy megoldás erre. Nem a legelegánsabb végigmenni a lehetséges számokon ellenőrizve, hogy az már fel lett-e használva, de jobbat nem tudok. Végülis elég ggyors így is. A két konstansnak (evszam és ezossz) találomra adtam értéket, ezeket majd aktualizálnod kell. A fájl létrehozása után az elkészült fájl aktív marad. Utána beírtam egy sort, ami lezárja. Ha persze rögön használni is szeretné a programot, akkor ez törlendő.
Option Explicit
Sub creadir()
Const evszam As Long = 2015, ezossz As Long = 1
Dim rns As Long, ExcelWorkbook As Excel.Workbook
For rns = 0 To 99
If Dir("D:DokumentumokDNS" & rns, vbDirectory) = "" Then Exit For ' Amíg megtalálja, addig ven ilyen könyvtár
ActiveWorkbook.Close ' Ha rögtön dolgozni akarsz vele, akkor ez a sor elhagyható
Else
MsgBox "Elkészült a 100 könyvtár. Új nem hozható létre!"
End If
End Sub
Off: Azért megjegyzem, hogy a magam részéről igyekszem elkerülni az ilyen könyvtárhasználatot. Szerintem nehézkesebbé teheti az áttekintést, és a mentést. Általában megpróbálok egy könyvtáron belül maradva csak a fájlneveket módosítani. Sőt, kihasználva azt, hogy egyetlen Excel fájlon belül rengeteg munkalap nyitható, még azt is meg szoktam fontolni, hogy esetleg egyetlen fájlban dolgozom, és csak a munkalapok nevébe kerülnek a különböző sorszámok.
Persze Te ismered a feladatot, de azért egy átgondolást megérhet, hogy valóban a jelenlegi megoldást használod-e.
RNS = Workbooks("SzamlaTlan.XLSM").Sheets("Sheet3").Cells(33, "O").value ' itt van az utolsónak mentett mappa sorszáma, legelőször 0 legyen az értéke Workbooks("SzamlaTlan.XLSM").Sheets("Sheet3").Cells(33, "O").value = RNS + 1
Workbooks("SzamlaTlan.XLSM").Save
Mkdir "D:DokumentumokDNS" & RNS 'itt jön létre a mappa
Azért később majd azt is meg kellene csinálnom, hogy a mappákat ne én készítsem el manuálisan hanem a makró magától ismerje fel hol tart a mappa számozás és készítsen egy következő sorszámú mappát.
Nos valami nem kerek a dologban, így kigondoltam valami egyszerűbbet. Megcsináltam előre a mappákat 1-100 ig és egy excelből olvassa ki az aktuális mappa sorszámát. De ez sem megy tökéletesen (hiányos ismereteim végett)
Sub FileKezeles() Dim fsoas Scripting.FileSystemObject Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder "c:Documents and SettingsÚj könytár" EndSub
Nem tudom, neked milyen beállításaid vannak. Nálam magyar beállítással (tizedesvessző) múködik az alábbi kód:
(Jimmy kódja módosítva)
Dim Arr
Do Until EOF(2) Line Input #2, olv 'Egy sort beolvasunk arr = Split(olv, ";") Sheets(i).range(Cells(sorszam,1),cells(sorszam, ubound(arr,1))).Value =arr 'a cellák értéke a tömbből jön sorszam = sorszam + 1 'végigértünk a soron, lépünk a következőre Loop
A sorszámot, illetve a kezdő oszlopszámot természetesen a neked szükséges értékre állítsd be.
Arra gondoltam, hogy ha kézzel végigcsinálod az importálást (nem simán megnyitva a csv-t, ahogy az újabb Excelek erre képesek), akkor van egy olyan lpés, ahol az oszlopok típusát egyenként beállíthatod, és ezt lehetne lelopni a rögzítővel.
Nos azt nem tudom, miért csinálja, gondolom ezúttal is a remekül (MS-hez méltóan) megoldott automatikus konverzió áll a háttérben, megspékelve a nyelvi beállítások megjósolhatatlan kezelésével. Az eredeti kódod szerintem működne így (a változást kiemeltem pirossal):
Open CurrentPath & DataPath & tomb_NameOf(i, 2) For Input As #2 'Olvasásra nyissuk meg a megfelelő fájlt sorszam = 0 'a sor számát 0-ra állítjuk Do Until EOF(2) Line Input #2, olv 'Egy sort beolvasunk elozojel = 0 'a tagoló helyszámát 0-ra állítjuk k = 0 'az oszlopszámot 0-ra állítjuk For l = 1 To Len(olv) 'végigjárunk egy sort If Mid(olv, l, 1) = ";" Then 'kimegyünk, ha a karakter egy határolójel k = k + 1 'az oszlopszámot léptetjük eggyel, 'majd kiírjuk az i. munkalapra a tartalmat: Sheets(i).Cells(tomb_HeaderCol(i, 2) + sorszam, k).Value = "'" & Mid(olv, elozojel + 1, l - elozojel - 1) 'a cellák értéke innen jön elozojel = l 'eltároljuk a határoló értékét End If Next l sorszam = sorszam + 1 'végigértünk a soron, lépünk a következőre. Loop olv = "" 'új sor kezdetekor nullázuk a sorértéket. Close 2 'Lezárjuk az olvasásra nyitott fájlt.
Muszáj megjegyeznem viszont, hogy a szövegsor felszabdalását nagyon komplikált módon végzed.
Ismerkedj meg a Split() függvénnyel. A fenti kód ciklusa így nézne ki Split használatával:
Dim Arr
Do Until EOF(2) Line Input #2, olv 'Egy sort beolvasunk arr = Split(olv, ";") For k = LBound(arr) To UBound(arr) Sheets(i).Cells(tomb_HeaderCol(i, 2) + sorszam, k + 1).Value = "'" & arr(k) 'a cellák értéke innen jön Next sorszam = sorszam + 1 'végigértünk a soron, lépünk a következőre Loop
Jut még eszembe, hogy nem látom a változók deklarációját a kód tetején. Attól még lehet, de ha nincs, ha nem használsz ilyesmit, akkor ajánlanám rászokni.
210;;;035119;Budapest XVIII. Kerületi Bókay Árpád Általános Iskola;Bókay Árpád Általános Iskola;;;;15799658-2-41;1181;393;Wlassics Gyula;61;69.;;;;;;47,4386556;19,1810361;;;www.bokay.hu;1;2914836;0;;;;;bokay@bokay.hu;Vörösné Éles Csilla;9;;;;;;0;;;;;0;oktatas.hu;1;1;2;0;0;0;-1;-1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-1;0;Klebelsberg Intézményfenntartó Központ;1051 Budapest V. kerület, Nádor utca 32.;állami intézményfenntartó központi hivatal;Hanesz József;megbízott elnök;elnok@klik.gov.hu;KLIK Budapesti XVIII. Tankerülete;1181 Budapest XVIII., Üllői út 453. I. em.;;
A kódrészlet:
Open CurrentPath & DataPath & tomb_NameOf(i, 2) For Input As #2 'Olvasásra nyissuk meg a megfelelő fájlt sorszam = 0 'a sor számát 0-ra állítjuk Do Until EOF(2) Line Input #2, olv 'Egy sort beolvasunk elozojel = 0 'a tagoló helyszámát 0-ra állítjuk k = 0 'az oszlopszámot 0-ra állítjuk For l = 1 To Len(olv) 'végigjárunk egy sort If Mid(olv, l, 1) = ";" Then 'kimegyünk, ha a karakter egy határolójel k = k + 1 'az oszlopszámot léptetjük eggyel, 'majd kiírjuk az i. munkalapra a tartalmat: Sheets(i).Cells(tomb_HeaderCol(i, 2) + sorszam, k).Value = Mid(olv, elozojel + 1, l - elozojel - 1) 'a cellák értéke innen jön elozojel = l 'eltároljuk a határoló értékét End If Next l sorszam = sorszam + 1 'végigértünk a soron, lépünk a következőre. Loop olv = "" 'új sor kezdetekor nullázuk a sorértéket. Close 2 'Lezárjuk az olvasásra nyitott fájlt.
Az egész körül van még egy ciklus, ami a fájlszámot lépteti, ez az i változó értékét adja.
(Más észrevétel is jöhet, ha láttok a kódban, nem csak a kérdésemhez illő. :) )
Van egy Excel makróm, ami a munkafüzet mind a 32 munkalapját kimenti egy-egy pontosvesszővel tagolt szövegfájlba, hogy egy másik, off program be tudja olvasni.
Utána az Excel egy másik makrója vissza tudja olvasni, _nyulván pontosvesszőtől pontosvesszőig terjed egy-egy cella tartalma.
A gondom az az, hogy tárolok benne WGS84 koordinátákat (pl. 47,534433), amit nagyon szépen kiment, de visszaolvasáskor eltűnik belőle a vessző. A Format( sem segít rajta, jelenleg leosztom egy akkora tízhatvánnyal, hogy jó legyen (ezt szeretném rövid úton elfelejteni, nem szeretnék oszloponként eltérően formázni csak amiatt, mert az Excel okosabb, mint én :) ). Miért nem stringnek kezeli a stringet? (Telefonszámmal ugyanez: körzetszámot és kapcsolási számot külön cellában tárolom, visszaolvasásnál (fájl -> Excel irány) ezresekre csoportosítja. Ha a cellát előtte szövegnek formázom, akkor is.
Kértek hozzá kódot vagy annyira frappáns a dolog, hogy nem kell?
Azt szeretném elérni, hogy az excel munkalapon Ha az A2-es cella tartalmát változtatom, akkor változzon az A22, az A28, az A48 stb. is az A2-es cella tartalmára.
Azt szeretném elérni, hogyha egy szöveges cella tartalma ##-al kezdődik (vagy bármilyen más karakterrel, szóval) akkor egy adott cella értéke legyen nulla.
Az nem baj, ha megcélozzák az analfabétákat, sőt, támogatom.
Az a baj, ha az írni-olvasni tudókat is lekényszerítik analfabéta szintre.
Egyébként pontosan ez a bajom ezzel a smart-őrülettel is. Okos telefon, okos tévé, okos ez, okos az, okos amaz, minden okos már körülöttünk, az embernek meg fölösleges megtanulnia, hiszen a gépek tudják. Így az ember buta marad. Mintha csak tényleg ez lenne a cél.
Próbálkoztam azzal, de nem jutottam sikerre. Lehet rosszul tettem fel a kérdést. Az lenne a célom, hogy a szum() függvény argumentumát ne a függvényben adjam meg közvetlenül, hanem az két cellára hivatkozzon.
Így oda pl be tudnám írni hogy a2 és b5 és utána ezt a tartományt adná össze a képlet, és nem kellene külön a függvényt átírni.
Most az analfabétákat célozzák meg, hogy legyen új customer.
Nem lepödnék meg, ha pár év múlva közölnék, hogy kilobbizták, hogy felmondják az orosz-amerikai egyezményt a Hold túlsó oldalának kutatásának tiltásáról, es cserébe kötelezik a holdlakókat a ms win29 használatára.
Egy olyan kérdésem lenne, hogy valahogy meglehet-e oldani makro nélkül, hogy egy adott függvény tartományhivatkozása dinamikusan változzon, azaz pl más cellákra hivatkozzon, Pl =szum(A1:B8) esetén az A1 és a B8 cellákat én "kivülről" adhassam meg, ne kelljen minden cellában átini a függvényt, hanem a a függvény csak egy helyre hivatkozna, ahol azt megtudnám változtatni.
Előszőr is nagyon köszönöm a segítséget. Másodszor előre elnézést az értetlenkedésemért.
Sajnos nem jól írtam le a problémát.
Feltételes formázással én csak az adott cella vonatkozóan tudtam formázni többre nem.
Megpróbálom konkrétabban leírni:
Szóval tegyük fel van két munkám
1 festés
2 burkolás
A festés 38 napig tart a burkolás 52 napig. Azt szeretném, hogy a festés esetében ami 38 nap magától 38 db cellát színezzen be egy sorban. Viszont ha megváltozik a festés időtartama mondjuk 28 -ra akkor frissítsen és csak 28 cellát színezzen egy sorban. Ezt én sajnos hiányos tudásom miatt feltételes formázással nem tudom elképzelni. De ha részletesebben leírnád mire gondoltál azt megköszönném.
A kérdésem az lenne hogyan tudok olyat csinálni, hogy pl. adott egy érték legyen 5, és ez alapján pontosan 5 db cellát színezzen be egy sorban, és dinamikusan változzon, tehát ha az 5 7-re változik akkor 7 db cellát színezzen egy sorban. Régebben volt és találtam egy videót erről de már nem találom.
Javaslom akkor a Visual Studio Express letöltését a Microsoft-tól. Ingyenes és van belőle többféle kiadás: 2005, 2008, 2010, 2013, 2015, esetleg közte is valami. Valószínűleg a honlapon (https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx) már csak a legújabb verzió van fent (az sem sokáig, ahogy hallom), de szerintem torrent oldalakon még elérhető mindegyik. Van benne Visual Basic és Visual C# fejlesztői környezet, és elég sok mindent tartalmaz. Én a C#-t nem ismerem, de gondolom, az elég gyors, mint a C nyelvek általában. A Basic nem gyors, de nagyon kényelmes és nagyon sok internetes "irodalom" van hozzá.
Nem vagyok annyira bennfentes, mint mondjuk egy Micro$oft fejlesztő, de legjobb tudásom szerint a VBA fordító kettős működésű. Futtatás előtt csinál egy előfordítást, aztán futás közben sorról sorra újra értelmezi a kódot, csak már más szinten.
Ha a hatékonyság alatt végrehajtási sebességet értesz, akkor nagyon nem hatékony, mondhatni tetű lassú. Assemblyhez képest amúgy minden lassú, de ha az assemblyt ismered, akkor bizonyára tisztában vagy azzal is, hogy ő a leggyorsabb.
Állítólag vannak programok, amelyek képesek az Excel makrót exe programmá konvertálni, de én még ilyet nem láttam, és amúgy a hírek szerint elég bugos a konverzió. Az biztos, hogy az ilyesmi nem natív tulajdonsága az Excel-nek.
A fájl - nyomtatás oldalon beállítható a nyomtatandó oldal(ak) száma. Nem szabad kijelölnöd külön az adott oldalt, hanem az egész táblának kell nyomtatás alatt lennie - de ha azt mondod a beállításban, hogy 5. oldal, akkor csak azt fogja kinyomatni és a megfelelő oldalszámmal.
Az EXCEL-ban használatos Visual Basic futtatáskor régi interpreterként fut (azaz végrehajtáskor értelmezi az utasítást és hajtja végre), vagy indításkor "lefordul" és mint egy EXE program hajtódik végre?
Mennyire hatékony ez a kód (például C-vel vagy Assemblerrel hasonlítva)?
Ez utóbbi esetben ezt az EXE programot ki lehet-e nyerni? (Ha úgy írom meg, ne használjon táblázathoz kapcsolódó utasításokat)
Hogyan lehet egy több oldal hosszú táblázat egyes oldalait újranyomtatni úgy, hogy ne kezdje elölről az oldalszámozást? Jelenleg ha pl. a 7. oldalon változtatnom kell valamit, és újranyomtatom, nem 7. oldalt ír rá, hanem 1. oldalt.
Okosabb nem vagyok nálad... de az alábbi makró szerintem jó lehet:
Sub szamos(ByRef rng As Range) Dim cl As Range, vl As Double For Each cl In rng.Cells vl = Val(cl.Value) cl.NumberFormat = "General" cl.Value = vl Next End Sub
A meghívásnál meg kell adni a tartományt. Természetesen lehet úgy is, hogy a makrón belül adod meg a tartományt (de Te ezt nyilván kapcsiból megoldod).
A tizedespont helyettesítése a tizedesvesszővel azért nem szerencsés, mert a számformátumok nem a cella szöveges tartalmát látják.
Kipróbáltam. Rögzítettem egy makrót, ami minden cellában elvégezte a cserét, hibátlanul.
Ezt a makrót lefuttattam az újra amerikai formára átírt adatokon. Megdöbbenve tapasztaltam, hogy ahol 2-nél több volt a tizedesek száma, ott valóban csak elhagyta a pontot, nem cserélte.
Átírtam a makrót, hogy egyenként végezze el a cserét a kijelölt tartomány celláin egy ciklusban, ez sem használt.
A segítségeteket szeretném kérni az ügyben, hogy miként tudok makroval lecserélni egy amerikai formátumú számot (310.156) pontos vesszős verzióra (310,156)
Az alábbi makro rosszul fut le
ahelyett, hogy 310.156-ból 310,156 os verziót készítene a végeredmény ez lesz 310156
Nagyon köszi a részletes választ! Nem semmi meló lehetett azért ezt így összerakni... :-/ Élnék is a segítségeddel, de nekem e hét végéig le kell adnom az anyagot készen... :'-( :'-( Valószínűleg marad az a verzió egyelőre, hogy a maradék adatokat kézzel végigellenőrzöm, más megoldást hirtelen nem látok. Már sikerült 1000 sort legyűrnöm... már csak 4x ennyi van hátra :-O :-O :-O
Ne haragudj, nem bizalmatlanság, de céges adatbázisról van szó, és valószínűleg nem lennének felhőtlenül boldogok, ha elküldeném :) :) :) De azért köszi!
Én is valami ilyenben gondolkoztam, de ha egyszeri a feladat, sztem egyszerűbb nekiülni és végigkapálni az egészet. Most 2200 adattal csináltam ezt, ami szintén sok, bár persze közel sem 5000.
Közter. jellegek nekem valami NAV-os nyilvános forrásból vannak, budapesti utcanévjegyzék pedig kódorog a neten. Nem azt mondom, hogy a legfrissebb, de egyszerűbb azt a párat feloldani, amit nem talált meg, mint az összeset (aztán hogy a Kossuth., a Kossuth L. és a Kossuth Lajos stimmelni fog-e (Október 23-ról nem is beszélve) az külön kérdés. :) ).
A posta.hu oldalon is van fent talán irányítószámokhoz rendelt utcalista.
Szia, én dolgoztam már ilyen jellegű adatokkal. Van is egy-két makróm, ami sok dolgot megold ezek közül. Látom, az irányítószámot megoldottad. Ez könnyű. A településnév utáni vessző is sokat segít. Az én eddigi megoldásaim lényege a közterület nevének és jellegének szétválasztása. Erre is vannak algoritmusaim. A lényege az, hogy letöltöttem valamikor az Internetről az összes lehetséges közterület jelleget. Először ezeket kerestetem ki a programmal (mégpedig hosszúság szerint rendezve, hogy a körút megtalálása után az út már ne kerüljön a listába), meg persze az utca, az u. és az u (pont nélkül, de előtte-utána szóközzel) egyaránt az utcát jelentse , így sikerült a közterület jellegeket a szóközöktől függetlenül kikeresni. És ha megvolt a közterület jellege, akkor már adott volt, hogy a település és a közterület jellege közti szövegrész a közterület neve. A házszám és a többiek már nem igazán algoritmizálhatók (legalábbis nekem ez nem igazán sikerült), de ez kézzel is kisebb munka, mint a közterületek egyenkénti áttekintése. Persze még így is sok az elütésekből adódó hibalehetőség. Ezt nehéz kivédeni, de ha tudjuk, hogy ha pl. Budapestről van szó, és a kerületi önkormányzattól vannak kész utcalisták, az sokat segíthet, bár attól tartok, hogy nálad ilyen nem áll rendelkezésre. Ez még a házszámok megtalálásában is segíthet.
A lényeg, hogy tudnék segíteni egy olyan makróval, ami az első 4 adatot (Település; Közterület; Közterület jellege), meg esetleg a házszámot némi bizonytalansággal szétszedi. Egy apró gond van. Kell hozzá pár nap (1-2 hét) munka, én pedig hétfőn elutazom Balatonra 2 hétre, és ott nem szívesen foglalkoznék vele. Ha utána is jó még, akkor kérlek küldj egy emailt a címemre, és augusztus közepén megbeszéljük. Szívesen segítek.
Ha nincs semmilyen rendszer az adatokban, akkor sajnos sok munkába fog kerülni rendbeszedni az adatokat. Itt még a makró sem nagyon tud segíteni, hiszen nincs egyértelmű támpont a szétválasztáshoz.
Szerintem a szétválasztás után az utolsó oszloptól indulva az adott oszlopban levő nem üres cellák sorait megnézve talán nem lesz olyan nagy a munka.
Jogos... :-( Elnézést! 2010-ről van szó, és köszi a tippet!
Próbáltam én is ezzel a megoldással, de a több tagú utcaneveket (néha akár 3 is pl. Dr. miatt) így szétkapja, és akkor mindenképpen soronként kell végigböngészni :-/
Nem írtad az excel verziót. 2007-től van az adatok menücsoportban szövegből oszlopok. Itt megadhatod, milyen határolójel van az egyes adatok között. A példád alapján én a szóközt gondolom jó határolójelnek.
Ezután a szóvégi vesszőket keres-cserél funkcióval el tudod tüntetni. Az viszont gond lehet, hogy a Kossuth Lajos utca két oszlop helyett 3 oszlopba fog kerülni.
Van egy kb. 5100 soros, lakcímeket tartalmazó táblázatom. Pillanatnyilag úgy szerepelnek benne az adatok, hogy egyetlen cellában van a teljes cím. Pl. 2999 Tötömkefalva, Kukucs u. 1/B. Egy migráció miatt úgy kellene megbontanom az adatokat (mind külön cellában), hogy: Irányítószám; Település; Közterület; Közterület jellege; Házszám; Épület; Lépcsőház; Emelet; Ajtó.... Nyilván a címek, illetve az azokban található adatok mind különböznek.
A kérdésem az lenne, hogy van-e valamilyen módszer arra, hogy ezeket sok-sok órányi csinovnyik munka nélkül szét lehet-e szedni a fentiek szerint? Annyit meg tudtam tenni, hogy az irányítószám utáni fix szóköz, és a településnév utáni fix vessző miatt ezeket szépen ki tudtam emelni, de a többivel nem boldogulok.
Köszi, beírtam. Ki is írja, hogy kész, de az eredményt (az összegyűjtött adatokat ) nem látom így sem: üres maradt a munkafüzet,mintha most nyitottam volna meg.
Sok fájlról van szó, ezért a makró futásának az idejére letiltottam a képernyő frissítését, mert az lassítja a futást. A tálca frissítését nem tudom letiltani, azért villog. Minden füzet ikonja megjelenik rajta, mikor megnyílik.
A makró alsó sora (End Sub) fölé írd be: Msgbox "Kész" – akkor megjelenik az üzenet, hogy végzett.
A gyűjtő füzetben azért, hogy a folyamat nem látszott, megjelentek az adatok.
Ha sok cella van, akkor egy saját függvény használ csak:
Function BetuSzamolo(ByRef hol As Range, ByVal mit As String) As Integer Dim sor As Range, szoveg As String If hol.Columns.Count > 1 Then For Each sor In hol.Rows szoveg = szoveg & Join(Application.Transpose(Application.Transpose(sor.Value)), ";") Next Else For Each sor In hol.Cells szoveg = szoveg & sor.Value Next End If BetuSzamolo = Len(szoveg) - Len(Replace(szoveg, mit, "")) End Function
Ezt beírhatod a munkalap kódlapjára: lapfül - jobb egérgomb - kód megjelenítése - bemásolás.
A cellában a képlet = betuszamoló(tartomány, betű idézőjelben)
A második hozzászólásodban az ÉRTÉK hiba szerintem csak elírás miatt lehet.
Gondolom a D:import a valóságban így néz ki D:\import. A backslasht "megeszi" a blogmotor, ezért duplázva kell beírni.
Ezen kívül a csv formátumban csak az aktív munkalapot tudja menteni, de sajnos a számformátummal - tizedespont vs vessző - probléma lehet (a területi beállítás ellenére), át kell állítani a gépet programból, hogy jó legyen kiírva a csv-be.
Application.DecimalSeparator = "," átállítod a tizedesvesszőt
Application.UseSystemSeparators = False ezzel kikapcsolod a rendszer beállításokat. lemented a fájlt
Application.UseSystemSeparators = True visszakapcsolod a rendszer beállításokat.
(Ezek egyébként a 2010-es excelben a speciális beállításoknál találhatóak mint a rendszerbeállítások szerint jelölőnégyzet és alatta a tizedesjel és ezreselválasztó kockája).
A másik lehetőség, makróból kiírni direktben a fájlba. Ha az előző mesterkedés nem sikerül, akkor írd meg és segítek benne.
Sziasztok! Hogyan tudom összeszámolni, hogy egy adott betű hányszor szerepel egy táblázatban? Van egy táblázatom a reggeli/ebéd/vacsora rendelésekről, ami úgy néz ki, hogy egy embernek mindig egy cellában van a rendelése. Tehát vagy R,E,V vagy E,V vagy pl. R, V stb. van egy cellában. Na most ebből nekem össze kellene adnom, hogy akkor itt összesen melyik étkezésből hány van. Milyen képlet kell ehhez?
van nekem egy táblázatom ami igazából szabászlistát gyűjt össze, hossz, szélesség, darab, anyag, és éltulajdonságok. Nekem ezt a listát le kell mentenem pontosvesszővel tagolt csv-be, mert ezt olvassa a táblafelosztó program.
manuálisan csináltam eddig; kijelölöm az másolandókat, másolok, új munkafüzet megnyit, értékkel beilleszt, mentés másként, csv, biztos benne? aha, kész. És amikor a csv-t megnyitom tök jó minden érték a megfelelő cellában van, a tizedes értékek vesszővel tagoltak(cellán belül). A szabászprogram fogadja is.
Elég sokat gyártok egy nap és gondoltam ezt a műveletsort automatizálom egy makróval.
Össze is lapátoltam egy makrót ami jó is, mert szépen lefut meg külön extrázik is mert megrendelésszámot kell, hogy fájlnévként mentsen meg egyéb finomságok.
viszont amikor ez a szerencsétlen makró lefut elmenti az adott számmal, és megszületik a csv, és én azt megnyitom, akkor már sorokban elhelyezkedő értékeket; hossz, szél darab, mennyiség, anyag és éltulajdonságokat amiknek külön cellákban kéne lenniök, soron belül egy cellába teszi és pontosvesszővel választja el. A program amibe illeszteném nem értelmezi és csak pislog velem együtt hogy mi ez.
egy érdekesség amit észrevettem amikor szűkítem a makróparancsokat; ha elkészíttetem a fájlt a makróval, és az meg is jelenik az adott helyen,de nem menti el és nem zárja be, ám én még rámentek manuálisan és ; biztos menti? aha! akkor jó. De a cél az, ne kattintgassak annyit ha ezt helyettem egy makró megcsinálja, mert naggyon sokat haladnék egy nap.
segítene valaki?
valahol a piros szedetnél lehet a hiba( én jelöltem meg.)
Valamit biztosan elronthattam, mert amikor elindítom a makrot, akkor a tálcán lévő excel ikon elkezd vibrálni, (tehát megnyitogatja a fileokat), de nem jelenik meg semmilyen tartalom.
Mit ronthattam el?
Az útvonalat beírtam ahogy mondtad, egy könyvtárban vannak a forrás fileok....
Keresnék egy olyan excel függvényt (vagy függvényeket), amikkel a következő problémát tudnám megoldani.
Egy táblázatban szerepelnek egy torna mérkőzései, szeretném meghatározni, hogy az egyes csapatoknak hány győzelme veresége ill. döntetlenje van. A csapat előfordulhat hazai és vendég oldalon is.
De a lényeg, hogy két feltételt kell kielégíteni. A csapat neve szerepel a hazai oldalon (A2:A22) és a hazai gól cella értéke > vendég gól cella értéke (E2>F2, ...E3>F3...), ha ez igaz, akkor 1 győzelem.
A DARABHATÖBB fv-t gondoltam jónak, de a F2:F22 tartomány soronkénti elemzését nem tudom megcsinálni. Mit kellene és hogyan használnom?
A makrót a gyűjtő füzetbe kell bemásolnod. Füzeben Alt+F11-re megnyílik a VB szerkesztő. Bal oldalon kiválasztod a füzetedet, Insert menü, Module. Jobb oldalon kapsz egy nagy fehér területet, oda másold be a makrót. A füzetet makróbarátként kell elmentened. NE abba a könyvtárba tedd, ahol a 150 másik fájl van!
Írd át az útvonalat arra, ahol a sok füzeted van. Ügyelj rá, hogy az útvonal végén is legyen \.
Sub Osszegzes() Dim WSIde As Worksheet, utvonal As String, FN As String, ide As Integer
Application.ScreenUpdating = False
Set WSIde = ActiveWorkbook.Sheets(1) utvonal = "C:\Temp\" 'EZT ÍRD ÁT A SAJÁT ÚTVONALADRA!
FN = Dir(utvonal & "*.xlsx")
Do While FN <> "" Workbooks.Open utvonal & FN On Error Resume Next ide = Application.Match(Sheets(1).Range("A2"), WSIde.Columns(1), 0) If IsError(ide) Then On Error GoTo 0 GoTo Tovabb End If
Az AB2 valóban egy darab cella, de ez az AB2 cellát kellene a többi excel fileből összeszedni, ezért írtam többes számban.
A fileok egy könyvtárban vannak.
A file egy napi forgalom összesítő file, ahol az 5.sorban lévő oszlopok tartalmazzák a termékek neveit.
Ezek napi fogyása van a B30 as sorban lévő cellákban összesítve.A példában a "mini" nevű termékből fogyott 1 db,. "normal"-ból 8, a "super"-ből ismét 1 darab.
Az AB2 egyesített cella a napi dátumot mutatja.
A baj, hogy ezeket naponta küldik, mindig egy fileban, ezért van már kb 120-140 file
Ezekből a naponta küldött fileokból szeretném a napi dátum szerinti fogyást termékenként kigyűjteni valahogy így:
Ugyanakkor a B4, C4 és D4 cellákban egységárakat látok, amelyek a B30, C30 és D30 cellákban lévő darabszámokkal összeszorozva megtalálhatók a B31, C31 és D31 cellákban. Ezekkel semmi teendő nincs, csak a B30-as cellával?
Inkább pontosítani kellene cellánként megadva, hogy mit kell összegezni (nem összeszedni, ez a fogalom enyhén pontatlan az Excelben), és az összegek hova kerüljenek az összesítő táblázatban. És esetleg van-e más feladat is?
Teljes elérési útvonal van megadva (\hely...) de ha már szerkeszteni akarom, akkor ..-el kezdődik, ha kiteszem pl. egy külső meghajtóra, akkor meg a meghajtó betűjelével helyettesíti be, ha fölé állok, és megnézem.
Tömegesen dolgozok Excelben olyan rekordokkal, amelyek egy-egy mezője hivatkozásokat tartalmaz adott helyen lévő fájlokra.
Ezeket UNC-pathként adom meg, ennek ellenére, ha az adott Excel fájl helyét (nem a hivatkozott fájlét) megváltoztatom, nem működik a hivatkozás, amit nem értek, hogy miért. Ebben kérnék segítséget.
Kavarod a fogalmakat. Az AB2 1 db cella, az AB oszlop második sorában. Az összevonás az A2:B2 cellában van. A B30 szintén 1 db cella, nem 1 sor.
Amit gondolok: van a gyűjtő fájlod, ahol összevontad az A2:B2 cellákat. Van a 150 db egylapos fájlod. Fontos, hogy ez utóbbiak azonos mappában vannak-e.
A gyűjtő füzetben be akarod írnia C2 cellába a másik 150 fájl B30 cellájában szereplő adatot.
Kérdés: nyissa meg az elsőt a 150 közül, írja be az értéket a gyűjtő C2-be, zárja az elsőt, majd nyissa a következőt, adja hozzá a gyűjtő C2-hez a második füzet B30 értékét, vagy írja a gyűjtő füzet következő, D2 cellájába?
A "gyűjteni" alatt azt értem, hogy a meglévő fileok(nem változnak bennük az adatok) adott celláiban szereplő adatokat szedje össze egy másik fileba.
A konkrét igény:
Az AB2 egyesített cellák (Fecha=dátum felirat) mellé gyűjtse össze az ugyanabban a fileban a B30 as sorban lévő értékeket minden megadott, egy sheettel rendelkező excel fileból egy másik különálló fileba.
Ezzel egy sorban lesznek az adott dátumhoz tartozó eladások ( amiket majd összesíteni lehet oszloponként.)
Makróval meg lehet csinálni, de ennyi input nem elég hozzá. Kellene a táblázat felépítésével kapcsolatban minden releváns adat, mint pl.:
- egy munkalaposak-e a táblázatok, vagy több
- ha több munkalapos, akkor mindegyik kell-e
- ha nem kell mindegyik, akkor mi alapján határozható meg, hogy melyik kell és melyik nem
- az egyes munkalapokon konkrétan hol van a fejléc
Az is érdekes infó, hogy mit értesz pontosan a "gyűjteni" szó alatt. Mert ez lehet összesítés, lehet másolás, lehet hivatkozás, ami frissül, ha az eredeti fájlt frissítik.
Szóval gondold át algoritmus szemmel, aztán adj valami pontosabb képet. Esetleg mintafájl feltöltés is szóba jöhet, lást topik fejléc. Aztán majd valaki biztos tud ilyen makrót írni.
Segítségre lenne szükségem a következő probléma megoldásában:
Adott egy rakat excel file (kb 120) amiben egy egységes formulában vannak feltüntetve a mozgások. A keret, a táblázat fejléce és a képletek is állandóak(ugyanazt az alap filet használják) csak a havi mozgások váltózóak, ezeket töltik ki az adminisztrátorok, tehát a 120 filenak az A1-es cellájába mindig ugyanaz van, pl az adott termék napi fogyása
Hogy lehet ezeket az adott dátumhoz tartozó fogyásokat egy külön file-ba gyűjteni a 120 különálló excel fileból?
Ezt hívják a Microsoftnál fejlődésnek. Amikor már semmi értelmes nem jut eszükbe, mert mindent tud a program, és két élet se elég megtanulni a használatát, akkor elkezdik lebontani a meglévő funkciókat, hogy legyen valami mozgás a piac törvényei szerint. :-)
Üdv, belefutottam egy nem várt gondba. Adott két, majdnem azonos kinézetű munkalap, az egyiken a raktáron lévő termékek nyilvántartását, a másikban ugyanolyan elrendezéssel a termékek eladási számait tárolom. (Ergo igyekszem a kétdimenziós celláknak egy új dimenziót adni, ahol az eladási számláló van.)
Hogy az eladások regisztrálásakor mindkettőt könnyen elérjem, párhuzamosan jelenítem meg a két munkalapot.
Amikor csak egy munkalapon szerkesztek, például új termékek felvitelekor vagy létező termékek darabszámának növelésekor, akkor a 2 soros fejlécet és az első oszlopot rögzítem, különben összekeverednék.
Ha ezt mindkét megjelenített munkalapon megteszem, akkor sajnos a párhuzamos görgetés megbolondul. A bal oldali, első panel görgetésekor előbb lép kettőt, mire a második panelon is elkezd görgetni, mintha a párhuzamosság csak akkor működne, amikor a mozgatható rész is túllép a fejlécen. Az eredmény, hogy hacsak nem görgetem az oldalt a legtetejére, akkor elcsúszik a két lista, és semmit sem érek az egész párhuzamossággal, mert nem párhuzamos, és biztosan tévesztek. Nem találok megoldást...
Excel 2007-et használok XP-n, nem tudom, az újakban is jelen van-e ez a probléma, vagy hogy egyáltalán probléma-e, nem csak én szúrok el valamit. Tudnátok ajánlani valami megoldást?
Fájl menü -> Beállítások -> Speciális fülön a "Megjelenítés" résznél "Az összes ablak megjelenítése a tálcán" pipa törlése.
Ha így sem megy és eddig más fájlkezelő programon keresztül nyitottad meg az Excel fájlokat, akkor azoknál kell keresni valamit, vagy pedig normál módon az Excel menüből kell megnyitni a táblákat.
'Betöltjük a képet a lapra ActiveSheet.Pictures.Insert(Range("A1")).Select
'Felvesszük 2 változóba a szélességér és magasságát sz = Selection.Width: m = Selection.Height
Selection.Delete 'Töröljük a képet
'Betöltjük a képet a TextBox1-be With Worksheets("Munka1").Shapes("TextBox1") .Fill.UserPicture Range("A1") 'Megadjuk a Textbox1 két méretét .Width = sz: .Height = m End With End Sub
A tömbképletek úgy működnek, mint a programozásban a ciklusok: ugyanaz a művelet többször hajtódik végre. Van egy kvázi "ciklusváltozó", amely meghatározza a lépések számát, továbbá paraméterként szerepelhet a műveletekben.
A SZÖVEG(A1;"ééééhhnnóópp") egymás mellé rakja a dátum + időpont számjegyeit, szöveggé konvertálva.
A KÖZÉP függvény kivesz ebből a karaktersorozatból 1-1 elemet, az ÉRTÉK átalakítja számokká, a SZUM összeadja őket.
A tömbképlet "lelke" a SOR($1:$12), ami a kvázi ciklusváltozót jelenti. A SOR függvény alapesetben visszaadja az argumentumként beírt cellatartomány sorának számát. Jelen esetben, mivel most tömbképletben használjuk, 1-től 12-ig az egész számokat adja vissza. Ezek a számok a KÖZÉP függvény 2. paramétereként azt teszik lehetővé, hogy az "ééééhhnnóópp" szöveg mindegyik karakterére sor kerüljön, mindegyik ki legyen emelve a szövegből, számmá konvertálva, és a végén összeadva.
Közben arra jöttem rá, hogy felesleges a sima dátum miatt 8-ra visszavenni sorok számát. Hiszen ha pusztán dátum van, az nulla óra nulla percet jelent időpontos ábrázolásban, tehát a dátum számjegyeinek összegéhez már csak nullákat adunk hozzá, ha 12 sor van, vagyis a végeredmény nem változik.
Nagyon köszönöm, most már müködik! Jövök neked egy valamivel. Igen, én is kérnék egy kis magyarázatot, miért és hogyan müködik ebben a képlethalmazban? Hátha még én is megértem. Az zavart meg (egyebek mellett), hogy nemcsak egy cellában, hanem a teljes oszlopban vannak adatok, de amikor lehoztam, akkor a második cellától már 2-eseket irt ki. Ezért arra tippeltem, hogy az 1-8 sorban van az eb elhantolva, de nem ott volt.
Ha a szerkesztőlécen írod a képletet, nem kell külön F2. Az F2 a cellában való szerkesztéshez kell.
Jimmy: a SOR() függvényben az oszlop betűjelének a kiírása zavarja meg a júzert. Elég a SOR($1:$8). Ugye milyen okos vagyok, mikor összehoztad a képletet?
Az egyébként szenzációs megoldást magam is szerettem volna kipróbálni. Emlékszem, hogy már találkoztam a tömbfüggvény technikával, így különösen érdekelt. És nekem az F2 lenyomása nélkül nem adta ki az eredményt. Nem tudom, miért. De az után kiadta. Persze, hogy csak egy sorban. És persze a 12 kijelölt (üres) soron az eredmény kiszámolása után el is tüntette a kijelölést.
Jimmy bocs, de nekem úgy tűnik, hogy egy apró momentum kimaradt: A CTRL+SHIFT+ENTER-rel történő lezárás előtt nálam kell egy F2 nyomás, ami kijelöli a 12 (vagy a 8) sort. És csak aztán jön a CTRL+SHIFT+ENTER.
Szeretném megoldani azt a problémát (excel 2007), hogy egy szövegdoboz tartalmát (kitöltése kép fájl-al) egy cellában tárolt elérési útvonal segítségével töltse ki.
A válaszokat, segítségeteket előre is nagyon köszönöm.
azér', mer' a mail box pont hu régen egy felületkezelt gmail volt, aztán májusben megszűnt a gmail támogatás, és most nemtom mi van helyette. Azt mondták, minden ugyanúgy fog működni, mint az átállás előtt. De akkor nem.
Arra nincs lehetőséged, hogy a keresés eredményét egy munkalap tartományba beletedd -fejlécet hozzátéve- és azt a tartományt add meg a listbox forrásaként?
Ez így nem fog menni. Nem lenne baj, ha az érintett idejönne, és mondana pár szót arról, hogy milyen jellegű adatokat visz fel, milyen módon, esetleg milyen környezetben. Megnézte-e, hogy nincs-e makróvírus stb.
Ez egy kicsit kevés információ. Akár egyetlen üres sor bekerülése sem indokolt, ha nem ez a szándékod. Ha kézzel viszed fel az adatokat, akkor nyilván nem történhet ilyen a tudtod nélkül. Ha program (makró) tölti ki az adatokat, akkor tudni kellene valamit arról. Hátha ott lett elszúrva valami.
Van valakinek tippje arra, hogy miért kerülnek be egyes xlsx fájlokba üres sorok, de több 10ezer? Már több ilyennel találkoztam. Ilyenkor a fájl mérete több megabájt, van, hogy 100 fölött. Néha törölni sem lehet őket, mert a köv. hibaüzenetet dobja. "Az excel nem képes az igénybe vehető erőforrásokkal a feladat végrehajtására. válasszon kevesebb adatot, vagy zárja be a többi alkalmazást."
A RowSource tartomány beállításával tudod szabályozni. Ha például 3 oszlopot akarsz listázni, és az első sorban vannak a fejléc szövegek, akkor ListBox1.RowSource = "A2:C..." beállítás az első sort tekinti fejlécnek. Ha "A3:..." a beállítás, akkor a 2. sort.
Most jött szembe először komolyabban a ListBox (komolyabban: itt: többoszlopos formában).
Szeretnék neki oszlopfejlécet csinálni (ListBox1.ColumnHeads = True), de nem jöttem rá, hogyan tudok stringet oszlopfejlécnek megadni (cellából nem jó). Gondolom valami ListBox1.Valami = ("1. oszlop", "2. oszlop", ... ) stb. alakban kéne megadnom (7 oszlop van, ha ez számít).
diagramos kérdésem lenne. Van egy nagy táblázatom, amiben van 6 600 adat 22 nyitvatartási naphoz. Egy hónap különböző adatai. Megcsináltam hozzá 90 diagramot. Minden hónapban változik a nyitvatartási napok száma. hogyan tudom megadni, hogy mi legyen az adattartomány. Most be van állítva egy fix, de minden hónapban más nyitvatartási szám van, így nem szeretném minden hónapban átállítani. Makró? Vagy más megoldás?
A táblában nincs kereshető fix érték, illetve az "A" oszlopban egyszer van, de nincs ott minden diatartományának elején.
Vicces vagy, privát emailt kérsz, miközben az email címed nem publikus:-)
Szerinte nyugodtan tedd fel itt a kérdéseket. Legalább a témakört vesd fel itt! Hátha nagyobb eséllyel kapsz segítséget. Aztán, ha a probléma ismeretében szükségesnek látszik, és valóban terhelné a fórumot, akkor majd lehet folytatni privátban.
Valaki esetleg tudna nekem privát e-mil-ben segíteni excellel kapcsolatban? Mivel nagy tábláról van szó és több ponról így lassú lenne, illetve nem szeretném a fórumot terhelni. ELőre is köszönöm! Evelin
Van 2 exel munkafüzet, a munka füzetek A oszlopa számokat tartalmaz. A 2. Munkafüzet b oszlopa egy megnevezést,azt szeretném ha az 1 munkafüzet
A. oszlopának száma(értéke) megegyezik a 2. Munkafüzet A. értével akkor adja meg 1 munkafüzet B oszlopába az a megnevezést ,amit a 2 munkafüzet b oszlopában lévő számhoz tartozik.. Milyen függvényt kell használnom.
Nincs szükség felismerni, hogy melyikben van és melyikben nincs, ha egyszer a HELYETTE függvény specifikusan lecseréli a "/2015" karaktereket a semmire.
Köszönöm a gyors választ! Nem azzal a résszel van problémám, hogy leszedjem a végéről, hanem, azzal hogy a ha függvény nem ismeri fel, hogy melyikben van /2015 és melyikben nincs
=IF(B2="*/2015";LEFT(B2;7);"") --> ez as képletem a B2 az a cella amiben a számlaszám van
Valaki tudna nekem segteni abban, hogy milyen függénnyel lehet megoldani azt, hogy a /2015 végű számlaszámokról lejöjjjön a /2015, ahol pedig nincs ott maradjon az eredeti számlaszám: (én ha, bal függgvény egybeágyazással próbálkoztam, nem valami nem jó benne). Köszönöm a válaszokat!
Én Kovalcsik Géza: Az Excel'97 programozása című könyvből tanultam meg az alapokat. A könyv példáit az Excel 2003 verziója alatt próbáltam ki, és azok működőképesek voltak. Azt hiszem, hogy az újabb Excel verziókkal sem lenne gond, mert zömmel azokat az alapokat tanítja, amik nem változtak ezekben sem. A könyv számomra nagyon világos, érthető, könnyen tanulható volt. (Persze a jelen fórumon feltett kérdéseimre kapott válaszok rengeteget segítettek a továbblépésben)
Sziasztok! Programoztam is már, Excelben elég gyakorlott vagyok, de most záros időn belül meg kellene barátkoznom az Excel programozásával. Milyen webes, esetleg nyomtatott anyagot ajánlanátok ehhez? Általában kitartó vagyok, de most szorít az idő :-(
A makró a füzet végére beszúr egy új lapot. Az első lap címsorát átmásolja erre.
Az első lap H1 cellájából veszi, hogy mire szűrje a lapok A oszlopát. Az A oszlopot a Field:=1 határozza meg. B oszlop esetén Field:=2-t kell írnod (2 helyen). A MireSzur értéket közvetlenül is beírhatod a makróba:
MireSzur="répa" , a mostani MireSzur = Sheets(1).Range("H1") helyett.
A szűrt sorokat átmásolja a beszúrt új lapra, majd az utolsó lapra áll.
Sub UjLapra() Dim lap As Integer, MireSzur, usor As Long
Sheets.Add After:=Sheets(Sheets.Count) 'Új lap a füzet végére Sheets(1).Rows(1).Copy Sheets(Sheets.Count).Range("A1") 'Címsor az új lapra MireSzur = Sheets(1).Range("H1") 'Szűrési érték megadása
For lap = 1 To Sheets.Count - 1 Sheets(lap).Select Range("A1").CurrentRegion.Select Selection.AutoFilter Field:=1, Criteria1:=MireSzur usor = Sheets(Sheets.Count).Range("A" & Rows.Count).End(xlUp).Row + 1 Selection.Offset(1).Copy Sheets(Sheets.Count).Range("A" & usor) Selection.AutoFilter Field:=1 Next
Egy neveket több munkalapon tartalmazó teljes munkafüzetre szeretnék szűrést végezni, aminek az eredményét egy új munkalapon kéne megjeleníteni. (Tehát van pl. az adott munkafüzetben 10 lap, szeretném ha kigyűjtené róluk pl. a Nagy vezetékneveket egy új munkalapra.)
mert azt tudom hogy az érvényesítésnél mondjuk ha csak "K"-t akarom hogy elfogadja az így néz ki =O16<>K akkor megáll.... de ha azt akarom, hogy a "K" mellé vegye fel a CS és az A betűt akkor hogyan fűzzem hozzá. egyszer megcsináltam de az kb vagy 10 éve volt... :/
az a baj, hogy nem tudom hogyan soroltassam fel vele aza hogyan írjam meg a képletet, mert egy-re tudom korlátozni de többre nem sikerült, nem tudom a képletet, de max. marad a lista....
itt pedig koncentráljunk a E, H, B, J oszlopokra és ebből van kettő. Mint látható az E és H oszlopok szürkék a B és J oszlopok pedig fehérek. a szürkék az egyik halmaz a fehérek a másik halmaz. és nincsenek hatással egymásra.
remélem meg tudom egyszerűen fogalmazni.... nos mindegyik rublikába csak "x" betűt írhatok. Viszont ha mondjuk az egyik "E" oszlopba rakok egy "x"-et akkor a mellette lévő sorban található "E" oszlopba már ne tehessek.
Valamint és itt a csavar :P maximum csak két darab "x" -et rakhatok be egy sorban a szürkékhez. tehát megikszelthetek 1db "E"-t vagy 1db "H"-t vagy "E" és "H"-t mert így 1 vagy két helyet foglalok de már harmaikat vagy negyediket nem rakhatok.
Az adatok -> érvényesítés -> lista a te barátod. Ilyen keveset talán ott helyben is fel tudsz sorolni a párbeszédablakban, ha jól emlékszem, de ha nem, akkor írd be egy eldugott helyre, és vedd fel azt a tartományt.
"...megdöbbenve tapasztaltam, hogy itt sem folyamatos a sorszám. Vajh' miért "törlődtek" ki egyes szakmai hsz-ek?"
Azért a modik mentségére jelentem, hogy van, amikor méltányolható a törlés. Például az itteni #27308-as hozzászólás hiánya az én bűnöm. A szokásos figyelmetlenségem okán előbb írtam, és csak aztán vettem észre, hogy más már megválaszolta azt, amire én megkésve reagáltam. Gyorsan kértem a Techmodit a felesleges bejegyzés törlésére, ami pár percen belül meg is történt.
segítséget kérnék abban, hogy ha egy cellába azt szeretném hogy csak 3 betűt lehessen beírni (K vagy CS vagy A) akkor az érvényesítésnél hogyan fogalmazzam meg a képletet, hogy a program tudja mit akarok?
Viszont ez az a hely, ahol még rengeteg más topicban is mozgok, és rendszeresen ránézek. Még néhány új rendszeresen látogatandó oldal nem fér bele az életembe.
Ez persze csak tényközlés, mert ha a moderációról beszélgetésbe kezdesz egy nem moderációs topikban, pláne ha véleményt is mondasz, az statáriális főbűn, akár 15 év konstruktív, hibamentes fórumozás után is azonnal elmeszelhetnek érte.
A fórummotor javítására hiábavaló minden bejegyzés.
Mikor ez az idétlen időkijelzés született, hónapokig sokan ágáltunk ellene, hiába. A rendszertelen gazda meg sem jelenik, ha pedig mégis, közli, hogy ez így modern, és ők mindent megtesznek a mi érdekünkben, hogy komfortosan érezzük magunkat. A neki nem tetsző (nem trágár) hozzászólásokat egyszerűen kitörli.
Most, hogy egy ilyen régi hsz-t kerestem ki, megdöbbenve tapasztaltam, hogy itt sem folyamatos a sorszám. Vajh' miért "törlődtek" ki egyes szakmai hsz-ek?
Ott az esetleges hibákat, a jobbításra tett javaslatokat azonnal javítják. Kívánságra minden új hsz-ről e-mail értesítést kapunk, könnyű a keresés, a privát levelezés jól követhető (itt nem találok ilyent, bár ez lehet az én hibám).
Beállítasz 500-at a hozzászólásoknál (jobb felső sarokban találod a nyilat) és ezután ötszázasával vissza tudsz menni a hozzászólásokban. Én legalább is így szoktam, ha régebbi írást keresek.
Én sem gondolom, hogy a hozzászólás sorszáma lenne a fő vezérfonal ahhoz, hogy egy (ezt a sorszámot ismerő) segítségre szoruló meg is találja a segítséget. Én csak azért lyukadtam ki erre a gondolatra, mert Delila azt írta, hogy nézzem meg a 8600-as hozzászólását, és én meg is próbáltam ezt a keresővel (majd pedig a részletes keresővel) megtalálni, amikor világossá vált számomra, hogy ez közvetlenül nem megy, hanem csak több lépésben és nem eléggé felhasználóbarát módon.
Egyébként mindenkitől elnézést kérek, ez a jobbítási gondolat valóban nem ide való, itt nem is nyitottam volna ezt meg, ide pusztán a kapott segítség igénybevételi szándékának a technikai részletei vezettek. Innentől részemről Off.
Az érdemi megjegyzésem az, hogy az elmúlt években, amióta a fórumon vagyok, elvétve emlékszem olyan esetre, ahol egy fórum hozzászólás sorszámát tudtam, és ennek a segítségével szerettem volna azt közvetlenül elérni. (Feltételezem, hogy másoknál sem ehet túl gyakori az ilyen igény.) Részemről mindenesetre igencsak megfelelő az a Delila által is javasolt megoldás, amit magam is alkalmazok, ilyen esetben. Azzal is általában 10-15 lépésen belül sikerül megtalálni a keresett hozzászólást.
Ettől függetlenül kívánom, hogy legyen sikered, hiszen, ha javítják a fórummotort, az mindig hasznos.
Köszönöm a válaszodat, ami megerősített abban a véleményemben, hogy fejleszteni kellene a fórummotoron.
Nekem - és talán más fórumozónak is(?) - eléggé érthetetlen, hogy létre lett hozva egy fórum felület azzal a céllal, hogy a tapasztaltabbak felhasználóbarát módon tudják segíteni a tapasztalatlanabbakat, de ezt a segítséget ők mégsem tudják egy egyszerű, a korábbi hozzászólásra hivatkozással (ahogyan Delila is próbálta) megadni, hanem inkább újra és újra le kell ugyanazt írni, mert hogy a korábbi hozzászólás sorszámára történő hivatkozásra nem lehet a keresővel keresni, enélkül meg igencsak macerás azt megtalálni.
Én szívesen segítenék a technikai háttér ilyen irányú továbbfejlesztésében, ha értenék ehhez, de nem értek. Így marad az, hogy "Kedves adminisztrátor. Nem tudnátok ezen a gondon segíteni?"
Segítséget szeretnék kérni. Excel munkalapon elhelyezett képhez szeretnék a cellákhoz hasonlóan megjegyzést fűzni, de nem találom a megoldást. Arra volna szükségem, hogy egy képre, ha ráhúzom az egeret, akkor jelenjen meg egy megjegyzés.
A prohardver fórumon a képek és dátumok is normálisan jelennek meg. Érdemes megnézni a régi hsz-ek közötti sávos válogatás lehetőségét is (balra fent és balra lent).
Sajnos nincs a hsz-oknak értelmes linkjük, így elég nehéz megtalálni egy ilyet. Én a baloldali keresőbe beírtam, hogy "delila" és kiválasztottam, hogy "nickek között". Az eredményhalmazban klikk "Delila_1", utána "Excel", utána sajnos lapozni kellett az 5. oldalra. Ha egy hsz linkje nem így nézne ki, hogy:
…hanem mondjuk úgy, hogy "blablabla/viewArticle?t=9009340&p=12345" (t=topic, p=post), akkor csak a p= után odaírnánk, hogy 8600 és meg is lennénk. De nem így van. Vagy lehetne valahol egy legördülő (ugrás ide: hsz szám vagy dátum), meg egy textbox ( pl. 8600 vagy 2009-01-22), az is segítene. De nincs.
A belső preferencia analízist nem ismerem. A Tomcsányi féle páros preferencia analízist igen. Arra egykor programot is írtam. Ha érdekes, akkor küldj emailt. (Az enyém publikus) Ne terheljük vele ezt a fórumot.
Sziasztok. Szükségem lenne segítségre! Joghurtok érzékszervi tulajdonságait vizsgálom, és egy belső preferencia analízis segítségével a statisztikai eredményeket ki kellene értékeljem. Sajnos nem tudom használni egyáltalán, Nagyon jó lenne ha valaki tudna nekem segíteni!
Kösz a válaszod. ("Rákattintasz a hivatkozott (8600) -ra.")
Sajnos a talált hozzászólásodban lévő szövegben lévő 8600-as hozzászólásod emlegetése nem egy link, így aztán kattintgathatok rá ezerrel, az nem visz sehova.
Igazából én egy módszert gondoltam megtanulni valakitől a profi keresésre, mert azt gondoltam, hogy az általad leírt próbálkozásos módszernél a fórum motor kínál profibb módszert is. ("Mégis hamar előbújt. A hozzászólások tetején jobbra 500 db/lapot állítottam be, ezzel a 38. oldalon megtaláltam az előzményt.")
De ha te - régi fórumozó - nem tudsz profibb megoldást, akkor biztosan nincs is (sajnos).
Még valami: a grafikon körül ott vannak az kis átméretező kockák, de le vannak tiltva. Rájuk állva kétirányú nyílra vált a kurzor, de nem működnek. Ezt fel lehet oldani valahogy?
Ja igen, a Delila_1 is én voltam, csak közben változott az email címem, és a régi nickkel nem engedett be a csodás fórummotor, a címet pedig nem lehetett módosítani. :)
'estét! Kéne készítenem egy riportot, táblázatokkal meg grafikonokkal, amit pdf-be exportálva kapnak majd meg a felhasználók. Sose fogják kinyomtatni, csak monitoron nézegetni, ezért fekvő 16:9-es (szélesvásznú monitor) formátumban kellene dolgoznom. Hogy lehet beállítani ezt a méretet? A Lapelrendezés -> Méret pontban csak előre gyártott méreteket enged, amik elég messze vannak a 16:9-től. Ha a 'További papírméretek'-re kattintok, akkor megnézhetem ugyanazokat még egyszer. Gondoltam, hogy hátha a nyomtató szoftverében beállíthatom és onnan átveszi az Office, de nem lehet a nyomtatóm szoftverében egyéni méretet beállítani (szuper-fapad HP tintatusgaras).
Office PP 2013 Win 8.1-en.
megj.: Most komolyan: magyar Windows alatti magyar Office-ban 'japán boríték', 'Matahari' meg 'Ofakiu Harakiri' papírméretek? :-))
Nem szeretnék nagyon pofátlan lenni, de lenne még egy kérdésem ezzel a feladattal kapcsolatban.
Az A oszlopbeli adatok között találhatók kategóriacímek, amelyeket nem kell formázni. Mindegyik kategóriacím előtt egy üres cella van. Azt hogy lehetne belevenni a feltételes formázás képletébe, hogy ezeket figyelje és ne formázza?
Sziasztok! Szeretném a segítségeteket kérni feltételes formázásban. (Excel 2010) Van egy táblázatom, melynek A oszlopában több ezer szöveges adat van, melyek közül némelyik többször is előfordul. Egy olyan szabályt szeretnék megadni, amelynek eredményeként az A oszlop celláira vonatkozóan felülről lefelé haladva, minden adat első előfordulása pl. piros betűszínnel jelenik meg.
Ilyen esetre a megoldás az Irányított (újabb Excelekben Speciális) szűrő használata. Az Autoszűrő csak ÉS művelettel képes összekapcsolni két oszlopot, ezzel VAGY-ot is, de egyébként tetszőleges bonyolultságú logikai feltételt meg tudsz adni. A legfontosabb ismeret a Szűrőtartomány használat. A Youtube-on több példát találsz, ha irányított szűrésre rákeresel pl. https://www.youtube.com/watch?v=lk8q-RPvKWM
Egy olyan problémával fordulnék hozzátok, hogy egyik napról a másikra valami miatt nem működnek a táblázatban levő linkek. Ha rájuk kattintok, ez a hibaüzenet jön: Cannot dowload the information you requested.
A folytonos copy paste eléggé megnehezíti a munkámat, míg régebben csak egy gombnyomás volt. Erre van valami megoldás? Köszönöm.
Elég "kacifántos" a dolog, akkor működik, ha a munkalap maga le van védve. Adott tartományok szerkesztéséhez rendelhetsz jelszót, amit csak annak adsz meg, akinek engedélyezed a szerkesztést.
A felhasználó hozzárendelést az engedélyeknél teheted meg, ott a Windows felhasználók közül kell kiválasztani a szerkesztőket - a beírt neveket ellenőrizheted, hogy tényleges felhasználók legyenek - ebben az esetben ők jelszó nélkül is szerkeszthetik az adott tartományt.
A korlátozás csak bekapcsolt lapvédelemnél működik.
Újabb kérdésem lenne. Van két oszlopom. Egyik név, másik testmagasság.
Szeretném megtudni, hogy a Sanyi nevű emberek közül - nincs rendezve az oszlop és dinamikusan változik - mennyi a legmagasabb Sanyi értéke?
A MAX és a HA függvény kombója kell, gondolom én, de nem jövök rá a mikéntre.
MÁS: Tudnátok ajánlani haladó szintű online excel tanfolyamot, ahol a táblázatok kombinálását is oktatják(és a programozást is)? A közeljövőben komolyan akarok foglalkozni az Excel programmal.
Excel A oszlopa töménytelen mennyiségű nevet tartalmaz (Vezetéknév Keresztnév) Van e olyan függvény, ami pl a Géza, József, István nevek esetén a B oszlopba beír egy választott számot?
Előre is köszönöm, ha valakinek van mentő ötlete! ;)
Van egy szűrési problémám és nem jövök rá, hogyan kellene megoldani a dolgot Excelben. Van két oszlop, az egyikben random keresztnevek, a másikban a hozzájuk tartozó testmagasságok.
A táblázat állandóan változik törlődnek nevek és kerülnek a helyükre újak, a testmagasságokkal együtt.
Azt szeretném megoldani, hogy egy harmadik mezőbe írva a program keresse meg az összes XYZ keresztnevű embert az egész oszlopban és a nevük mellett levő oszlopban levő testmagasságokat adja össze, majd a végeredményt írja ki nekem. Pl.: Adja össze az összes Péter testmagasságát és írja ki az eredményt nekem.
Köszönöm az utánajárást! Ezúttal már kinyomtattam a dokumentumot, de lesz még ilyenre szükségem máskor is. Az első út nem járható, a második viszont annak tűnik. Gondolom, további escape-elésekkel 8ami további guglizást jelent) valahogy normálisan is megoldható lenne, hiszen ha egy literális szöveget sehogy nem lehet beírni, az nagy szegénységi bizonyítvány a programozóra nézve.
Valóban, mentés és újranyitás után, amennyiben a H közvetlenül az & után van (nincs szóköz közte), akkor "átváltozik" Á-vá.
Viszont, ha megnézed a Pagesetup megfelelő footer/header értékét, akkor a K&&H értéket fogja kiírni. Szóval ezek szerint ez egy szép kis bugnak tűnik.
Ha már van egy szóköz ott, akkor viszont normálisan látszik. Azt gondolom, az &H valamilyen vezérlő karakternek felel meg. Gugliztam egy kicsit, lehet, hogy ez a probléma gyökere:
&color Prints the characters in the specified color. User supplies a hexidecimal color value. A H -t valószínűleg hexa karakternek érzékeli...
Áthidaló megoldás, ha szóközt teszel közé (K && H). Másik lehetőség, a munkalapot elnevezed K&H -nak és a láblécben a &A kód a lapnevet adja be, azt már jól mentés után is. (Ez persze nem feltétlenül járható mindig...)
Ettől függetlenül a türelem nem ártalmas - elég sokszor tűnik úgy, hogy a számítógépnek/programnak is van lelke, amit ápolni kell (néha szidással...). Persze az esetek 110%-ban kiderül, hogy a gép csak azt csinálta amit valaki (jelen esetben egy "redmondi") megadott neki. A türelem ahhoz kell, hogy ezt kinyomozd és megállapítsd, hogy ki a hunyó...
Türelmesnek egy gyerekkel kell lenni, ha valamilyen hatást el akarsz érni, nem egy számítógépprogrammal, aminek az a dolga, hogy kövesse az utasításaidat. Nehogy már lelkivilága legyen! De egyébként legalább 4-5 próbálkozás után írtam ezt, többször visszajavítottam, elmentettem, újból megnéztem.
2.Nem tudom, neked miért nem sikerült "megetetni" vele a K&H szöveget. Nálam a magyar excel 2010 megeszi a dupla & mellett, úgy is, ha van szóköz és úgyis, ha nincs közötte szóköz.
Lehet, hogy nem voltál elég türelmes?
3. Ha külön sessionban nyitod meg másik excel fájlt, sajnos valóban így viselkedik, csak akkor tudsz irányított beillesztést, ha egy excel applikációban van megnyitva a két excel fájl (a két-vagy több - ablak látszik a ribbon menüben). Bár emlékeim szerint máskor is sikerült már, de azért arra nem vennék mérget és több száz cellára pláne nem.
Excel 2010-ben élőlábat kellett szerkesztenem (ez már önmagában óriási gyötrelem annak, aki korábbi verziókhoz szokott, mert jelentős visszalépést sikerült elérni kényelemben).
1. akadály: az ördögnek se vesz be az ampersandet. Próbálkozik a dolgozó mindenféle escape-eléssel, aztán guglizik, kijön a megoldás, hogy kettő kell belőle, hurrá. Akadály leküzdve.
2. akadály: Most, hogy sikerült megoldani a kérdést, bepötyögném a láblécbe a "K&H" karakterláncot. Nem reklám, ezeknek a karaktereknek kellett volna ott lenni, természetesen a dupla & jellel. A nyomtatási képen folyton K&Á lesz belőle többszöri visszajavítás, sőt javítás-mentés után is. Mindig ott romlik el. Végül beírtam valami mást, mint aminek ott kéne igazából lennie. Akadály elbukva. Érti ezt valaki?
3. akadály: az egyik Excel-táblázatból a másikba nem lehet irányított beillesztéssel áttenni pár száz cellát, mindenáron objektumként akarja beilleszteni, többszöri próbálkozás után. Az emlékeimből előjön, hogy igen, ezzel a sárkánnyal már találkoztam és levágtam a fejét, ez akkor van, amikor két külön folyamatként vagy Excel-példányként érzékeli az Excel a táblázatokat, és a partnerben nem ismeri fel saját magát. Már sokszor mondtam, hogy a Microsoft gyártja azokat a programokat, amik önmagukkal sem kompatibilisek, de ez az egésznek a nonplusultrája. Megoldás: a céltáblázatot bezárni, majd a forrástáblázat file menüjéből újra megnyitni, és így már megy. Akadály leküzdve, de ki érti ezt?
HELP! CELLÁK AUTOMATIKUS KITÖLTÉSE MEGFELELŐ ADATOKKAL
Sziasztok!
Segítségeteket szeretném kérni egy probléma megoldásához.
Termék nyilvántartó táblázatot kéne csinálnom, de elakadtam a következő pontnál.
A termékek nevéhez automatikusan kéne hozzárendelni a kategória neveket.
Az elképzelés az, hogy egy oszlop tartalmazza a termékek nevét és a másik oszlopba automatikusan írja be a kategória nevét.
"Tanítható" táblázatra gondoltam:
Ha jön egy új termék, akkor természetesen manuálisan írom be hozzá a kategóriát, viszont ha újra jön (pl. más beszállítótól), akkor már magától kéne, hogy mellé kerüljön a kategória neve.
Valahogy úgy kéne megoldani, hogy a táblázat szélén befognék két oszlopot, egyikbe bevezetném a termékek nevét, a másikba pedig a hozzájuk rendelt kategória nevet. A lényeg az lenne, hogy ez alapján, ha a táblázatba bekerül egy termék, ami egyszer már szerepel a listában, akkor automatikusan dobja hozzá a két oszlopban lévő adatok szerint a kategória nevet.
Példa:
Az A1 mezőben szerepel a termék neve: ZanussiZRT18100WA
A B1 mezőbe be kéne írnia magától: Hűtőszekrény
Ezt az alapján kéne kitöltenie, ami a fent említett két oszlopról írtam, amennyiben abban szerepel ez a párosítás.
Ha nincs, akkor tegyen mellé valamit (pl. X), ebből látom, hogy még nincs ilyen párosítás, ebben az esetben beírom kézzel és hozzáteszem a listához.
Ez így lehet bonyolultnak tűnik, de remélem van aki tud segíteni.
Az érvényességet megadhatod az A és C oszlopra: =$A$2:$A$500;$C$2:$C$500 – az 500 helyett a saját sorszámodat írd. Ebben az esetben ezt a két oszlopot formázza.
Arra már rájöttem, hogy ezt a feltételes formázást képlettel kell megcsinálni, csak a képletre nem jövök rá, ami nem csoda, középiskola óta nem foglalkoztam Excel-el. :D
ne haragudj az újabb zavarásért, feleségemnek próbálok segíteni... egy állásinterjú második köréhez kell excel, de nem nagyon boldogulok vele. :D Próbálom önállóan megoldani, mert úgy lehet tanulni, de ezen azóta ülök, mióta válaszoltam, hogy köszönöm! :D
Meg kellene mondani egy képlettel, hogy összesen mennyi panasz érkezett a volvo-tól. Képlettel kell! Tehát kell valami, ami kiszűri az A oszlopból a volvokat, majd összepárosítja a H oszloppal és végeredményül megadja, hogy összesen mennyi YES érték szerepel.
Sub torol() Dim pict As Shape For Each sh In ActiveSheet.Shapes If sh.Type = msoPicture Then On Error Resume Next If Not sh.Hyperlink Is Nothing Then sh.Hyperlink.Delete
Elkezdtem végre foglalkozni VBA-val és rájöttem hogy eddig hülye voltam hogy miért nem használtam :D
A következőkben tudnátok segíteni, hogy ezt a két scriptet hogyan lehetne egybe gyúrni? Azaz hogy tudok a dátumnak változót adni amire tudok hivatkozni hogy hova másolja. Mert ugye a dátum mindig változik?
Sub datumosmf()
Dim SheetName As String
SheetName = Format(Date, "dd-mm-yyyy") 'a fomrátumot lehet változtanti
End Sub
Sub achiválás() Dim i, lastrow Dim mytext As String lastrow = Sheets("projects").Range("A" & Rows.Count).End(xlUp).Row For i = 2 To lastrow mytext = Sheets("projects").Cells(i, "C").Text If InStr(mytext, "archiválva") Then Sheets("projects").Cells(i, "A").EntireRow.Copy Destination:=Sheets("delivered").Range("A" & Rows.Count).End(xlUp).Offset(1) 'Sheets("projects").Cells(i, "A").EntireRow.Delete End If Next i
A 2 azt adja meg, hogy a hivatkozott tartomány 2. oszlopában lévő érték legyen az eredmény, a 0 (ami helyett írhatsz HAMIS-at is) pedig azt, hogy pontos eredményt vársz, nem közelítő értéket.
Volna egy kérdésem, hátha valaki megszán, és megmondja a tutit.
Win7-esem van.
Az excelben azt szeretném megoldani, hogy ha beírok valamilyen számot, akkor a mellette lévő cellában egy általam megadott név jelenjen meg és lehetőleg egy meghatározott színnel.
Korábban dolgoztam ilyen megoldással a munkahelyemen, de sehogy sem jövök rá, hogyan volt beírva. Arra emlékszem, hogy sok-sok zárójelet tartalmazott.
Köszönöm előre is!
(Bele-bele olvastam az előzményekbe, de mind nem olvastam el...)
Egy egyszerűnek tűnő problémába beletört a bicskám.
A következőt kellene megoldanom annak függvényében hogy 0 érték melyik cellában van. A képletet egy cellán belül kellene megvalósítanom segédcellák nélkül
A1 B1 C1
0 0 Legyen az érték 0 0 valami Legyen az érték 1 valami valami 15/7,5
valami 0 20/9,7
"Valami" az nagyobb mint 0
Az "és" "vagy"-al operáltam de teljes mértékben soha nem értem el a célt.
Biztos, hogy van Sheet1 nevű munkalapod. Azért kérdezem, mert nálam 2010-es excelben műxik a dolog.
Mi lenne, ha kilépnél az excelből és egy "frissen nyitott" példánnyal próbálnád meg. Lehet, hogy összezavartad már a memóriáját a sok próbálkozással...
Köszönöm az ötleteket! Sajnos mindkét megoldásnál megkapom ugyanazt a hibát, mégpedig a másolási parancssornál. Ha kiveszem a sheet átnevezését, hagyom Sheet1-nek, akkor is ugyanebbe ütközöm, ugyanott.
Ha lépésenként futtatod, akkor melyik sornál jön be a hibaüzenet? (Fejlesztőeszközök - makrók - makrókiválasztás - lépésenként, utána F8 egy sorral továbbviszi a programot.)
Van egy olyan érzésem, hogy a sheet1 átnevezése okozhatja a problémát:
Az elején ez van: Worksheets("Sheet1").Visible = True
Majd a másolás után Sheets("Sheet1").Select és a formázás után pedig ActiveSheet.Name = "TB_List" és ezt másolod át egy új munkafüzetbe.
A régiben pedig ottmarad a munkalap, mostmár TB_List néven.
Természetes, hogy innentől hiába szeretnél ismét Sheet1-re hivatkozni, mert az már nincs.
Nem biztos, hogy ez a gond, de mi lenne, ha az átnevezést csak a Sheet1 új munkafüzetbe másolása után - az új munkafüzetben tennéd meg, azaz a Sheet1 -et másolod át és ott nevezed át TB_List-re.
A főnökök többnyire megértik idővel, hogy amit mondasz, az jó nekik. Amelyik teljesen fejlődésképtelen, annak úgysem érdemes dolgozni. :-)
Például amikor majd módosítani kell valamit ezen a táblázaton, mondd azt, hogy Excelben két perc alatt megcsinálnád, de újból áttenni Wordbe és normálisan elrendezni plusz egy óra munkaidő, ami miatt egy másik feladatot halasztani kell.
Van egy spreadsheetem, amely egyik lapjának két oszlopa multicolumn lisboxban kerül a képernyőre. Két command button van alatta, az egyik PDF-be exportálja a listboxban megjelenő adatokat a sheetről, a másik külön Excelbe. Az Excelbe való exportálás nem közvetlenül működik, hanem előbb egy másik sheetre másolódik a két oszlop az eredeti helyről, majd maga ez a sheet másolódik ki külön fájlba. És ennél a lépésnél, a másolásnál valami gubanc van.
A gondom a következő.
Ha csak az egyik exportálást használom, minden megy, mint a karikacsapás. Ha viszont előbb PDF-be, majd utána egyből az Excelbe való exportálásra kattintok, mindenféle misztikus hibaüzenettel szembesülök. Ami azért érdekes számomra, mert vagy az egyik, vagy a másik működik. A kettő együtt nem. Illetve úgy igen, ha az exportálás befejezése után automatikusan bezárom a listbox ablakát, és arra kényszerítem a felhasználót, hogy újból jelenítse meg a listboxot, ha mindkét exportálást végre szeretné hajtani. Szeretném visszont kiküszöbölni ezt a felesleges lépést.
Nagyon örülnék, ha valaki valami tanáccsal tudna szolgálni.
Adott egy 6000 soros táblázat. Ezt szeretném áttenni wordbe. A problémám az hogy az első 7sort ismétlődő sorként állítottam be hogy minden oldalon ez legyen az első 7sor. Namost ha kijelölöm a 6000sort és átmásolom vagy csatolom a word dokumentumhoz akkor csak az első oldalon jelenik meg a 7 sor a többin nem. Hogy tudom átmásolni? Valahogy az excelben a nyomtatási képet nem lehet "kimásolni"?? Mert ugye a nyomatási képben látszódik minden oldalon a 7sor az excelben. Köszi!
Fferitől már tudod, hogy 160-as kódú karakter van a számjegyeid között.
Jelöld ki a tisztítandó oszlopot, a Csere funkciónál lépj a Keresett szöveg rovatába. A bal Alt gombot nyomva tartva a számbillentyűzeten írj be 0160-at, engedd fel az Alt-ot. Ezt cseréld semmire az összesnél.
"Csak" annyi történt, hogy nem rendes szóköz van a cellákban, hanem annak 128-cal megnövelt kódú változata, azaz nem 32 a kódja, hanem 160. Ezt a tiszít függvény úgy tűnik, nem habzsolja fel.
Javaslom ezt a képletet: = helyette(B3;karakter(160);"")
ha még így is van problémád, akkor nyilván maradhatott "normál" szóköz is, amit elvileg a tisztít felismer, vagy dupla helyette függvényt használsz: =helyette(helyette(B3;" ";"");karakter(160);"")
Adott egy oszlop adatokkal (példában 9 jegyű azonosítószámokkal), a kapott adatok feleslegesen tartalmaznak szóközöket a számok elején és/vagy végén. Akár többet is.
Excelben elvileg a KIMETSZ (TRIM) függvény képes ezt tisztítani. Egy egyszerű próbánál, kézzel beírt adatokkal rendesen működik is, azonban az elvégzendő állományon nem teszi a dolgát. A szóközzel tűzdelt számok vegyesen vannak számként, általánosként, illetve szövegként formázva. Próbáltam ÉRTÉK függvény használatával formázni, de az a szóközök miatt megint csak nem lehetséges. Viszont manuálisan változtatva a cellaformázásokat arra jutottam, hogy nem ez okozhatja a KIMETSZ függvény problémáját.
Csatolok egy lista töredéket, amelyen látszik, hogy nem szedi ki valamiért a szóközöket. Többszáz/ezer darabnál kellene megoldani, így fontos lenne. A probléma, hogy a szóközök miatt nem tudom összekerestetni a cellaértékeket FKERES-sel.
Tudnátok ötletet adni, hogy mi a probléma oka, mi lehet a megoldás?
Csatolni nem tudtam, így itt egy link hozzá: (előre is köszönöm a segítséget)
Éppen ma kellett egy csomó file-ból törölnöm egyforma részeket. Rájöttem, még program sem kell hozzá. Megnyitottam egyet Notepad++-ban, makrórögzítéssel megcsináltam, hogy csere-mentés-bezárás, ehhez hozzárendeltem egy könnyen elérhető billentyűkombinációt, aztán Total Commanderben kijelöltem az állományokat (nem mind a 42-t egyszerre, hátha sok lenne neki, hanem 3 részletben), jobb gomb, megnyitás Notepad++-ban, és ott annyiszor megnyomtam a makróhoz rendelt kombinációt, ahány meg volt nyitva. Szerintem annak kell tudnia regexet is. Nekem pillanatnyilag ez volt a leggyorsabb, de 100 file felett már lehet, hogy írnék programot.
A csv-t nem excelben csinálom. Ott csak megszerkesztem a táblázatot, amit a netes konvertálók csinálnak, aztán copy az egész OpenOfficeba és ott mentem a csv-t. Ennek az az oka, hogy vannak szerkesztési funkciók, amik OOfficeban nincsenek. De ha tudsz esetleg valami egyszerűbb megoldást, szívesen veszek minden ötletet.
Sziasztok! Tud valaki segíteni, hogy mitől romolhat el az Excelnek csak a mentés másként parancsa, akárhányszor a mentés máskéntre kattintok lefagy az egész és onnnatól vége van!! Köszönöm
Nem olvastam végig az egész témát, de ha csak az a feladat, hogy XML-ből CSV legyen, ahhoz nem kell Excel, sőt az Excelt használnám utoljára. Előtte pedig bármilyen programnyelvet, amit képes reguláris kifejezéseket kezelni, ez ma már eléggé alap. Úgy értem, töredéke a munkamennyiség, mint regexek nélkül.
Szinte minden hozzászólásban van valamennyi igazság.
Hogy könnyebben érthető legyen, leírom amit eddig kihagytam.
Xml árlistákat kell csv-be alakítanom. Eddig nem nehéz a feladat, mert rengeteg ingyenes online konvertáló létezik. A gondom az, hogy az xml fájlból némi "szemét" benne marad a csv-ben.
Nem kell az egész cella tartalmát törölni, csak azokat, amik a "<>" karakterek között vannak. (A példában a "Hasznos adatok" nincs ezen karakterek között.)
Nagyon jó lenne a .html-es save as megoldás, de sajnos akkor elveszti a táblázat formáját, már én is gondoltam rá. Akkor megint copyzhatok napokig 1400 termék esetében.
A megoldáshoz Eredő Vektor függvénykombija áll a legközelebb, az a példával tényleg tökéletesen működik, viszont semmi mással nem. :(
Gondolom ennek az az oka, hogy a "<>" jelek közötti dolgok össze-vissza vannak, itt egy másik példa, ezzel sem működik már:
Van egy mező,(amibe összeg lesz) és felette 2 kockával egy legördülő-ből választható név mező. A következőt szeretném: Ha beírok egy összeget az adott mezőbe (J7) és mondjuk felette 2-vel (J5) Pisti név van akkor másolja az összeget egy adott mezőbe (F79) és adja hozzá ha már van ott bármilyen összeg. Persze ha Misi név van ott akkor egy másik másik helyre másolja és adja hozzá a már ott lévő összeghez. Max 5 névről van szó Remélem értelmesen tettem fel a kérdést, de ha nem akkor korrigálom, ha valaki tudna segíteni.. Köszi előre is
Adott napon aktuális dátumot a ma() függvénnyel tudod elővarázsolni. Innentől kezdve különbséget vonsz a mai dátumból és a lejárat dátumából a C oszlopban úgy, hogy a mai dátumot rögzíted $ jellel. Arra figyelj, hogy a C oszlop cellaformázása általános vagy számformátum legyen. Ezután még csinálsz a C oszlopra feltételes formázást --> az a cella ami 30 vagy annál kisebb számot tartalmaz legyen kitöltve pirossal.
Az egyik oszlopban nevek vannak, a másik oszlopban a nevekhez rendelt személyi igazolványok lejártának dátuma.
Hogy tudnám azt elérni, hogy mindennap bekapcsolva a gépet kijelzi (pirosítsa, aláhúzza stb), ha a személyi igazolvány lejártáig 30 nap vagy annál kevesebb idő van?
A segítségeteket szeretném kérni. Lehet nagyon primitív a kérdés, de nem vagyok egy excel zseni.
A probléma: Van 160 xls táblázatom (szerintem xml-ből csinálták). Van néhány egyszerű dolog amiket meg kéne ezekkel csinálnom, a nagy része már kész, de elakadtam.
Feladat:
Vannak olyan cellák, amikben az adatok "|" karakterrel vannak elválasztva. Egy cella tartalma így néz ki:
Adat1 | Adat2 | Adat3
A munka az lenne, hogy az adatokat egymás melletti külön cellákba pakoljam a "|" karakterek mentén. Valahogy így:
Ahogy én gondolom: Az 500 egyedi cikkszámot kimásolnám egy új oszlopba (akár azon a munkalapon is - pl. átmásolod az összeset és utána adatok - ismétlődések eltávolítása, vagy ehelyett irányított/speciális szűrés egyedi tételeket).
Tételezzük fel, hogy A oszlop a 20000 tételes cikkszám, B oszlop ugyanitt a mennyiség, C oszlop ugyanitt az egységár. A D oszlopba tennék egy szorzatot: =B2*C2
Az 500 egyedi cikkszám pedig a F oszlopban van, legyenek az értékek a második sortól lefelé mindenütt.
súlyozott átlag képlet meg van - és működne is, ha 1 cikkszámra kellene, viszont nekem a 20.000 soros Excel táblában van 500 cikkszám, amelyekre egyenként kellene a súlyozott átlagár... (ha cikkszámonként rendezem és 500 alkalommal kijelölném a tartományt és arra alkalmazom a képletet, valószínű működne is, de talán van kevésbé időigényes megoldás is :) ) Köszönöm előre is!
Azt észrevettétek már Excel 2010-ben, hogy ha egy függőlegesen összevont cellát formátummásolással másolom tovább az alatta lévőkre, akkor az így másolt cellák esetén - a cellaösszevonás mellett is - megtartja minden sor értékét? Ezt a szűrők alkalmazásából lehet észrevenni.
Kipróbálási lehetőség:
1. A1 = "Szám" B1 = "Betű"
2. A2= 1; A3= 1;
3. A3= 2; A4= 2; A5= 2
4. B2 = 'a' B3 = 'b' B4='a' B5= 'b'
5. Cellaegyesítéssel az A2 és A3-t összevonom - erre feljön az üzenet, erre OK.
6. Az összevont A2&A3 cellát formátummásoljuk az A4-A5-re.
7. Szűrőt felteszünk az első sorra
8. A oszlopot leszűrjük a 2-esre. -> akkor helyesen A oszlopban a A4-A5-ös cella 2-essel, B oszlopban pedig a B4= a és B5= b
9. Az A oszlopot ezután leszűröm 1-esre, akkor a B oszlopban csak a B2-es cellát hozza fel eredményül, pedig még a B3-nak is meg kellene jelennie. A B3-as cellát csak úgy lehet megjeleníteni a fenti műveletek során, ha az A oszlopot nem 1-esre, nem 2-esre, hanem (Üres)-re szűrjük.
Nem tudom, hogy az újabb Excelek esetén is előfordul-e ez a hiba.
Kis segítséget szeretnék kérni súlyozott átlag számításhoz! - Van egy 20.000 soros lekérdezésem tele cikkszámokkal. A cikkszámokhoz tartozik egy egységár és eladott mennyiség.
Szükségem lenne egy olyan képletre vagy makróra ami cikkszámonként rendezve a darabszámmal súlyozott egység átlagárakat adja ki! (A PIVOT csupán átlagár számítására képes ami számomra nem megfelelő mert van olyan cikk amit 0 ft/egység 1DB mennyiségben és pl 10ft/egységáron (100DB) átlagban 5ft/DB átlagáron hoz ki pedig nyilván súlyozott átlagként 10 körüli értéknek kellene szerepelnie.)
gondolom itt ha / szumha vagy fkeres függvények segítségével lehetne egy összetett képlettel megoldani a problémát.
Az adott cella interior.colorindexe vagy interior.color értéke (a kettő természetesen nem ugyanaz).
Pl. beszínezel egy cellát, ráállsz és megnézed a VBA nézet immediate panelján : ?activecell.interior.colorindex (enter)
A VBA immediate panelján a ? (print parancs rövidítése) használatával hasznos információkat tudhatsz meg.
A colorindexnél nem mindegy, hogy melyik szinskála van "használatban", mivel több (elég sok ...) is van belőle. Ezért egyértelműbb a color lekérdezése.
Van néhány konstans is, vbwhite,vbblack,vbyellow,vbgreen pl.
A color értéket megadhatod az RGB függvénnyel (pl. RGG(255,0,0)) az piros szín lesz.
Azt szeretném megkérdezni, hogy ha egy cellát valamilyen színnel "befestünk"- háttérszín. Akkor azt a színkódot hol tudom "leolvasni" hogy a makróban tudjam használni a interior.colorindex tulajdonságban.
Cégnél lenne rá szükségem. A raktárból a dolgozók által kivitt szerszámokat kéne jegyezni. Van egy szerszám kivétel dátuma oszlop, egy visszahozatal dátuma oszlop, szerszám neve, darabszáma, dolgozó neve, és pluszba még egy olyan oszlop hogy "Visszahozta-e?". A ötletem a munka megkönnyítése miatt az volt, hogyha bármit beírok a szerszám oszlopba akkor mellé autómatán beírja a kivétel dátuma oszlopba a rendszer dátumát. És dettó hogyha a "Visszahozta" oszlopba igent írok, akkor a visszahozatal dátumát is autómatán beírja.
Különben köszönöm a választ. De ehhez makrót hogy kéne keresnem? Ha csak annyit írok hogy fix rendszerdátum beírás, vagy nem frissített rendszerdátum beírás, ezekre semmi érdemlegeset nem találok. Sajna makró íráshoz viszont nem értek.
Hát erre vagy makrót írsz, vagy fogod, ami megjelent, és érték szerint visszamásolod ugyanoda irányított beillesztéssel. Ha nem túl sok, akkor talán ez az egyszerűbb. Sajnos nincs ilyen beépített lehetőség, pedig hasznos volna.
Megoldható úgy is, hogy az eredeti csoportosító jelek megnyomásával működjön. Vagyis a már elkészített csoportosítások kinyithatók, becsukhatók, de új csoportosítás nem hozható létre és a meglévők sem változtathatók meg.
Excel-ben szeretném megcsinálni hogyha pl: AZ "A" oszlopba egyik cellájába beírok valami, akkor a mellette lévő cellábe beírja az aznapi dátumot. HA fügvénnyel sikerült megcsinálnom, autómatikusan beleírjon a másik cellába, a rendszeridőt is kitudom jeleztetni. A probléma csak az hogyha másnap megnyitom az excelt akkor megváltoztatja a dátumot. Viszont nekem úgy kéne hogy amit 05.11.-én beírok, akkor azt másnap már ne írja át 05.12-re.
Nem akartam eddig reagálni erre, de most megteszem:
Mivel én általában nem magamnak csinálok excel táblákat, hanem néha tök laikusoknak is, valószínűleg ezért "alakult ki bennem", hogy próbáljam minél átláthatóbban (ránézésre is követhetőbben) prezentálni a dolgokat. nyilván kihagyhattam volna az igaz-hamis opciót, de akkor három, számokból álló oszlop keletkezett volna, mely úgymond nem különül el egymástól. Így, hogy az utolsó oszlop nem szám, talán gyorsabban értelmezhetőbb a dolog.TUDOM, hogy az igaz-hamis nélkül is működött volna, és valakinek ez "felesleges túlbonyolítás" én ilyen módon is próbálok segíteni a usereknek.