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.
Egy kérdés: Hogyan lehet VBA kóddal kiolvasni az utoljára lenyomott billentyű kódját, és szükség esetén átcserélni másra? Például Enter helyett Cursor down.
Két kérdés, hátha fejből gyorsabban megy valakinek, mint nekem gugliból:
Ha max a sorok száma, akkor az A7:D(max+6) tartomány tartalmát hogy lehet a legegyszerűbben, leghatékonyabban törölni? For ciklussal egyenként nekem is menne.
Hogyan lehet a cells(x,y) formátumát forint, hármas tagolás, nulla tizedesre állítani?
Szívesen. Érdemes körülnézni a kitehető ikonok között. Sokat gyorsít a munkán, ha az olyan funkciókhoz rendelt ikonokat teszed ki, amiket gyakran használsz. Nem kell menüből, almenüből előcsalni.
No akkor legyen egy exceles megoldás is hozzájuk. Az eszement feltételek: A bank csak 1-2 milla közötti összegű hitelszerződéseket hajlandó kötni, 250eFt-os lépcsőkkel.
c8: szükséges hitel:
c10: tényleges hitel/250 000 =HA(MARADÉK(C8;250000)=0;INT(C8/250000);INT(C8/250000)+1)
Van egy táblázatom és abban egy érték (jelen példában: 5 032 237 Ft)
Van-e olyan függvény, ami kiszámolja beavatkozás nélkül, hogy ez az összeg a táblázatban megadott értékekből hogy áll össze (B1 cella: 1 000 000 Ft, C1 cella:1 250 000 Ft, D1 cella:1 500 000 Ft, E1 cella:1 750 000 Ft, F1 cella:2 000 000 Ft)
A példánkban ez így néz ki (2*2 000 000 Ft + 1 250 000 Ft).
Tudja-e valaki, hogy a 2003-as Excelben a helyi menüt (jobb egér menü) hogyan lehet testreszabni? Konkrétan az a gond, hogy eltűnt belőle minden, ami a hiperhivatkozásokra vonatkozik, és egy javítás ráküldésétől nem jött helyre. Mivel lehetne még próbálkozni?
(Bocs, ha már volt a kérdés, de a Keresés segítségével nem találtam meg!)
egy ötlet: lehet, hogy #HIV! hibaüzenet van az 1300 összeadandó cella között is. Célszerűbb azokat kijavítani, de ha nem akarod, akkor valami ilyesmi képlettel össze lehet adni a maradékot:
sziasztok, van egy oszlop 1300db árral, ezt szeretném összeadni, ha a legalsó cellába klikkelek és summázok, akkor a képernyőn látható tartományt jelöli ki, és összeadja, ha elkezdem felvinni a kijelölő négyzetet a sarkainál egészen az 1-es celláig, és úgy summázok, akkor megjelenik a HIV! jelzés, nem tudok rájönni miért? ötlet? kösz
Application.Dialogs(xlDialogSendMail).Show sor, ami megnyitja a levelezőt, csatolja az aktív füzetet, csak a címzettet kell beírni. Az meg nem túl összetett feladat a usereknek, hiszen a címjegyzékből egyszerű előkapni.
Amikor "kézből" dolgozom, akkor mintha kéne, hogy müködjön a saját gyártású függvényem, de amikor programot futtatok, akkor tényleg piszokul lelassítja a futást.
Ugyanaz a program, ugyanazzal az adattal 2-3 mp helyett 4-5 perc!
Esetleg próbáld ki ezt. Tüneti kezelés ugyan, de szerintem jó lesz.
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) Dim pf As PivotField For Each pf In Target.RowFields pf.DataRange.NumberFormat = "mmm-yy" Next End Sub
A másik kérdésem, hogy csinálnák egy pivot chartot ami dátumokat mutat.
A pivot label ilyen fomában mutat "01/02/2012".
Én így szeretném: "mmm-yy"
A pivoton belül, ha rálépek az opiciókta nem jelenik meg a "Number" ahol beállíthatnám, csak mint cella formátum tudom átírni. OK, átírom.
De az a nyomorék chart a régi verzóban mutatja...hiába "mmm-yy" már a pivotban, a grafikonon régi label van.
Ok. megpróbálom a charton beállítani a dolgot és hiába állítom át, nem úgy mutatja...ugye levileg ott is lehet axis label formátumot mutatni.
Komolyan kiborulok...
:-(
Ha kifüggvényezem hogy csak textkénet irja a nyers adatba így : text(a1,"mmm-yy")...akkor minden kalssz, viszont PIVOTBAN is nyílván textként rakra ABC sorrendben...
Valahonnan valamikor kimásoltam ezt a makrót, működik.
Sub DeleteOldItemsWB() Dim ws As Worksheet Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem
On Error Resume Next For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables pt.RefreshTable pt.ManualUpdate = True For Each pf In pt.VisibleFields If pf.Name <> "Data" Then For Each pi In pf.PivotItems If pi.RecordCount = 0 And Not pi.IsCalculated Then pi.Delete Next pi End If Next pf pt.ManualUpdate = False pt.RefreshTable Next pt Next ws End Sub
Áttettem a kódot a "module1"-be, kicsit változtattam a kódon
Function sajat_fuggveny(p_ertek As Integer) As String If 2 * Int(p_ertek / 2) = p_ertek Then sajat_fuggveny = "páros" Else sajat_fuggveny = "páratlan" End If End Function
Müködik!!!!!!!
Fasza!!!!!!!
Csereberélem A1 értékét, és automatikusan jön a megfelelő válasz!
Function sajat_fuggveny(p_ertek As Range) As String If 2 * Int(Range(p_ertek).Value / 2) = Range(p_ertek).Value Then sajat_fuggveny = "páros" Else sajat_fuggveny = "páratlan" End If End Function
, de még csak fel sem ismeri a nevét, #NÉV? üzenet gyün.
A saját függvény (UDF) automatikusan le kéne kövesse a bemeneti értékek változását. Ha nálad nem teszi akkor lehet, h. manuális számolásra van állítva a workbook-od.
Az UDF-eket simán lehet használni ugyanúgy mint a normál (beépített) függvényeket, szóval a feltételes formázás sem kellene probléma legyen. Ha nem műxik annak az lehet pld. az oka, hogy nem abban a workbook-ban próbálod használni a feltételes formázást mint amiben a UDF kódja van.
Szóval a jó hír az az, hogy mindkettő kérdésed lehetséges, a rossz az, hogy már most is működnie kellene mindenféle trükk nélkül.
A legalapvetőbb a szűrés. Az mondjuk, ami értelmes is. Aztán az AB. függvények, amelyek a magánvéleményem szerint nehezen használhatók és rugalmatlanok, akkor már inkább az adatbázis, bár persze néha szükség van rájuk. Teljes körben nem tudom felsorolni őket, mivel ennél többet nem használok.
Van egy listám, ahol oszlopon belül a cellák kettesével össze vannak vonva. Hogy tudok belőle sima listát csinálni, vagyis hogy az összevont cellákban lévő számok megszakítás nélkül egy-egy cellába kerüljenek? Próbáltam megszüntetni az összevonást, de akkor minden második sor üresen marad. Vagy arra tudtok valamilyen képletet, hogy ilyenkor a felesleges sorokat ne egyenként kelljen törölgetni? Több száz számból áll a lista, kissé bonyoldalmas lenne egyenként végigmenni rajta.
Ami az adatbázist a táblázattól megkülönbözteti. Ezt nem tudom röviden és közben pontosan leírni, a lényege, hogy csökkentjük a redundanciát (nincsenek felesleges ismétlődések), amihez a táblázatainkat több táblára bontjuk, illetve rendezzük a függőségeket. Az alap, amiről beszélünk, hogy egy adott mezőben csak azonos típusú adatok képzelhetőek el, ami egy Excel-táblázatra nem igaz, és nem lehet két teljesen azonos rekord (valamilyen azonosítóban mindig kükönböznek). Ezért zavar, amikor az Excel-táblázatokat egyesek laza szóhasználattal letáblázzák, mert a fenét táblák. Tábláról adatbázisban beszélünk. (Excelen belül vannak adatbázis-funkciók, és ezekhez létrehozhatók táblaszerű táblázatrészletek, de tábláról beszélni hiba).
Ha B11-től és C11-től végigmásolod jónéhány soron (50-1000) az alábbi 2 képletet, akkor az A11-től beírt eredmények azonnal megjelennek a C oszlopban, ahogyan szeretnéd.
Épp az lenne a lényeg, hogy ne kelljen minden forduló után új lekérdezést csinálni, hanem csak az eredményeket beírni és az excel automatikusan újraszámoltatni
Még egy szó: az Excel arra jó, hogy adatokat rendezetten tároljunk, számításokat és más műveleteket végezzünk velük, diagramokat rajzoljunk, színes-szagos szép formázásokat csináljunk.
A kulcsszó, a vészjelző a kapcsolat. Amikor az adatok közötti kapcsolatokon van a hangsúly, azonnal megszólalhat a kis sziréna a fejünkben, hogy ez adatbázis.
Ahogy sk írta, az excelben elég komplikált a kapcsolatok áttekintése. De én már csináltam valami hasonlót. Lehet, hogy neked is megfelel.
A oszlop: Lista a személyekről
CDEF..stb oszlopokba hogy A kit ismer
B: CDEF.. nevek összefűzve.
Ezek után a B-oszlop bármelyik névre szűrhető, kiadja hogy kikkel áll kapcsolatban. A szűrés *..* helyettestő jellel oldható meg. Például. ha Pista kapcsolataira vagy kiváncsi akkor *Pista*
A CDEF oszlopok csak technikai szempontból hasznosak, szerintem könnyebb velük a B-oszlopot összehozni, mint abba bepötyögni a kapcsolatokat.
A pivot a legegyszerübb megoldás. Csak az 'A' oszlopot kell hozzá vezetned. A kimutatás beállításakor a bal alsó négyzetbe behúzod az "eredmény" fejléc-cimkét majd a jobb alsóba is, ahol aztán darabfüggvényre állítod. Persze csak akkor, ha statisztikát is akarsz az előfordulási gyakoriságukról. És ezt mindig megismétled, amikor új adatokkal bővülsz.
És működik? Nálam azt írta ki, hogy nincs ilyen objektum. Hogy milyen, azt nem részletezte. Lehet, hogy nem is checkbox volt, hanem valamilyen más beágyazás. Valami választékot ajánlott fel.
Először is kicsit pontosabban kellene megfogalmazni, mit jelent a "több személy több szervezeten belül kit ismer". Másodszor pedig ez tipikusan adatbázis-kezelési feladat, Excelben csak akkor kezdj hozzá, ha mazochista vagy.
Excelben szeretnék egy olyan 'ismeretségi hálózatot' létrehozni, ahol egyszerűen kereshető, hogy több személy több szervezeten belül kit ismer. Sok esetben ugye a kereső fél nem ismeri konkrétan a keresendő személyt és nevét, mert akkor egyszerű Ctrl+F és happy end lenne.
Ezzel kapcsolatban tudtok nekem adni valami jó tippet? Hogyan tudom ezt úgy csokorba szedni, hogy utána megkönnyítsem a keresést és ne kelljen egyesével végigmászni a neveken?
Egy futball eredményeket tartalmazó excel táblából szeretném kiíratni az előforduló eredményeket egymás alá vagy mellé úgy, hogy minden előforduló eredmény pontosan egyszer szerepeljen.
Odáig még eljutottam, hogy DARABTELI függvénnyel megvizsgáltam, hogy az adott eredmény hanyadszor fordul elő, a B oszlop 1 értéke jelzi adott eredmény első előfordulását, így az A oszlopban szereplő eredmények közül annyi egyedi van, ahány 1-es érték található a B oszlopban. Ezzel csak az a probléma, hogy nekem nem elég az egyedi értékek száma, hanem ki is kellene íratnom valahogy egymás alá (lásd E oszlop) vagy mellé. Továbbá mivel hétről-hétre újabb eredmények kerülnek rögzítésre a táblázatba, a szűrt értékek köre is folyamatosan bővül, ami szintén problémát jelent. Ha esetleg új előfordulás jönne képbe, szeretném, ha automatikusan "hozzáadódna" az egyedi eredmények listájához. A probléma megoldásában szeretném segítségeteket kérni!
'=================================================================================== ' Megvizsgálja, hogy létezik-e a paraméterként megadott könyvtár, ha nem létrehozza '=================================================================================== Sub MakeDirektory(KonyvtarHelyeNeve As String)
If Len(Dir(KonyvtarHelyeNeve, vbDirectory)) = 0 Then MkDir KonyvtarHelyeNeve MsgBox "A megadott könyvtárat létrehoztam!", vbInformation, "Ellenőrzés" Else: MsgBox "A megadott könyvtár már létezik!", vbCritical, "Ellenőrzés" End If
End Sub
Pl. mappa3 létrehozása: MakeDirektory("C:\mappa1\mappa2\mappa3")
1.) For ... Each ciklussal menj végig minden objektumon és töröld
Delete only specific shapes
What if you only want to delete control toolbox controls, Pictures or forms controls. You can loop through the collection and check the Type of the control.
12 = ActiveX control (control toolbox) or a linked or embedded OLE object. 13 = Picture
Sub Shapes2()
'Loop through the Shapes collection and use the Type number of the control
Dim myshape As Shape
For Each myshape In ActiveSheet.Shapes
' ActiveX control (control toolbox) or a linked or embedded OLE object.
If myshape.Type = 12 Then myshape.Delete '
You can also use myshape.Visible = False
Next myshape
End Sub
2.) Próbálj meg egy jobb klikket rajta és Cut-olni (olvastam, h. nem lehet kijelölni, de hátha a jobb klikk műxik)
3.) Go To menüpont, Objektumok és amikor kijelölte az összeset akkor egy szimpla Delete.
4.) Az excel Home tab // Find& Select részében van egy olyan menüpont, hogy Select Objects. Utána delete
5.) Ha az excel Checkboxnak érzi (valószínűtlen, szerintem valami képként jött át, de a remény hal meg utoljára) akkor: ActiveSheet.CheckBoxes.Delete
Phpmyadminból, Firefoxból másoltam be sorokat a táblázatba (2007), és a takarítás után az egyik sor első cellájában ottmaradt egy checkbox, és az istennek se bírom kipaterolni. Cella törlése, sor törlése, tartalom törlése mind kipróbálva, kijelölni nem tudom, ha kitörlöm a sort, az alatta levőbe helyeződik át a rohadék, és még csak egy nem látható jelek gombom sincs, mint a Wordben. Mit tegyek? Egész elképesztő. Több másik egyébként szépen eltűnt.
Bocs, de miért az asztalra akarsz menteni? Ha egy-két fájlról lenne szó, akkor talán elfogadható a dolog, de ahhoz nem kell program. Tekintettel arra, hogy programot használsz hozzá, feltételezem, hogy fájlok sokaságát akarod menteni. Erre nem az asztal való!!! Ebből ugyanis előbb-utóbb áttekinthetetlen katyvasz lesz az asztalon, annak eredeti célja helyett, ami szerintem az, hogy a leggyakrabban használt programjaidat, esetleg fontosabb fájljaidat könnyen megtaláld.
Olyan nagy gond lene, hogy mondjuk a dokumentumok mappában (vagy a példádban a d: gyökerében) hozz létre az adott feladatnak megfelelő mappát, és oda pakolgasd a fájlokat?
Az ugye beállításoktól és Windows verziótól függ, hol van az asztal, alapesetben ennél bonyolultabb, pl. Win7 alatt c:\Documents and Settings\Default User\Desktop\.
Ahogy a te útvonalképzésedet elnézem, súlyosan hiányzik egy backslash az elérési út meg a filenév közül.
A célom az, hogy a felhasználó asztalára kerüljön mentésre a dokumentum. De ehelyet a felhasználó mappájába menti és a fájlnevet kezdi asztal-lal. Desktop-pal is próbálkoztam
Legtöbben Kovalcsik Gézától Az Excel (verziószám ide) programozása című könyvet ajánlják. Krizsák Lászlónak is jelent meg (régen) ilyen című könyve, az is nagyon jó.
A YouTube-on, Excel VBA-t beírva sok példát találsz, és Exceles fórumokon – pl. itt – sokat tanulhatsz. Akár a tökfőzelékről és a grízestésztáról, mint válóokokról.
Egyébként tudnál abban segíteni nekem, hogy ezt a makró programozást milyen szakirodalomból lehetne elsajátítani? Teljesen kezdő vagyok a témában, de van rá affinitásom, és érdekelne is a dolog.
Tudtok olyan xlsx viewer programról, amit lehet használni a TotalCommander betekintőként is?
A cégemnél korábban xls állományban kaptam fontos adatokat. Volt hozzá olyan viewer, hogy ha rááltam az állományra a TC egyik ablakában, akkor a másik oldalon már láttam is a tábla bal felső sarkát. Mióta áttértek az xlsx használatára, nem találok hasonló programot hozzá!
A másik ami nagyon rosszul érint, hogy eddig az xls állományok könyvtárában, szintén a TC-vel, egyszerű stringkeresővel meg tudtam keresni azokat az Excel állományokat, amiben szerepel bizonyos karakterlánc. Sajnos ez sem működik már az xlsx-nél! :-(
Köszönöm a segítséget, flottul ment minden. Kérhetném a segítségedet a dolog megfordításában is? Tehát sok lapból álló munkafüzetet laponként új fájlba menteni. Excel 2010.
Van egy készlet. Xlsx és egy készlet(ütközés). Xlsx ami eltér mentés időpontban és file méretben is.
És szeretném tudni mi az ami eltér a két file között
Nem írtad, az Excelnek melyik verzióját használod. 2003-hoz írtam a makrót.
A D meghajtó Innen nevű mappájában vannak a behívandó füzetek, ezt az utvonal="D:\Innen\" sorban írhatod át. A lapokat az Ide.xls fájlba gyűjti be. Ezt 2 helyen kell átírnod a makróban. Ha magasabb verziót használsz, az xls kiterjesztést is módosítanod kell. Mivel az Ide nevű fájlban lesz a makró, xlsm (makróbarát) lesz.
Sub Osszesites() Application.DisplayAlerts = False Application.ScreenUpdating = False
Dim utvonal As String, FN As String, Ulap As Integer utvonal = "D:Innen"
'Fájlok behívása ChDir utvonal FN = Dir(utvonal & "*.xls", vbNormal) Do If FN <> "." And FN <> ".." Then Ulap = Workbooks("Ide.xls").Worksheets.Count Workbooks.Open Filename:=utvonal & FN 'Másolás a megnyitott füzetbe Sheets(1).Copy After:=Workbooks("Ide.xls").Sheets(Ulap) ActiveWindow.ActivatePrevious 'Behívott fájl ActiveWindow.Close 'Zárás mentés nélkül End If FN = Dir() Loop Until FN = ""
Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Kész van!" End Sub
A következő problémával találkoztam. Lehet, hogy bugyuta kérdés, de nekem nagy segtség lenne. Van egy mappám, tele azonos formátumú (xlsx) excel táblázatokkal (50 db), és mindegyik excel tábla egyetlen munkalapot tartalmaz (a sorok száma eltérő). Arra szeretnék megoldást találni, hogy az 50 fájl munkalapjait egyetlen fájlba összerakjam, de mindegyiket külön lapra. (Tehát az 50X1 lapból, 1X50-et csinálni.) A Másolás vagy áthelyezés megoldást ismerem, de ez meglehetősen bonyolult.
Ha valaki tud segíteni valami egyszerűbbet találni, azt megköszönöm!
Elkövettem azt a hibát a makrós excelemben, hogy ugyanazt a nevet adtam meg egy public változónak és egy makrónak. Ettől az excel kiakad és nem hajlandó megnyitni ezt a munkafüzetet (ami számomra fontos programokat tartalmaz). Azt szeretném kérdezni, hogy hogy lehetne esetleg máshogy megnyitni ezt az excel-munkafüzetet (más programmal), vagy hogy lehetne valamilyen csatornán keresztül hozzáférni a makrókhoz (hogy ki tudjam a hibát javítani).
Egy közvetett kérdésem lenne az Excel hez.
Van egy 25-27 munkafüzetből álló excelem. Lassan kezdem elveszteni a fonalat hogy melyik munkafüzet melyikre van hatással.
Van valami ötletetek hogyan lehetne hatékonyan(nem paintbe :)) rajzolni/tervezni a kapcsolatukat ?
Pl A mf3!B5 kitörlöm az hatással lesz a mf8!G6ra...
A SZUMHA függvény egyáltalán nem igényli, hogy az összeadandókra tegyél feltételt, pont ez a jó benne. Egyszerűen használd a függvénybeszúró varázslót, minden argumentumhoz oda van írva, mire való.
Eddig én is eljutottam, csak nem tudom mit írjak feltételnek, mivel nem magára az összegezendő számokra van kritérium, hanem a mellette lévő oszlopban kell megkeresni egy szakot, ami többször is szerepel és az ezek mellett lévő számokat kell szummázni. FKERES-sel próbálkoztam még, de eddig nem jutottam sokra sajnos.
Sziasztok! Van egy táblázatom, amiben 2 oszlopban vannak különböző szakok és a mellettük lévő cellákban pedig számok. Egy másik munkalapon pedig fel vannak ezek a szakok sorolva és mellé ki kellene számolnom, hogy az 1. munkalapon ahol az a bizonyos szak szerepel, mennyi a mellettük lévő számok összege. Ezt meg lehetne valahogy oldani segédcellák nélkül? Előre is köszönöm a segítséget!
Azért rejtett, mert a képernyős nézetben nincs rá szükség és zavaró is.
Mivel nyomtatásban több oldalra fér ki, ott kell valami, ami összetartja.
De lehet, hogy a filenevet fogom végül beleírni, mert végül is van egy kérésünk a felhasználók felé, hogy milyen néven elmentve küldjék vissza az űrlapot, és ha csak a 80%-uk betartja, akkor már jó vagyok ezzel is.
Nem értem, hogy miért kéne rejtett sorként felvenned a fent ismétlődő sort. Ahogy én elképzelem: mivel annak semmi akadálya, hogy a több sort vegyél fel fel fent ismétlődőnek, hát kijelölsz mondjuk 4-t, abból az alsó lehetne a tényleges táblázatfejléc, a felső pedig a címbe bekerűlő cellák. Ha a táblázatod celláit, beleértve a fejlécét is, tetszés szerint szegélykeretezed, a cellák nyomtatása parancsot kikapcsolod, és ha kell, még a margókkal is elszórakozol, akkor szinte egy tökéletes felsősor vezérelt élőfej imitációt tudsz létrehozni. Vagy félreértem a problémát?
A fent ismétlődő sorok egyik cellájában legyen a részösszeg függvény, vagy teszel oda egy nyomtatásban is látható alakzatot, amihez hozzárendeled a függvény cellájának a címét. Az alakzaton állva a szerkesztőlécre beírod: =függvény_cellájának_címe
Köszi, de ez azon alapul, hogy mindig szigorúan ugyanannyi sor kerül egy nyomtatott lapra, ami a konkrét esetben távolról sem áll fenn.
Nem értem, miért nem bírtak egy ilyen kézenfekvő dolgot beépíteni, amikor annyiféle mezőt meg lehet ott jeleníteni.
Még eszembe jutott, hogy rejtett sort lehetne fent ismétlődő sorként felvenni, de nem ér meg annyi pepecselést, amennyibe kerül újból kijátszani a nyomtatási képet.
Akkor érdemes lenne megismerkedned vele. Mert bár a számlázáshoz a 20855-ös megoldás a praktikusabb, de ha a főnököd egyszercsak tájékoztatást kérne a kuncsaftok fizetési moráljáról, akkor a számlázólistát a kimutatásvarázslóval lehet áttekintehetőbbé tenni, egyrészt azzal hogy az ismétlődéseket elhagyja, másrészt a kuncsaftkódokat sorbarendezi. És csak pár klikk az egész. A kurzort a listára állitod, majd KIMUTATÁS, majd az A oszlopot a jobbsávba húzod, a B oszlopot a felsősorra és be középre, itt átállítod az AB.függvényt DARAB-ra és kész. Próbáld ki.
Köszönöm, de sajnos nem látom "rögtön". Itt ugyanúgy át kell néznem az egészet. Cca. 10.000 emberke van, és mindenek 6-8 számlája. Uh a táblázatom nem éppen kicsi.:(
Coszlop: =DARABTELI(A:A;a1) (hány db van ugyanabból)
Doszlop: =SZUMHA(A:A;a1;B:B)(abből hányszor 1)
Eoszlop: =HA(C1=D1;"ok";0) (100%: ok)
A fenti képletekkel a számlakibocsájtások tetszőleges sorrendűek lehetnek. Tehát lehet kibocsájtási is, azaz amikor hozzáírod a listához az új számlát, rögtön látod a delikvens eddigi fizetési készségét.
Egy üres oszlopban (legyen ez a D) összefűzöd a két oszlop adatát, közöttük egy alsó kötjellel.
=A1&"_"&B1
Ezt lemásolod az adataid mellé. Kijelölöd a D oszlopot, Ctrl+c-vel másolod. Jobb klikk, Irányított beillesztés, Értéket. Ezzel a képleteket értékekké alakítottad, tehát nem függnek az A és B oszlopok adataitól. Rendezed a D oszlopot, és rögtön látod, kinek van a kódja mellett vegyesen 0 és 1, ki fizetett mindig időben, ki soha.
Az A oszlopban lévő számok emberkéketet jelentenek, készült részükre x db számla, amit ha időben fizettek, akkor a B oszlopban 1 az érték. A kérdés az, h ki az,aki minden szláját időben fizette. Így jó? Köszi
Az A oszlpoban sokféle szám van, a B oszlopban 1 és 0.
A feladat az, hogy amennyiben az A oszlopban azonos számohoz, a B oszlopban minidig 1 tartozik, akkor OK. A többi esetben nem. (az A oszlopban a számok növekvőbe rendezve)
szó szerint előcsalogatni nekem sem sikerült (még) a munkalapját, hogy pl. tudjak rajta módosítani.
Túlzottan nem is érdekel, mert az xlam megvan xlsm-ben is - és egyikből tudom a másikba mozgatni a makrókat - szükség esetén pedig xlsm-ben módosítom a munkalapot és rámentem (másként) az xlam-re.
Favágós, de így tudom jelenleg.
Eléggé zavar hogy nem tudom közvetlenül piszkálni, de biztos (Legyünk jóindulatúak... :) megvan rá a MikeRowSoft oka.
Pl. fennt van szalagmenün is nekem az xla-ban lévő makró - ennél fogva bárhonnan lehet indítani. Ha valamit nem látni, akkor valószínűleg úgy van megírva az xla-ban a makró, hogy ne lehessen a lehetséges felületekről indítani(nem tudom van e ilyen, de kell h legyen) Énkonkrétan nem tudom, hogy mi a különbség a private meg a public között - talán a private-t csak a munkafüzetből lehet elérni, a publicot meg bárhonnan.
Pl azt sem tudom mivel kell (még nem volt rá szükségem) olyan változót deklarálni, amit bárhonnan elérek és megőrzi az értékét stb...
az az érdekes, hogy egy elmentett *.bas makrót "belehúzok" az xla(m)-be, akkor az látszik alt+f8-ra felugró futtatás ablakban. Ma próbáltam ki.
Hogy a solvernél nem látom? Speciel jelszó védi. Legalábbis most az otthoni gépen néztem meg, de munkahelyi gépen meg le tudtam nyitni ha jól emlékszem. Nem néztem, de talán be is lehet állítani, hogy a felhasználó ne "lássa" a module-kat.
Valószínüleg azért, mert akkor órákig kereshetnéd az xls makróidat a tengernyi bővítményeljárás infuz listájában. Mivel ezutóbbiak rengetegen lehetnek, minden bizonnyal célszerűbb őket valami módon saját menükbe szerkeszteni. De hogy hogyan, ahhoz kevés vagyok.
Meg különben is, csak kevés tapasztalatom van az xla-kal. Szerintem ui. csak a saját függvényeket praktikus xla fileba gyűjteni, az általános makrókra már praktikusabb a Personal füzet. Emiatt még mindig nem tudom a saját xla füzetem munkalapját előcsalogatni, hiába variálgatom a 20831 posztod szerinti eljárást. Az okulásomra nem raknád ki ide a teljes eljárást? Vagy küldöd el priviben?
Van egy 25-27 munkafüzetből álló táblázatom aminek van egy nagyon idegesítő "szokása". A beírt értékeknek mindig USD az alapértelmezett kategóriája. Nem lehet ezt egységesen a teljes munkafüzetre definiálni, hogy általános vagy szám és amikor kell akkor én az adott cellának megváltoztatom?
Azt hittem minden további nélkül lehetséges. De nem. Megírtam a makrót egy xla modulba, hogy rakja át az egyik lapját egy megnyitott füzetbe, de Subscript of range hibaüzenetet adott. Ami alapján úgy vélem, hogy a bővitménymentés során valszeg nem is menti el a füzetet, hanem csak a VBA alkalmazásait. És akkor ez lehet a magyarázat arra, hogy miért nem lehet láthatóvá tenni.
Azt viszont minden további nélkül megy, hogy az xla-ban elmentett makróval egy tetszőleges xls füzet tetszőleges lapját, bemásold egy másik füzetbe. Praktikusan ugyanaz mintha a formázott lap is az xla-ban lenne.
És van még a nekem legszimpatikusabbnak gondolt Personalos megoldás. Ennél a formázott lapott a Personal füzetedbe mented. Az mindig nyitva van, láthatóvá tehető, szerkeszthető, és makróval is mozgatható.
A törlésben remélhetőleg tudok segíteni. A windows commmanderrel lehet, gondolom a windows filekezelője is tudja. A filet, ha minden igaz, az Office12/Library könyvtárban találod meg. De hogy, hogyan lehetne füzetformátumban megjelentetni, ahhoz kevés vagyok. Pedig határozottan érdekelne. Megjegyzem, ezért szoktam a füzetlapbeállításaimat a Personalba vagy templatként menteni. Az xla-ba meg csak a függvényeket és a makrókat.
most módosítottam úgy, hogy xlsm-ben megvolt és újra elmentettem xlam-ben. Viszont nem tudtam felülírni az előzőt illetve azt törölni sem tudom. Azt mondja, hogy meg van nyitva. De feladatkezelőben sem látszik. Ez valahol a BackOffice-ban fut valószínűleg.
Örülök, hogy sikerült megoldanod a problémád. Nekem viszont sehogy sem sikerült az xla filemat füzetformátumban láthatóvá tennem. Kiírja hogy rejtett füzet, és hogy a felfedés paraccsal tehető láthatóvá. De a felfedés parancs nem müxik (halvány). Neked hogy sikerült?
Még azt szeretném megkérdezni, ha az elmentett xla-ban van egy formázott munkalap, akkor azt a formázást hogy tudom másolni a legegyszerűbben/leggyorsabban ebből az xla-ból.
Az xla mentés tökéletes. Van még hogy az egyéni makrófüzetbe mented a makród, amit az Alt+F8 ablakban ajánl fel. Ez lesz a Personal füzet, amit szintén automatikusan hív be az excel minden indításkor. És van még hogy te nyitod meg a makrót tartalmazó normál füzetedet, amikor szükségesnek látod. Ha egy füzet meg van nyitva, a makróit a többi füzet is tudja használni.
Ha a makrót nem munkafüzettel akarom menteni, hanem azt szeretneém, hogy folyamatosan rendelkezhessek vele, akkor mit kell csinálni? (Pl elérjem a szalagmenüről)
xla, bővítményt kell készíteni?
A segítséget köszönöm előre is, igyekszem viszont segíteni.
talán a 2003 előtti időkből a makrólap és makrófüggvények használatához. (Amikor nem volt vba, akkor volt makrófüggvény, megvan még mindig, csak kevesen ismerik/használják)
Bingó! Lehetséges cellacímű makró nem indítható az alt +F8 makróabkaból. VBE-ből igen, meg subrutinként is, de így nem. Kipróbáltam egy a1 makró b1 makróból való hivásával. VBE-ből ment, makróablakból azonban egyik sem volt elérhető. Kösz.
Én arra gyanakodnék, hogy az ok az, hogy az mcr60 létezik mint cella cím (kivéve persze xl2003-ban). Van olyan xl belső szabály, hogy létező cellacímeket nem lehet bizonyos módon használni (pld range name-nek sem lehet megadni). Én valahol itt keresgélnék.
Odáig jutottam a probléma kezelésében, hogyha átnevezem a makrót, az új névvel már semmi baja. Tehát a névadás okozta a problémát. Dehogy miért, azt nem értem.
A makróimat mcr0-tól mcr60-ig neveztem el. Ezek közül csak az mcr0-hoz lehetett hozzáférni a makróablakból. A többihez csak átnevezés után. Pl. az mcr50-t macro50-nek és a mcr 54-t macro54-nek átnevezve. Nem tűnik nagy különbségnek, és mégis.
VBE-ből a makrók mcr-néven is vígan futnak.
Van valakinek valami ötlete, hogy mi okozza a makrónév és a makróablak összeférhetetlenségét?
Az excelem jónéhány makrómat nem engedi megnyitni szerkesztésre az ALT+F8 makró ablakban. Ilyenkor innen futtatni sem lehet. (Halványak az opciók). De nem ez okozza a gondom, hanem hogy így indító billentyüt sem tudok hozzájuk rendelni. Mit lehet a probléma?
Minden további nélkül írható rá makró. De addig is míg valaki kisegít vele, megodhatod az oszlopok manuális balról jobbra rendezésével.
A táblázataid fölé vagy alá beírod, hogy az adott oszlop hanyadik legyen, majd rendezed a táblázatot balról jobbra (A beállításoknál kell választanod ezt az opciót.)
Csak egy dologra kell ügyelned: nevezetesen hogy a rendezés során a relatív hivatkozásaid borulhatnak.
Arra van-e makró, vagy lehet-e makrót írni, ha van két olyan munkalapom, ami azonos fejléccel vannak, de más sorrendben és a makró azonos sorrendre hozza össze úgy, hogy mindkét munkalapon azonos sorrendbe lesznek az oszlopok? Pl.: az első munkalapon
SorszámIktatás dátumaSzerződő Partner neveAdószám
A második munkalapon:
AdószámSorszámSzerződő Partner neveIktatás dátuma
Ennek a két munkalapnak az oszlopait kellene átmozgatni úgy, hogy azonosak legyenek az oszlopok sorrendje?
Igen, ezekre giondoltam és tettem magam is...Azt hittem, valami rosszul van beállítva a beállításokban, de nem találtam semmilyen utalást erre. Köszönöm a válaszaitokat!
Ja igen, a vessző az tizedesjel, attól nem lesz szöveg, ugyanúgy szám.
Ha utólag átformázod szöveggé, nem biztos, hogy beveszi. Előre szöveg, úgy beillesztés, vagy szöveggé alakítás után szaladj végig rajta egy F2/enter párral. De lehet, hogy F9 is elég.
Ha a számok elé 1-es számot írok, a számok végét 0-ra kerekíti így:
1601125098660740,
1601125098660860,
1601125098661010,
1601125098661030,
1601125098661060,
1601125098661070,
Megnéztem, a formátum ok, a listát bemásoltam egy txt fájlba és onnan egy akkor megnyitott, új táblázatba és akkor is felkerekítette. Mit lehet tenni, hogy a formátum és a szám vége megmaradjon?
Igazából egyszerűbb képletet szerettem volna, mert meg mertem volna esküdni rá, hogy egy cellatartomány n-edik elemét nemcsak VBA-ban, hanem képletben is meg lehet hivatkozni valami ehhez hasonló módon:
2007-hez szerintem lehet downgrade licenszt kérni a Microsofttól, szóval ha a 2007 jogtiszta, de nem használod, akkor a 2003-asba nem nagyon lehet belekötni. Ajándékozás után szintén. Ami a letöltést illeti, elhangzott pár ésszerű tanács, de nyilván nem kötelező megfogadni őket.
A lapodhoz rendeld a makrót. Akkor indul, ha az A vagy B oszlop cellái változnak módosítás, vagy új adat felvitele által.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:B")) Is Nothing Then Dim sor As Integer, sor1 As Integer
sor1 = 1: sor = 1 Do Cells(sor1, "F") = Cells(sor, "A") sor1 = sor1 + 1 Cells(sor1, "F") = Cells(sor, "B") sor = sor + 1: sor1 = sor1 + 1 Loop While Cells(sor, "A") <> "" End If End Sub
Védelem fülön kivettem a pipát a Zárolt elől, de a Lapfület ne találom. A korrektúra fülbe találok Lapvédelmet, de akkor ha arra rákattintok akkor semmit nem enged módosítani utána a dokumentumba.
Nyilván nem feltétlen reális az, hogy a NAV, a TEK vagy valamelyik egyéb terrorszervezet rádborítja a lakást egy 20ezres program miatt, de ettől még nyilvános fórumon nem bölcs dolog hirdetni. Esélyesen nem figyelik az index 0-24-ben, de tévedhet erre olyan, akinek van adóellenőri jogosultsága és kész a gáz.
És még egy felmerülő kérdés: lehet még egyáltalán 2003-as Ms Office-t kapni valahol? Mert nekem ugye van 2007 telepítő CD-m (na, az az tényleg teljesen jogtiszta), csak éppen a régihez ragaszkodtam...
Nekem egy kicsit szürreális a kép, hogy a NAV-nál van egy ember, aki napi 8 órában a gép előtt ülve az indexes hozzászólásokat figyeli és nyomozza le. Ez kb. olyan, mintha a BKV-nál valaki a facbookon böngészné, hogy melyik diák posztolja aznap, hogy "hehehe, blicceltem a hetes buszon". Ennek ellenére bármit kinézek a NAV-ból... Viszont ha már ellenőriznek, és a helyükben az Ncore-on és hasonló oldalakon néznék szét, ott tízezrével hemzsegnek az illegális szoftverletöltők.
Egyébként ha a netről töltöm le a szoftvert, és használom, amíg le nem jár a próbaverzió, aztán ismerősi körből nagynehezen kerítek egy eredeti telepítőcédét, és az ismerős, aki már nem használja ezt a szoftvert, szívességből nekem ajándékozza a kódját, az már jogtiszta, nem? Illetve ha kell a munkámhoz, nonprofit, anyagi hasznot nem hozó másodállásomhoz, hobbimhoz, tanulmányaimhoz, mittudomén titkos naplómhoz, bevételeim-kiadásaim táblázatban vezetéséhez, stb., de nincs belőle konkrét üzleti hasznom, illetve nem terjesztem, szerintem akkor sincs gáz. Vagy mégis lehet?
Annyit még megtudsz mondani hogy hol tudom az beállítani hogy bizonyos cellák le legyenek zárva hogy oda még csak véletlenül se lehessen beleírni vagy kitörölni?
Nehogy véletlenül félreüsek valamikor és emiatt utána rosszul számoljon valamit.
A 2. sor képlete mindig az aktuális sorszám adatait összegzi.
Beírsz egy új nevet és a hozzá tartozó fizetést, az Excel alapbeállítása szerint a képletek másolódnak a hozzá tartozó sorba. Nem írtad, melyik verziót használod, így nem tudom megmondani, hol találod ezt a beállítást.
Még annyi kérdésem mégis lenne hogy: ha az utolsó sort lehúzom hogy több sorban számoljon ne csak 5ben akkor az összesenben csak az első 5 sort összesíti. Mit kell csinálnom hogy az összes sort összesítse?
A google segítségével rákerestem a cimletező és az excel szavakra. A találatok közül az első, nagyon egyszerű és elegánsnak tűnő megoldás a következő volt: www.sgus.hu/files_dwld/EXCEL/Cimletezes.xls. És még csak nem is használ makrót. Szerintem jó kiinduló alap lehet annak ellenére, hogy ő függőlegesen listázza a címleteket, Te meg vízsszintesen szeretnéd. De ezt könnyű lesz átalakítani, ha egyáltalán szükséges.
Egy munkahelyen van mondjuk 20fő dolgozó. Ennek a 20 főnek van 20féle munkabére.
Egy program elkészíti a fizetési listát PDF formátumba a 20 névvel és összeggel.
Mivel minden mubnkabér szinte más összegű, eddig egyenként kicímletezem mindegyiknek a bérét, és utána összegzem hogy a bankból milyen címletekből mennyit kérjek ki, hogy a fizetést előre ki tudjam borítékolni. Elég időigényes munka hogy 20 embernek egyenként számolgatom ki a címletét és utána ezt a 20 fajta címletet még összegeznem is kell.
Erre kellene nekem egy olyan excel program, amibe (mondjuk az "A" oszlopba) beillesztem egymás alá a 20 ember bérösszegét (amit kimásolok a PDF-ből) és a program kiszámolja személyenként a címleteket és a végén összesíti. Ezt az összesített címletet kérem le a banktól, és így biztos mindenkinek külön tudom borítékolni a fizuját.
Címletezőre lenne szükségem, de olyanra ami több számot tud címletezni nem csak egyet. Magyarul beillesztek egy oszlopba 20-30 számot egymás alá és a program kiszámolja ennek a 20-30 számnak a címletét.
Csak részben. A filmek és zenék felvétele a rádióból-tévéből, megvásárolt példányról történő lemásolása magáncélra legális. A letöltése viszont egy szürke zóna, kivéve a legális letöltésre felrakott műveket, ugyanis ezek általában eleve illegálisan vannak feltéve, tehát már a forrástól nem tiszta. Nincs sehol leírva, hogy ez legális lenne, csak éppen jelenleg nem üldözik.
Tudomásom szerint filmek és zenék letöltése otthoni, magáncélú felhasználásra megengedett, legalábbis a magyar törvények szerint. Ugyanez nem igaz a szoftverekre.
A magánemberek ellenőrzésének valóban kicsi az esélye, de azt tudnod kell, hogy pl. az indexfórumos, indafosos regisztrációd pillanatától kezdve minden lélegzetvételed elektronikusan dokumentálva van, visszakereshető, és az ISP adataival kombinálva valós személyhez köthető.
Folyamatosan rettegni egy letöltött kalózprogram miatt irreális, de kitenni a táblát, hogy "emberek, én kalóz office-t használok" szintén nem túl bölcs.
Persze vannak, akik az extrém sportokat kedvelik :)
Oké, de nyilván az egész Ncore nem jogtiszta, a filmek, a zenék, a programok letöltése meg főleg nem az. Az ilyen torrentoldalak, fájlcserélők álnéven netező felhasználói milliónyian mind folyamatosan attól rettegnek szerte a világban, hogy egyszer csak rájuk rúgja az ajtót néhány egyenruhás, vagy hogy több tíz-százezer forintra megbüntetik őket? Értem én, hogy mi a különbség a boltban vásárolt és a netről letöltött Microsoft (meg a jogdíjas filmek, zenék) között, és ha jól tudom, van különbség az otthoni, magáncélú felhasználás meg a további terjesztés, jogosulatlan pénzszerzés között, de az ilyen, magánemberek ellen irányuló ellenőrzéseknek valóban van realitása?
Pl. mert nem jogtiszta? A nem jogtisztaság egyéb következményeit már gondold ki magad. Van valamid, amiért pénzt szoktak kérni, te meg nem fizettél érte s nem ajándék volt...
Kár, mert az a címem ezer éve nem él... :( Írok a másik címemről.
Amúgy muszáj volt nekiállnom dolgozni, ezért letöltöttem az NCore-ról a 2003-as verziót, telepítettem, és úgy néz ki, működni fog. Otthonos érzés. Az Open Office-t is megtartom, hátha hasznát veszem még.
Fent vagyok az NCore-on. Most nézem, hogy milyen verziók vannak fent. Van sima Microsoft Office 2003, meg van Professional SP3 X86, ezeket töltötték le a legtöbben, gondolom, nem lehetnek rosszak. Ha letöltöm és telepítem, az op. rendszer simán befogadja majd? (XP Professional van a gépemen)Nem fog hibaüzeneteket küldeni, hogy nem jogtiszta? Nem fog kódot kérni?
Erre jó lehet, amit a 20500-ban írtam. Annyi különbséggel, hogy a clsApp kódlapjára ezt kell bemásolni:
Public WithEvents App As Application
Private Sub App_WorkbookOpen(ByVal Wb As Workbook) Dim A As Long, p As String If Left(LCase(Wb.Name), 8) = "personal" Then Exit Sub A = MsgBox("Megnyitás csak olvasásra?", vbYesNo) If A = vbYes Then Application.EnableEvents = False p = Wb.FullName Wb.Close App.Workbooks.Open Filename:=p, ReadOnly:=True Application.EnableEvents = True End If End Sub
A 2003-as Office-t lehet éppenséggel elavultnak nevezni, de csak abból a szempontból, hogy az újabbak bizonyos funkcióit nem tudja, és ezért nem mindig lehet megnyitni vele újabb verziókban készült dokumentumot. Még akkor sem, ha az egyébként nagyon hasznos kompatibilitási csomagot telepíted. Ettől eltekintve szerintem a 2003-as szinte mindent tud, amire szükség van.
Ezzel együtt én nem ragszkodnék a 2003-ashoz, pont azért, mert ciki és körülményes, ha nem tudod megnyitni a fájlokat, amiket kapsz.
Venni ma már csak 2007-est vagy újabbat lehet, felszereltségtől függően kb.20-40 ezerért. Ebben annyira azért nem vagyok otthon, de egy gyors keresés ezt adta ki.
Letölteni bármit le lehet. Az MS Office letöltésének két bukkanója van. Az egyik, hogy nem legális, és akár még gond is lehet belőle. A másik, hogy a tört verziók gyakran vírusosak. Az "informatikus haver ráér és telepít" megoldás hasonló kockázatokkal jár. Gondolom, az informatikus haver is kalózpéldányt rakna fel, mert haverságból nem szokás több 10 ezer forintos programokat adományozni. Legfeljebb ő a vírusokra is gondol, és olyan programot rak fel, ami szerinte nem fertőzött. :o)
Szürkezónás megoldás lehet az, ha virtuális gépre telepítesz legális próbaverziót, amit aztán a próbaidőszak leteltével újra kell telepíteni. Ez mondjuk egy VirtualBox-os guest gépnél, ahol pillanatképet készíthetsz a telepítés előtti állapotról, és oda 10 sec alatt vissza tudsz állni, kb. 10 perc munka kéthavonta.
Tudásban jobb az újabb (akkor már inkább 2010, mint 2007), viszont a kezelőfelülete borzalmas. Annak, aki gyorsan dolgozik billentyűkombinációkkal, és nem előbb nyúl az egérhez, aztán kezd gondolkodni, hogy mit is akar, sokkal kényelmesebb a 2003-as, ezért használjuk még páran itt.
A leírtak alapján mindenképpen a Microsoft felé hajlok, már csak az a kérdés, hogy melyik verziót javasoljátok?
Nekem a 2003-as Ms Office volt az abszolút kedvencem, de mivel az egy 10 éves program, gondolom, ma már elavultnak számít... Vagy nem?
Tudok letölteni bármilyen Ms Office-t netről? (Nem próbaverziót, hanem teljeset.) Vagy várjam meg, amíg egy informatikus haver ráér és telepít nekem? Mennyire drága megvenni egy erdeti programot?
Excelből kell indítani a megnyitást, és amikor a fájlt kiválasztod, a megnyitás gomb jobb szélén van egy lenyíló, abból ki lehet választani a csak olvasásra opciót. Ha így nyitod meg, a következő ember meg tudja nyitni írásra. Legalábbis sajátgépen, két Excel példánnyal így működött, gondolom hálózattal, különböző júzerekkel is így megy...
Úgy látszik, jó vagyok olyan kérdésekben, amikre senki nem tud válaszolni.
Itt a következő: meg tudom-e elsőnek nyitni a táblázatot csak olvasásra, hogy ha az nyitja meg nálam később, aki írni is akar bele, akkor neki simán menjen? Tehát mintha én lennék a második.
Hát, most nem sorolnám fel az összes zsákutcát, amibe belefutottam, de maga az algoritmus nagyon egyszerű:
1. Használd a makrórögzítőt.
2. Keress az interneten segédanyagot. (Ebből van rengeteg, egyik jobb, mint a másik, csak egyik sem tartalmazza pont azt, amire szükséged lenne.)
3. Nézegess fórumokat.
4. Kísérletezz.
A LibOffice-nak remek makrórögzítője van, nagyon szépen rendezett kódot ír, csak éppen gyakran használhatatlan. Nem a konkrét objektumokkal dolgozik, hanem mindent UNO service-eken keresztül old meg, ami szép és jó, csak baromi nehéz visszaszerezni belőle objektumhivatkozásokat, hogy azokkal tovább tudj dolgozni.
Rákerestem arra, hogy LibreOffice basic reference, és találtam egy ilyet:
Megörültemm neki, mert úgy tűnt, hogy ez a LibOffice Basic teljes dokumentációja. Megnéztem, megpróbáltam kiokosodni belőle, és ezennel virtuálisan leborulok a Microsoft VBA súgó készítői előtt. Ég és föld a különbség a kettő között.
Találtam a neten valami kódfordítót is, ami állítólag azt tudja, hogy beadod neki a VBA kódot, és kidobja a Basic kódot. A legegyszerűbb Range műveletekre is befuccsolt.
Az egyik fórumon találtam egy kérdést, ami kb. egybevágott azzal, amit én is kérdeztem volna. Két oldalon keresztül olyan válaszokat kapott, hogy "tanulj fiam, és aztán magad is meg tudod majd oldani". Míg végül a kérdező kifakadt, hogy mit szórakoznak vele, mi a f@cér nem képes senki megmondani, hogy hogy kell megcsinálni. Szóval közel sincs ott olyan jólét, mint itt, ahol készregyártott kódokat kap az ember...
Végül találtam egy fickót, valami bolgár és Andrew Pitonyak a neve, aki egy egészen használható doksit írt, példákkal fűszerezve.
Sub Osszesites2 Dim Doc as object Dim CopyTo As New com.sun.star.table.CellAddress Dim CopyFrom As New com.sun.star.table.CellRangeAddress Dim i As Long
Doc = ThisComponent If Not Doc.Sheets.hasByName("Összesítés") Then Doc.Sheets.insertNewByName("Összesítés", 0) End If For i = 1 to Doc.Sheets.GetCount-1 with CopyFrom .Sheet = i .StartColumn = 0 .StartRow = 0 .EndColumn = GetLastUsedColumn(Doc.Sheets.GetByIndex(i)) .EndRow = GetLastUsedRow(Doc.Sheets.GetByIndex(i)) end with with CopyTo .Sheet = 0 .Column = 0 .Row = GetLastUsedRow(Doc.Sheets.GetByIndex(0))+1 end with Doc.Sheets.GetByIndex(0).copyRange(CopyTo, CopyFrom) Next End Sub
Function GetLastUsedColumn(oSheet) As Integer Dim oCursor oCursor = oSheet.createCursor oCursor.GotoEndOfUsedArea(True) GetLastUsedColumn = oCursor.RangeAddress.EndColumn End Function
Function GetLastUsedRow(oSheet) As Integer Dim oCursor oCursor = oSheet.createCursor oCursor.GotoEndOfUsedArea(True) GetLastUsedRow = oCursor.RangeAddress.EndRow End Function
Remélem, jó lesz, mert 6 órás (kutató)munkával raktam össze (Excelben 10 perc lett volna), ráadásul kezdetleges és nem rugalmas, de az van.
Lényeges, hogy a munkalapok index-szel vannak meghivatkozva, ezért az Összesítés nevű munkalapnak mindig a legelső (nullás) pozícióban kell lennie.
A program úgy is hozza létre, csak később sem szabad elmozgatni.
Bizony, bizony, ahogy SK mondja. A mi istenünk a Microsoft. OpenOffiszos eretnekségnek, bálványimádatnak itten helye nincs :o)
Komolyra fordítva, mérlegelni kell az előnyöket és a hátrányokat. Az OpenOffice vs MS Office pro és kontra érveket sokhelyütt leírták már, és most itt egyet emelnék ki.
Mind az MS Office, mind az OpenOffice (és a LibreOffice is) támogatja a makróprogramozást. Csakhogy az MS Office-t kiegészítő VBA makrónyelvet sokkal többen ismerik, mint az OO Basic-et. Míg MS Office VBA kérdésben 100-an tudnak neked segíteni, OO Basicben maximum 1-en, és ahogy nézem, az az egy nincs itt ezen a fórumon :o)
Retro_Image-nek igaza van. Ha azt akarod, hogy valaki foglalkozzon a kér(d)éseddel, ne pénzt ajánlj fel, hanem pontosan, érhetően határozd meg a megoldandó feladatot és a helyes megoldás kritériumait. Ahhoz senkinek sincs kedve, hogy bogarásszon egy ellentmondásokkal teli hozzászólást.
Egy látszólag egyszerű kérdséem lenne: Microsoft Office 2003, Microsoft Office 2007, vagy új Open Office?
Újratelepíttem az XP-met, és a régi Microsoft helyett új Open Office-t kaptam... (Tudom, illett volna megbeszélnem az informatikusommal).
A neten azt olvasom, hogy az Open Office független, jobb, többet tud, jobb a helyesírás-ellenőrzője, de én évekig dolgoztam a 2003-as Ms Office-ban, így szerkesztettem mindent Wordben és Excelben. Író-újságíró vagyok, ezért nagyon nem mindegy, hogy mi lesz ezzel a külső vinyón lévő, nagy adathalmazzal. A cégek, szerkesztők, kiadók szempontjából sem mindegy, hogy meg tudják-e egyáltalán nyitni, amit küldök nekik, meg persze magam miatt sem - tudom-e normálisan kezelni az eddigi fájlokat, illetve nagy dilemma, hogy milyen formátumban nyissam meg és mentsem el az újakat.
Most fent van a gépemen ugye az új Open Office, ami tényleg nem tűnik rossznak, de például a régi Excel-táblázatokat furcsán kezeli, néhány mező formátumát megváltoztatja, stb. Feltettem a gépre a 2007-es Ms Office tesztverzióját is (mindjárt lejár, és nem találom a 25 számjegyű kódot). Ezzel ugyanaz a problémám, az Excelben mások a színek (és ez nekem fontos a kiemelések miatt), a Wordben teljesen mások a sorközök.
Szóval mit javasoltok? Melyiket éri meg hosszú távon használni? Ha valamelyik újat, akkor szépen sorban érdemes lenne átalakítani a több száz régi fájlt is...?
- a munkalap Worksheet_Change eseményét figyeltetném, és ha az adott cella "szolgáltatás" értéket vesz fel, akkor zárolnám a másik cellát, esetleg a háttérszínét is módosítanám, ha meg egyéb értéket vesz fel, akkor feloldanám a zárolást.
- feloldanám az űrlapmezőnek szánt cellák zárolását, aztán is levédeném a munkalapot
- a munkalap Worksheet_Change eseményét figyeltetném, és ha az adott cella "szolgáltatás" értéket vesz fel, ha egyéb értéket, akkor feloldanám a zárolást.
A második kérdésre "valószínűleg igen" a válasz. Ha beküldöd a kódot, részt vehetsz a sorsol.. megnézzük és teszünk javaslatot a módosításra.
Amúgy miattam nem muszáj tisztáznod fenti bizonytalanságokat, mert leszálltam a témáról. Első blikkre több órás fejtörés lenne az algoritmust összehozni, ha egyáltalán sikerülne, és nem volna arcom annyit kérni érte, hogy megérje :o)
Ezen a fórumon milyen vétségekért moderálnak ki hozzászólásokat? Egy kérdésemre adott válaszra akartam rákeresni, de látom, hogy ki van moderálva. Nem emlékszem, hogy bármi botrányos lett volna benne.
Nem egészen világos elöttem a feladat, de ha netántán az lenne, hogy minden oszlop utolsó értékét listázza ki, akkor a mátrixodban az utolsó oszlop elemeit kell kilistázni. Jelen esetben tehát =index(7.oszlop,i,1), ahol i=1...7.
Az A oszlop 2 szóból álló értékeit a B oszlopba írja sortöréssel. A felső sor karakterei pirosak, az alsók kék színűek lesznek. Címsort feltételezve a 2. sortól veszi az adatokat.
Sub szines() Dim sor As Integer, usor As Integer Dim szoveg1 As String, szoveg2 As String
usor = Cells(Rows.Count, "A").End(xlUp).Row For sor = 2 To usor szoveg1 = Left(Cells(sor, 1), InStr(Cells(sor, 1), " ") - 1) szoveg2 = Mid(Cells(sor, 1), InStr(Cells(sor, 1), " ") + 1, 256) Cells(sor, 2) = szoveg1 & Chr(10) & szoveg2 Cells(sor, 2).Characters(Start:=1, Length:=Len(szoveg1)).Font.ColorIndex = 3 Cells(sor, 2).Characters(Start:=Len(szoveg1) + 2, Length:=Len(szoveg2)).Font.ColorIndex = 5 Next End Sub
Az excelem minden további nélkül elfogadja az A!, B! D! munkalaphivatkozást, de a C!-t nem. Csak 'C'!-formában. A C-t egyéb karakterekkel bővítve szintén elfogadja. Csak a C!-re allergiás. Van valakinek valami ötlete, hogy miért?
Hát ha nem megy a makró, akkor nem marad más, mint retro cammogós megoldása a képletekkel. Mivel itt elég bonyi lenne ismerteni, feltettem a datahura. A példa 4 munkalap adatait gyüjti össze +4 vezérlőoszlop segítségével. Rövid magyarázatot is fűztem hozzá, amik segítségével applikálhatod a saját körülményeidhez.
Ha munkafüzet nézetét átváltom oldaltörés megmutatására (kék keretben jelennek meg az oldalak, oldalon kívüli területek meg szürkék ekkor). Ilyenkor baszom nagy szürke betükkel feltünteti, hogy 1. oldal, 2. oldal... Nos ezeket az oldalszámozásokat el lehet tüntetni?
Másik:
Van egy kb. 4000 soros excel. Elején címsorral. Nyomtatásnál minden oldalra ezt a címsort akarnám kinyomtatni, na de nem engedi. Az oldal beállítás, lap fülön a fenti smétlődő sorok ki van szürkítve. Mi lehet ennek az oka?
Excelben készítettem egy anyag és szolgáltatás igénylő lapot. Szeretnék bele olyat fabrikálni, hogy pl: ha az adott cellában valaki a "szolgáltatást" választja akkor egy másik cella (ami pl fuvarparitás) váljon inaktívvá. Ezek a cellák, nagyon egyszeűek, érvényesítéssel raktam "bele" értékeket.
A másik problémám: Írtam egy macrot, amit futtatás (makro a gombhoz rendelve) után elmenti az adott munkafüzetet egy másik file-ba, megadott helyre. Tök jól működik, amit nem tudtam benne megoldani az az, hogy az új file megőrizze a forrás file betűtípusát. Mivel teljesen új munkafüzetbe másolja és menti, így az adott gépen lévő excelben beállított betűtípussal fogja menteni.
És amit még szeretnék, hogy az új file-ba már csak értékek legyenek képlet és hivatkozás vagy érvényesítés nélkül.
Az elsőre az Adatok/Szűrő/Irányított szűrő a megoldás, azon belül: más helyre másolja, és egyedi rekordok megjelenítése.
Erre kapsz egy olyan listát, amiben minden rekord csak egyszer szerepel, tehát duplikátumok nélkül.
A második feladat definíciója nem elégséges a megoldáshoz. Bizonyos peremfeltételek hiányoznak.
Mert a megadott paraméterek alapján azt mondom, hogy a délutános jöjjön minden hétköznap délután, a többiek meg minden hétköznap délelőtt, hétvégén ne jöjjön senki. Ezzel teljesítek minden kritériumot, de mégis úgy érzem, hogy nem leszel elégedett a megoldással :o)
Szóval kellenének még olyan adatok, hogy egyszerre legalább hány dolgozónak kell lenni egy műszakban, kell-e hétvégén, ha igen, akkor kell-e mindkét nap és mindkét műszakban? Minden hónap elsején újraindul a számolás, vagy bizonyos feltételeknek folytatólagosan is teljesülniük kell? Satöbbi.
Van egy 2000 soros táblázatom, ahol kb. 6-700 sor duplikált.
Meg lehet adni 2003-as excelben, hogy a duplikált sorokat kijelölje vagy törölje automatikusan?
A másik egy kisebb munka lenne.
Van egy munkahely 7 dolgozóval.
Egy dolgozónak átlagban 20 napot kell dolgozni.
1 ember csak délelőttös, egy csak délután.
A többiek is is.
Max. egy ember 5 napot jöhet egymás után.
1 hétvége legyen szabad.
Van arra lehetőség arra, hogy excelben beírom a neveket és automatikusan elkészíti a "beosztást", amit finomhangolni kell? Ha valaki tud ilyent és vállalná pénzért, kérem jelentkezzen!
"(a munkalapok egyesével történő kijelölése, és az adatok másolása, majd beillesztése az új munkalapra, az megy...:-))"
Nincs is annál jobb módszer, legfeljebb lehet rajta gyorsítani egy kicsit, pl. makróval:
Sub összemásol() Dim ws As Worksheet, ws_uj As Worksheet, Rng As Range
Set ws_uj = ThisWorkbook.Worksheets.Add For Each ws In ThisWorkbook.Worksheets If ws.Name <> ws_uj.Name Then Set Rng = ws_uj.Range("A" & ws_uj.Rows.Count).End(xlUp).Offset(1) ws.UsedRange.Copy Destination:=Rng End If Next End Sub
Lehet még talán képlettel is. Egyszer réges rég beképleteztem egy munkalapot úgy, hogy automatikusan, egyben kilistázta 3 másik munkalap tartalmát, követte a változásokat, beleértve azt is, ha valamelyik munkalapon a sorok száma megváltozott. De az elég cammogós megoldás volt...
Több munkalapból álló dokumentumból szeretném egyszerűen és gyorsan kinyerni az adatokat és összesíteni egy munkalapra. A munkalapok adatstruktúrája (oszlopok) mindegyikben azonos, de a sorok mennyisége más lehet.
(a munkalapok egyesével történő kijelölése, és az adatok másolása, majd beillesztése az új munkalapra, az megy...:-))
Nagy itt a csend, írok egy érdekességet, amit egy másik fórumon találtam.
Valaki felvetette, hogy írt egy eseménykező makrót. Az A1 cellába beitt egy érvényesítést, aminek az értékétől függően betölti az 1-3 képet.
A makró részlete:
Dim ShapeDel As Shape
'előző kép(ek) törlése
For Each ShapeDel In ActiveSheet.Shapes ShapeDel.Delete Next
Eredmény: betölti a képet, de az A1 cellából látszólag eltűnik az érvényesítés, de valójában nem. Bár nincs nyíl és lista, csak a 3 választható értéket engedi bevinni.
Rájöttem, hogy az érvényesítést is képként kezeli az Excel. Megoldás:
Dim ShapeDel As Integer
'előző kép(ek) törlése For ShapeDel = 2 To ActiveSheet.Shapes.Count Shapes(ShapeDel).Delete Next
Szerintem azt próbáld meg, hogy egy új munkafüzetbe írsz egy kis makrócskát (alt+F11, sub, end sub, közé egy msgbox "szöveg"-et mondjuk), visszamész a munkafüzetre, és onnan elindítod ezt a makrót (alt+F8).
Ha ez így nem indul el, akkor jöhetnek a komolyabb lépések (lásd alant), de ha ez így elindul, akkor nincs nagy gáz az exceleddel.
Az újratelepítés jó lehet. Ez biztosan nem verziófüggő probléma, mert 2007-tel is ugyanígy mennie kellett volna, szóval emiatt nem érdemes megvenni a 2010-est is :o)
Előtte érdemes lehet eltávolítani a hibás telepítést pl. revo uninstallerrel.
Nos, minden gond nélkül sikerült a makrós megoldás a tesóm laptopján, 2010-es excelben, majd mikor a fájt áthoztam a saját laptopomra, a 2007.eshez, megnyitáskor ebbe a hibaüzenetbe futottam:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>-<recoveryLog xmlns=" a fájlban (C:UsersbettiDesktopMSc. 2. félévHaladó vállalati pénzügyekÓrai kedd_makrós.xls)</summary>-<additionalInfo><info>Ez a munkafüzet elvesztette a VBA projektjét, az ActiveX vezérlőelemeit és minden programozással kapcsolatos képességét.</info></additionalInfo></recoveryLog>
(magyarul nem képes kezelni a makrókat az enyém....)
most már a feladat kész, szóval itt az elv érdekelne, vajon miért van ez? telepítsem újra az office-t? és akkor itt az ideje a 2010-hez? :(
fejlesztőeszközök/beszúrás/űrlap vezérlőelemek/léptetőnyíl --> ha kiraktad a munkalapra, akkor jobb gom rajta, vezérlő formázása és a vezérlő fülön értelemszerűen beállítani a paramétereket
Az excel nálam is gyakran csak a sokadik próbálkozásra adja a makróhozzárendelést lehetővé tevő helyi menut. E parancs valszeg más uton is elérhető, de még nem jöttem rá hogyan. Talán itt valaki.
vagy csak túl sok éve volt :( egyébként sem tértek ki sajnos a használható részekre, én pedig nem vagyok az az "önszorgalmas" típus, na most az egyetemig nem is hiányzott az ismeret.... MOSTANÁIG :)
Nos akkor kicsit részletesebben :) Kijelenteném, hogy abszolút mechanikusan végzem a feladatot a programban, így előre is elnézést kérek a szakmai hibákért :D
Szóval az Excelem 2007-es verzió, és a konkrét probléma ott merült fel, mikor az volt a feladat a munkalapon, hogy egy cella értékét növeljem 1%-kal olyan módon, hogy egy mellé beszúrt ábrára kattintgatunk. Azonban hiába kattintok jobb gombbal, hogy hozzárendeljem a makrót, a funkció maga nem működik. A következő lépésként így a virtual basic editor esélytelen, ami szerintem így nézne ki...:
Sub Felfelényíl2_Kattintás()
Worksheets("NPV").Activate
Activecell.Value=ActiveCell.Value+ActiveCell.Value*1/100End Sub
Azt sem tudom, ez így jó lenne-e egyébként, de az már más kérdés.
Csatoltam 2 képet, amin látszik, hogy nem az adatvédelemmel van probléma... és ha még valami infó hiányzik esetleg kérdezzetek légyszi, magamtól nem tudom mi kéne még!
Hát pont erről szól a DoEvents. Visszaadja a vezérlést a windowsnak, hogy tudja feldolgozni a felhasználói inputokat. Cserébe sokkal lassabb a makró futása.
Nekem sikerült közben mást csinálni, mondjuk csak cellák tartalmát szerkesztettem. Másold be ezt egy VBA modulba és indítsd el a StartTimer makrót. 10 másodpercenként ki fogja írni, hogy "hi", kivéve ha pont szerkesztesz egy cellát. Ebben az esetben csak akkor írja ki, ha befejezted a szerkesztést.
Szükségem van rá. Megjegyzem a VBA-ban rejtetten da van hasonló. Ilyen pl. az autoupdate ami beállított idő után a megosztott filet aktualizálja az összes usernél aki a megosztásban részt vesz. Most amilyen filet írok abban ez igen jól jön. Ennek az a hiányossága, hogy egy funkciós azaz másra nem képes, egyedül az updatelési időt lehet befolyásolni.
Azt nem tudom lehet-e, de nem gondolom, hogy érdemes.
Képzeld el, hogy békésen dolgozgatsz egyszer csak az Excel odafut, lenyom egy sallert, kikapja a kezedből a munkalapot és elrohan.
És mindezt attól függetlenül, hgoy éppen mit csinál a user.
Értem én, hogy vannak olyan élethelyzetek amikor ez hasznos lehet (pld dolgozatírás), de azt gondolom, hogy ez annyira rétegigény, hogy nem biztos, hogy a MS-nél figyelembe vették, vagyis leprogramozták volna.
Valószínűleg nem emlékszel de te is meg más is legalább 4-5 óta egy-egy részletben besegítettetek. Nem csak te.
Most egy érdekes kérdésem lenne. Van -e az Excelnek lehetősége olyan timert, órát futtatni a háttérben ami a beállított idő után makrót indít. Futási ideje alatt lehessen mást csinálni a táblában. A normál timer alatt ez nem lehetséges.
Meg olyan is van, hogy nincs megnyitva a makrót tartalmazó füzet. Csinál az ember egy makrót de nem ixeli ki a 'minden füzetben' opciót. Ilyenkor aztán nincs makró addig, amig meg nem nyitja ezt a füzetet is. Ergo nem árt megnézni az alt+F8 makrólistáját, hogy miket mutat.
Ha esetleg teljesen kezdő lennél makró ügyben: Az excel menüben Eszközök->Beállítások->Biztonság fül, majd ezen belül makróvédelem gomb után válaszd a közepes biztonsági szintet. Ez majd mindig figyelmeztet, hogy ha egy munkafüzetben makrók vannak, és engedélyezheted a használatukat.
Meg azt is említsd meg, hogy mit jelent az, hogy nem tudsz makrót használni? Van egy makrót tartalmazó munkafüzeted de nem tudod lefuttatni a makrót vagy van egy munkafüzeted, akarsz benne pld. makrót rögzíteni de nem lehet.
Meg láttunk itt már olyat is, hogy Open Office táblázatkezelőjén próbáltak excel-es dolgokat csinálni, de előre is elnézést kérek ha ennél szofisztikáltabb a táblázatkezelési tudományod.
sziasztok! légyszi írja már meg nekem, miért nem tudok makrókat használni? már elvileg a letiltást feloldottam az adatvédelmi beállításoknál, de semmi változás :( más ötlet esetleg?
Nemcsak adatbázissal. Az ECM (elektronikus tartalomkezelő) rendszerek látva a Google Docs sikerét, az online szerkesztést is lassan-lassan el kezdik támogatni. Pl. a Sharepoint 2013 már támogatja az ún. co-authoring funkciót, amivel egyszerre több ember is dolgozhat az állományon.
De már a "hagyományos" CMS támogatás is nagy előny a megosztott munkafüzethez képest. Ahol több ember dolgozik fontos állományokon mindenképpen hasznos egy ilyen rendszert bevezetni, open-sourceban az Alfresco és a Nuxeo is támogatja az Office integrációt. Még egy kisebb cégnél is lehet találni egy olyan mai PC-t, amire virtualizálva egy Linux-Alfresco combó feltelepíthető.
Valódi real-time funkciót szerintem csak adatbázissal lehet elérni. De amikor elmenti valaki a táblázatot, akkor mindig bejönnek a többiek módosításai.
Azt megoldottam, hogy megosztott Ezcel file-ben történt változás 5 perc múlva megjelenjen a többieknél. Klasszul működik. Van -e olyan lehetőség, hogy real time történjen ez. Bár kérdéses, hogy így van -e értelme.
A másik, ez fontosabb. Van -e olyan lehetőség, hogy a task-bárra csukott file felugrik, kinyílik vagy egyéb jelzést küld ha valaki a megosztásban változtat,beleír a táblába?
Itt köszönném meg, hogy neked és a többieknek azt a segítséget amikkel túllöktetek egy-egy holtponton. Amit készítettem annak csodájára járnak a munkahelyemen. Amit készítettem az köszönő viszonyban sincs az eredeti Excel funkciójához viszony elegáns és kiválóan, gyorsan működik. Volt aki odajött hozzám gratulálni.
A százéves álmoskönyv, valamint a bevezetés a programozásba tankönyvek nulladik oldala szerint for ciklus fejét a cikluson belül változtatni semmi jót nem jelent, és tetszőlegesen nagy káosz előidézésére alkalmas.
Gondold meg még egyszer, és ha még mindig ezt szeretnéd csinálni, akkor ne csináld. :-)
Azt szeretném kérdezni, hogy ha egy tartományban egy for next ciklust alkalmazok, és ezen a cikluson belül sorokat szúrok be a tartományba, akkor hogy lehet a ciklus végét megnövelni a beszúrt sorok számával?
A kis példa hozzá:
Sub ins() a = ActiveSheet.UsedRange For i = 1 To UBound(a) If Cells(i, 1) = 1 Then Range(Cells(i, 1), Cells(i, 10)).insert End If Next End Sub
A probléma az, hogy a ciklus csak az eredeti tartomány végéig megy, és nem a beszúrt sorok számával növeltig.
Ha a feladat olyan, hogy mindig ugyanabból az adatbázisból, ugyanazt a lekérdezést hajtod végre, és ugyanazt a kimutatást az adatokból, csak mondjuk naponta más adatok vannak, akkor édemes lehet a munkafüzetből egy direkt kapcsolat az adatbázissal, és akkor csak egyszer kell megcsinálni mindent, utána csak az adatfrissítés gombokat nyomogatni minden nap, és legfeljebb egy snapshot-ot menteni, ha szükséges.
Ez mondjuk nem válasz a kérdésedre, de hátha betalál :o)
Köszönöm a választ. Akkor ezek szerint fogok eljárni... csak nem tudom felfogni, hogy akkor mi a fenének van lehetőség saját stílust definiálni, ha nem tudom használni :(
Én azt csinálnám, hogy létrehozom a kívánt kimutatás stílust egy üres munkafüzetben, majd a munkafüzetet elmentem sablonként.
Ezután ha tudod, hogy kimutatást kell csinálj, akkor nem egy "sima" új munkafüzetet hozol létre (normal template) hanem a fent elmentett sablon megnyitásával.
Persze lehet még azt csinálni, hogy egy makróval csináltatod meg a formázást, de az alapján amit leírtál nem nagyon tűnik indokoltnak...
Excel 2010-t használok. Nagyon sok kimutatást készítek SQL*l leválogatott adatbázisból. Van egy fajta kimutatás stílus, amit előszeretettel alkalmazok, de ezt minden egyes kimutatásban, újra és úrja be kell állítanom.
Gondoltam, a kimutatáseszközöktervezéskimutatásstílusokkimutatás stílus létrehozása menüpont alatt, elkészítem a nekem teszőt, s utána már csak egy kattintás, és formájában, színvilágában olyan lesz amilyet szeretek. Tévedtem. Hiába nyomkodom, az alapértelmezettként való mentést, csak abban a fájlban hajlandó alkalmazni a stílust a további kimutatások elkészítése során. De ha egy új leválogatásban dolgozom, akkor ez az egyedi stílus beállítás nem látszik, nem elérhető.
Én nem csinálok valami jól? Nem akkor van értelme a sok-sok beállítgatásnak, ha az utána bármely fájlban elérhető lenne?
Kulcsmező nélkül is meg lehet oldani az AB.SZUM függvénnyel. Előnye ennek a megoldásnak, hogy tetszőleges bonyolultságú feltételt meg lehet vele fogalmazni, ami a jövőben esetleg szükséges lehet.
Amíg nincsenek 2013 évnél későbbi adataid a táblázatban, addig a 2013 éviekre müködik a szumha(A:A;">41274";B:B). A márciusi adatok összegzésere attól tartok muszáj lesz a kulcsmezős megoldást választanod.
Van-e olyan módja a szumha fgv-nek, hogy az A oszlop YYYY.MM.DD formátumú dátumból csak azokat adja össze, ahol az év 2013? A megoldás jelen esetben 610+530 Ft lenne. És oylan, hogy csak a 2013. 3. havi tételeket adja össze?
Mivel nem helytakarkos, nem akarok a C oszlopba egy ÉV(A2) értéket, a D-be megy egy ÉV(A2)&HÓNAP(A2) kulcsmezőt létrehozni és ezekre hivatkozva megadni a SZUMHA fgv-eket.
Makrüt simán nem tudok még programozni, így elvetném, emrt jelen tudásom szerint úgysem érteném, amit írtok.
Szóval a fenti problémára van makró nélküli és kulcsmező képzés nélküli megoldás?
A megoldás az, hogy mindegyik kis piros háromszöget manuálisan eltakarod egy ugyanakkora kis fehér háromszöggel. És miközben azt írom, hogy manuálisan, természetesen arra gondolok, hogy VBA-n keresztül.
Nem a világ legelegánsabb megoldása, de legalább műxik.
A kód itt lentebb, csak a kis háromszögek színét kell fehérre átírni (a lenti példában azért kék, hogy nyomtatáskor látszódjon).
Én nem tudok ilyenről. Illetve De. :) A cella háttérszínét állítsd pirosra!
Na de viccet félre téve, 5 perc keresgélés után nem találtam semmit.
Ami eszembe jut pótlólagos megoldásként:
Ha megteheted, használj megjegyzés helyett Érvényesítést. Bár ha az egeret a cella fölé viszed, attól még jelenik meg az üzenet, hanem ki is kell választani.
Azt szeretném kérdezni, hogy a cellákhoz beszúrt megjegyzések esetén van-e mód arra, hogy ne látszódjon az a kis piros zászlócska (comment indicator) az excel cella jobb felső sarkában úgy, hogy ha az egeret a cellához viszem, akkor látszódjon a megjegyzés?
Addig eljutottam, hogy az excel beállításoknál a speciális rovatban be lehet állítani, hogy látszódjon-e a jelölés, vagy sem, de ha azt állítjuk be, hogy ne látszódjon, akkor maga a bejegyzés sem látszik.
Makróban is csak három beállítást láttam erre (Application.DisplayCommentIndicator-nál) xlCommentAndIndicator, xlCommentIndicatorOnly és xlNoIndicator, mely utóbbi ugyanazt eredményezi, mint a speciális beállításoknál a "nem látszódnak a megjegyzések és a jelölésük". Nekem arra lenne szükségem, hogy látszódnak a megjegyzések (ha az egeret a cella fölé viszem), de nem látszódnak a jelölésük.
Na de akkor pont azt kéne csinálnod, amit írtam. Mindaddig, amíg nincs rá garancia, hogy csak egy nevet hagyhatsz ki, nem írhatod a kihagyott nevet az oszlop alá. A legegyszerűbb melléírni egy darabtelit a harmadik oszlopba. Esetleg egy HA függvénybe ágyazva, hogy szám helyett szöveg jelenjen meg. HA(darabteli...=1;"";"Hiányzik!")
Bár a kérdésed nem tartalmaz grízes tésztát, megpróbálok válaszolni: ha jól értelek, neked a DARABTELI függvény lelki világával kéne megismerkedned, amivel a harmadik oszlopban jelezhetnéd, hogy a második oszlopban szereplő név (pl. B3) hányszor fordul elő az első oszlopban (A:A). Ha 1 jön ki, akkor nyert, ha több vagy kevesebb, akkor nem. MÁr ha nem ragaszkodsz ahhoz, hogy a második oszlop alján legyen a számláló, amit nem is nagyon tudok értelmezni, de szerinte sokkal kevesebb információt ad (hiszen érdekesebb, hogy ki maradt ki, mint hogy hányan).
Delila is azt mondta, érdemes ide benézni olykor, mert mindig tanul valamit az ember. Te például tudtad, hogy miben hasonlít a tökfőzelék és a grízestészta?
Amit viszont magyarra Pomádénak vagy minek fordítottak.
Nekem erről az alulkvalifikált "dara" szóról az SQL hibaüzenete jut eszembe, amit egy gyengébben sikerült join után kapok: dara is ambigous.
Vagy mintha több osztálynak is lenne egyforma nevű metódusa, de osztálynév nélkül akarnál hivatkozni rá, mert az a hülye számítógép értse meg.
Mert kérem nem csak árpadara, zabdara, kukoricadara, búzadara és az arab pénzváltó, Abu Dara van, de még sódara is, amivel az utakat szórják télen. Na azt meg végképpen nem szeretném a grízes tésztámban vagy a tejbegrízemben látni. Akkor már inkább Olivia egy kád tejben (harminc évvel ezelőtt).
Különben meg súlyosan ez a legoffmentesebb topik, amerre járok, egy kis szépítés nem árt így hétvégén. :-)
Valószínűleg a "dara" szó közelebb áll a nevezett megnyilvánulás (jelenség, dolog) esszenciájához, különösen ha tekintetbe vesszük ama híres szórakoztatóipari klasszikust, amelyet John Travolta és Olivia Newton John bájoskodtak végig anno még a múlt században. Nem is merek rá gondolni, hogy esetleg a "gríz" szó eredete kapcsolatban állhat az azonos hangalakú angol szóval, mert ha megteszem, akkor a "tejbegríz", "grízestészta" és más hasonló szavak jelentése új - és hát nem annyira vonzó - dimenziót kap.
(Aki pedig azt meri hinni, hogy ez itt mind off, azt megkérem, hogy ne tévedjen ilyen nagyokat. Mert ugyanis ha beírom a fenti szöveget a munkafüzetem Module1 nevű moduljába, akkor hibaüzenetet kapok. Innentől kezdve pedig a tejbegríz Excel-vonatkozása nyilvánvaló és letagadhatatlan.)
Miután a dara a gríznek a hivatalos neve. Más szóval dara a neve, de gríznek hívják. Ez pont olyan, mint a Széll Kálmán tér, amit Moszkva térnek hívnak.
Az előbbi összefüggésre egyébként nem nehéz rájönni, hiszen a tejbegríz szakkifejezést valószínűleg az is hallotta már, aki képes darának nevezni a grízt.
De én akartam! Sőt, volt olyan pillanat, amikor megfogadtam, hogy inkább mindig hagyok egy pár pixel széles üres A oszlopot a bal szélén, és csak a B-től kezdek rejteni.
Főtt tészta + pirított búzadara felpárolva a pirítás után, mindez megkeverve és ízlés szerint sósan vagy gyümölcslekvárral édesen ehető. Én spec. szeretem. Annó az általános iskolai menzán alaposan el tudták rontani, mivel nem főzték a tésztát, hanem szétáztatták és nem pirították a darát, csak lefőzték, de amit én csinálok, az nem hasonlít a menzáshoz :)
amúgy ha mondjuk "A" oszlop van elrejtve akkor a "B" oszlopot kijelölve és az egeret a bal "széléig" húzva kijelöli a rejtett "A" oszlopot is. Aztán mehet a felfedés. (Én legalábbis így szoktam csinálni)
Márhogy persze mindezt nem most, hanem pár hónapja, mikor melóban szembejött egy olyan tábla, aminek el volt rejtve az első 3 oszlopa és muszáj volt módosítanom az ott írtakat. Ha jól rémlik, akkor kétnapi guglizás volt az ára :)
Nagyon hülye kérdés: hogy a búbánatba lehet felfedni az elrejtett a:g oszlopokat? A minden kijelölése, a cellanév direkt begépelése nem segített, a felfedés gomb csak munkafüzetet akar felfedni... Excel 2007.
Van amikor egyes VBA+ban írt rutinjaimhoz az excel (2007) nem akar gyorsbillentyűt rendelni. Az alt+F8 ablakban látja a makrót, de amikor rákattintok, csak a 'Létrehozás' gombot aktiválja (vajon minek, amikor már létre van hozva ???), a Lépésenként, a Szerkesztés, a Törlés és az Egyebek gombokat nem. Mi lehet ezeknél a makróknál elállítódva? És hogyan lehet megszüntetni?
Volt már ilyen, de aztán megszűnt. Most újra kezdi. Eléggé bosszantó.
Igazad van, sima FKERES. Azt ugyanis nem részletezte Slient kartács, hogy ha D4 értéke nincs benne az A1:A100-ban, akkor mi legyen. Biztos jó neki a hibaüzenet is :o)
sziasztok! Segítségre lenne szükségem, mert az én megoldásom túl bonyolult lenne, és hátha tudtok egyszerűbbet. Na szóval ha a D4-es mezőben az A1-től A100-ig szereplő különböző nevek egyike szerepel, akkor szorozza be a C4-es mezőben szereplő számot az adott névhez tartozó számmal. Minden névhez(A1-től A100-ig) tartozik egy szám(B1-től B100-ig). 2010-es excelt használok. Köszönöm!!!
Az óvó nénit milyen közelről érintette, mikor nem hitte el, hogy felmentésem van belőle, és meg akart tömni. Moshatta rendesen a ruháit utána... Én szóltam pedig.
Na szóval...olyan is van, hogy az excel rossz lábbal ébred és összeesküdik ellenünk...vagy csak merő szórakozásból szivatja az embert, mert csak mi képzeljük hogy egy logikusan felépített program...neki lelke van :-D, hóbortos.
Ez egy xls volt, nem xlsx, ahogy mondtam...
Nos, a megoldás az volt, hogy ebből csináltam xlsm-et...macro enabled file-t 2007-es verziót...
Így már nem volt semmi baja a szerencsétlennek.
Volt benne pivot chart és olyan chart is, ami pivotból összeolvasott sorokra hivatkozott, továbbá macro...
Úgy tűnik 2003-as verzió képessét már meghaladta ez a dolog :-).
De most úgy tűnik összeszedte magát én meg megnyugodtam :-D!
Köszi a segítséget!
Ps. Mennyi új arc :-D...látszik rég jártam erre :-D...
Ez érdekes... A "jól számoló" Excelt lementve (xls), megnyitva a legfrissebb LibreOffice 4.0-ban, az eredmény tényleg nulla. Nesze neked Excel-kompatibiltás :(
Ha rossz nyelven írná be a függvényt akkor hibát kapna, nem pedig nullát mint eredményt. Bár sose dolgoztam Open Office-ban, szóval csak találgatok. A kérdező majd pontot rak ennek a kérdésnek a végére mert megmondja, hogy milyen szoftver milyen nyelvű változatával dolgozik.