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.
Sziasztok! A kérdésem/problémám a következő: Ha a két szám összege (a2+b2) nagyobb, mint 100, akkor szorozd meg 0,1 -el, ha kisebb akkor szorozd meg 20-al! Ha az eredmény 2 jegyű szám, akkor az eredménycella háttere legyen piros színű. (A4 helyen) a=50-tel (B4 helyen) b:55-tel.
Erre mi a képlelet? Hogy lehet kiszámolni az alábbiak alapján?
Egy 3 oszlopos dátum esetében (A oszlop Év, B oszlop Hónap, C oszlop Nap) szeretném a beírást egyszerűsíteni. Ha a C oszlopot kitöltöm, lehet automatizálni, hogy akkor az A és B oszlopba beíródjon az előtte lévő sor ÉV és Hó száma?
A következő kiegészítéshez szeretnék újra segítséget kérni tőletek. Van egy táblázatom A-tól I oszlopig. I oszlop tartalma megegyezik A oszlopéval. =A1
Azt szeretném, ha a D oszlopba beírom, hogy névtelen, akkor az I oszlopba írja be, hogy nincs. De maradjon meg ez az =A1 tulajdonsága az I oszlopnak, ha az A oszlopba beírásra kerül valami. (Tehát vagy az A oszlopba kerül beírás, vagy a D oszlopba.)
A fullscreen=true után még megmaradt legfelső sort (aminek a jobb sarkában van pl. az ablakminimalizáló ikon, baloldalán a "Microsoft Excel felirat és mellette a nyitott fájl neve, azt el lehet-e tüntetni parancssorral?
A képletek értékre cserélése akkor működik abban a formában, amit írtam, ha egybefüggő téglalap alakú a tartomány. Ha nem akkor a for each cl in tartomany.cells: cl.value=cl.value :next cseréli le a képleteket értékre.
A saveas sor meg fogja kérdezni, hogy makró nélkül akarod-e elmenteni a munkafüzetet, ha makrók is tartoznak a main-hoz.
Ezt a kérdést el lehet "nyomni", ha előtte beírod az Application.DisplayAlerts=false sort, utána pedig Application.DisplayAlerts=true, hogy ismét megkaphasd az excel üzeneteit.
Sziasztok! Az következő fájlkészítés egyszerűsítésében szeretnék segítséget kérni, Excel 2007-ben. Van egy gen.xlsm fájlom, ide a megnyitáskor bejön több külső fájlból több adat meghatározott helyekre, ezen adatokból egy 'main' nevű munkalapon egy csomó számítás történik és az itt található értékek lennének a végeredmény, amivel tovább kell dolgozom. Jelenleg ez úgy történik, hogy a gen.xlsm bezárásakor menti az adatokat, majd manuálisan megnyitva a riport.xlsm-et egy ugyanolyan 'main' nevű munkalapra átszippantja az értékeket a gen.xlsm-ből, és menti a fájlt riport_ÉÉÉÉHHNN.xlsx néven. Tudtok erre egy egyszerűbb megoldást javasolni, amit akár a gen.xlsm-be is be tudnék építeni? A cél az lenne, hogy megnyitom a fájlt és a bezáráskor ez az egész 'main' exportálása megtörténjen minden formázással, de egy bizonyos tartományban csak a számított értékek exportjával. Köszi előre is bármilyen ötletet!
Arra esetleg van lehetőség, hogy amikor bezárom a dokumentumot, akkor ne maradjon a fullscreen beállítás? Mert ez a fullscreen beállítás nem dokumentumra érvényes, hanem az Excel ezután mindent úgy nyit meg.
Még most is elég homályos a dolog, de az indulásnál sokmindent el lehet tüntetni.
A ribbont elrejtheted, ha elrejtve mented el, akkor csak a cimsorok fognak megjelenni. Van rá VBA parancs is, 2007-ben más, mint felette.
szerkesztőléc eltüntetése:
application.displayformulabar=false
fejléc eltüntetése:
állapotsor eltüntetése
application.displaystatusbar=false
sor/oszlopfejléc eltüntetése
activewindow.displayheadings=false
Kipróbálhatod még a teljes képernyőre állítást:
application.displayfullscreen=true
Ezt írja róla a help:
"Full-screen mode maximizes the application window so that it fills the entire screen and hides the application title bar. Toolbars, the status bar, and the formula bar maintain separate display settings for full-screen mode and normal mode."
Ha ez nem elég, akkor mutass egy képet légyszives az induló képernyődről, értelmezhető méretben.
Így utólag elolvasva, tényleg elég pontatlan a kérdés.
Szóval az lenne a helyzet, hogy van egy makrós térkép-adatbázisom, két munkafüzettel. Az elsőn van maga a térkép, a másodikon az adatbázis. Az első munkafüzet esetében rengeteg helyet elfoglal alapesetben az Excel szerkesztő és egyéb panelje, ezért azon gondolkoztam, hogy nem lehetne-e ezeket alapértelmezésben kiszedni onnan. Van-e olyan makró, ami a dokumentum megnyitásakor az adott munkalap esetében kitakarja a szerkesztőpanelt, és csak maga a táblázat rész, jelen esetben a térkép, látszik - nagyobb olvasói felület.
Jelenleg 2007-től felfelé kompatibilis az összes makró, így olyan megoldás érekelne, ami ezekkel a verziókkal működik.
Sajnos nem túl világos a kérdésed. Mivel egy üres munkafüzetet ha megnyitsz, abban is csak a cellák látszanak....
(Meg persze a menü, stb.)
Neked is szól a kérdés: Milyen excel verziót használsz?
Pontosítsd légy szíves a problémádat: mi az amit szeretnél látni megnyitás után a képernyőn. Mert ha olyat, ami egy üres munkafüzet megnyitásakor, akkor csak egy üres munkalapot kell betenned és azt aktiválni megnyitáskor.
"gombnyomásra pedig a rendes szerkesztői nézet" - ebből azt gondolom, mást is szeretnél még.
Az lenne a kérdésem, hogy hogyan tudnék úgy publikálni dokumentumot, hogy az összes panel rejtve van, mivel jórészt grafikus nézetről lenne szó. Teheát azt szeretném beállítani, hogy alapból úgy nyissa meg a dokumentumot, hogy csak a cellák látszanak, semmi más.
Ezen felül szeretnék egy csinálni egy olyan makrót, amivel vissza tudok váltani alap (szerkesztő) nézetre.
Tehát megnyitáskor csak a cellák, gombnyomásra pedig a rendes szerkesztői nézet.
Hogyan lehet megoldani azt, hogy egy pivottáblában csak azok a sorok jelenjenek meg, amelyekben 100 000-nél nagyobb szám van. Nyilván nem manuális megoldásra gondolok.
segítséget szeretnék kérni egy ügyben. Van egy sok rekordot tartalmazó adatbázisom (3-4000 rekord). Ezeket a rekordokat szeretném megjeleníteni weblapon kereshető (talán lenyíló ablak?) formátumban. Sajnos én nem értek hozzá, de remélem van olyan valaki, akinek ez ujjgyakorlat.
Az is nagy segítség lenne, ha esetleg megmondjátok, hogy ehhez hol találok segítséget.
Az mitől van, hogy csinálok egy makrót elmentem personal.xls-be, hogy tudjam majd használni az összes megnyitott excelemben.
Ha megnyitok egy excel fájlt akkor nem látok semmit se a makrók közül, de ha elindítom az excelt, ott megnyitom a kívánt fájlt, akkor már igen. Ez így elég kényelmetlen, nem tudjátok véletlenül, hogy ezt, hogy lehet megoldani, hogy akkor is lássam, ha csak rögtön megnyitom az excel-t.
Sub SelectUnlockedCells() Dim WorkRange As Range Dim FoundCells As Range Dim Cell As Range Set WorkRange = ActiveSheet.UsedRange For Each Cell In WorkRange If Cell.Locked = False Then If FoundCells Is Nothing Then Set FoundCells = Cell Else Set FoundCells = Union(FoundCells, Cell) End If End If Next Cell If FoundCells Is Nothing Then MsgBox "All cells are locked."
Tud valaki arra megoldást, hogy lehet-e Excelbe olyat csinálni, hogy egy munkalapban melynek cellái pár kivétellel védettek egy gombnyomásra törlődjenek a nem védett cellák tartalmai (talán mondjuk egyszer rákérdezhetne, hogy biztos vagy-e benne), hogy ne kelljen mindig törölgetni egyesével? Esetleg makró?
Segítséget szeretnék kérni tőletek! Hogyan tudnám megoldani azt, hogy a grafikonom tengelyfelirat formátuma megváltozzon az éééé.hhhh illetve a hh.éééé formátumok között ha egy cellaértékem 0 vagy 1.
Excel 2010-et használok és fut alatta egy nem túl egyszerű táblázat. A munkafüzet több lapból áll és szeretném megoldani egy makró segítségével, hogy egy munkalapot PDF-re konvertáljon és mailként elküldje.
Sajnos a makró programozáshoz nem értek, csak a már leprogramozott markó beszerkesztéséhez.
Úgy gondoltam, hogy csinálok egy gombot a küldendő munkalapon, ami alatt futna a makró és kattintásra csinálná végig az alábbi utasításokat. Na de itt akadtam el.
Szeretném, ha a makró az adott munkalap nyomtatási területét alakítaná át PDF-re, majd beillesztené egy outlook-os mailbe. Ha esetleg megoldható, hogy mindig kitöltse a címzettek rész az előre definiált e-mail címekkel (mert sok helyre kellene küldeni és mindig ugyan oda) és a tárgyba meg beírna egy olyat, hogy "adatok", az lenne a legtutibb.
Az If és az End If közé írd az átalakítást! Érdemes még 2 sort bevinni.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [A1:A3]) Is Nothing Then Application.EnableEvents = False Target.Value = Application.Proper(Target.Value) Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Target.Value = Application.Proper(Target) If Not Intersect(Target, [A1:A3]) Is Nothing Then End If End Sub
Ha ezt használtam, akkor is hibaüzenettel omlott össze :-(
A Change eseményben érdemes megadnod a területet, ahol végre akarod hajtatni az átalakítást, másképp minden bevitt értéket nagy kezdőbetűsre vált. A G2:G10 tartományhoz pl. így adhatod meg:
If Not Intersect(Target, [G2:G100]) Is Nothing Then
Miért nem a Application.Proper(Target) formát használod?
Private Sub Worksheet_Change(ByVal Target As Range) Target.Value = StrConv(Target.Value, vbProperCase) If Not Intersect(Range("A1"), Target) Is Nothing Then End If End Sub
Ebból egy hibaüzenet jelentkezik...
Próbáltam az ottani leírásoknak megfelelően módosítani, de akkor is ezt adja :-(
Köszi a segítséget, közben elkészült a teljes, 2 napig küszködtem vele megállás nélkül. Megcsináltam 72 elemre a lekérdezést, de arra jutottam, hogy ennyi adat egy excel fájlban túl sok, úgyhogy szét fogom szedni 3 külön fájlra, és néhány elemet kihagyok belőle, de majd csak holnap, mert mára kezdem nagyon unni. Kb olyan 15 sornyi adat amit még kibír úgy hogy egy percesre van állítva a frissítés. Szóval külön 3 fájl lesz a forex, az indices és a stocks, amiket 3 különböző ablakban futtattok, így párhuzamosan bírja csinálni azt amit eddig csak egymás után.
Én délelőtt megnéztem, kb arra gondoltam, hogy alaposabban átnézném az oldalt, esetleg máshonnan el lehet érni ugyanazt, csak elfogadhatóbb, az excel által kezelhetőbb struktúrában.
Amit pár napja akartam, azt többé kevésbé sikerült megoldani, most olyan gondom van, hogy ha az excelben rámegyek, hogy összes frissítése, akkor elég sok ideig tart (kbmásfél- két perc), pedig netsebesség van bőven, a procim i3 és 8gb ramom van, szóval minden adott, hogy gyorsabb legyen. Azt csinálja, hogy egyszerre csak egyet frissít, és ha az kész, akkor a következőt. Nem lehetne azt megoldani, hogy ne egyesével frissítsen, hanem egyszerre az összeset? Nem arra gondolok, hogy az adatok fülnél menjek rá az összes frissítése gombra, mert azt csinálom, és végigfrissíti az összeset, csak nem egy pillanatba az összeset.
Open offical csináltam meg eredetileg, és megnyitottam excel 2013-ban és lementettem makróbarát változatban is.
Még befejezetlen, de azért légyszi nézzetek rá, hogy hogy lehetne megoldani amit szeretnék. Meg azt is tudom, hogy az excel változatban majd a cellahivatkozásokat újra kell csinálni, de ez a dolog szempontjából lényegtelen. Felraktam mindkét fájlt egy rarban a datára.
Olyan kérdésem lenne, hogy hogy lehet párosítani Excelben?
Pl van 2-2 oszlopom:
A B C D
Marcsi 51 Bela 30
Janos 60 Anna 77
Tomi 120 Mate 99
És úgy kell összepárosítani a neveket, hogy a B, D oszlopban vannak a súlyok, és a szabály, hogy B oszlopban lévő súly nagyobb vagy egyenlő lehet a D-vel.
Azaz Marcsi-t Mateval nem lehet, csak Belaval. És Jánosnak nem lesz párja. Mivel sorba lesz előtte rendezve növekvőbe mindkét rész.
Ha lehetséges, akkor ne html formátumot kérj az SAP-tól. Képes az akár excel formátumot is adni neked, de minimum szövegfájlt, amit könnyedén be tudsz olvasni.
Helló, ismét szeretnék segítséget kérni, ha lehetséges.
Hogyan tudnám megoldani a következő problémámat: lehetséges-e egy olyan módszer, amivel könnyedén meg tudnám valósítani azt, hogy az SAP-ból kimentett html.-ből bizonyos adatokat ültessek át egy adott excel táblázat megfelelő celláiba?
A html tartalmazza az alkatrész kódját, nevét, a szükséges mennyiséget és a tárolási helyeket.
Az excelben megtalálható ugyancsak az alkatrész kódja, megnevezése, és a szükséges mennyiség cellája. Ezek a cellák, amik naponta más értéket kapnak, az SAP.-ból kinyert listából. Ezek az alkatrészek több irányba lesznek szétosztva, egy-egy alkatrészfajta csak bizonyos oszlopban jelenik meg az excel táblázaton. Az excel négy részre van felosztva, ami megfelel négy termelési egységnek. Minden egyes termelési egység tartalmaz 3 oszlopot, az A -ban vannak az adott egység által használt alkatrészek kódjai, a B-ben a megnevezésük, és a C-ben lenne a mennyiségük. Ennek megfelelően a három további egység: D-E-F; G-H-I; J-K-L.
Kösz a dicséretet. A programozást autodidakta módon tanultam, aztán sok évig abból éltem. Az Excel programozást csak 3 éve kezdtem megtanulni, de a szemléletben (felhasználóbarátság) sokat segítettek az előző évek rutinjai.
Ami a kompatibilitást illeti, Excel 2010 alatt írtam a programot, de a 2003-as verzió alatt is működik. Ha jól sejtem, Te is azzal használod. A korábbi Excel verziókat nem ismerem, nem tudom, működik-e velük.
A megoldáshoz nézd meg, hogy a VBA ablakban fenn a Tools->References alatt látsz-e olyan sort kipipálva, hogy: Microsoft Excel 8.0 Object Library, esetleg a 8.0 helyén más (Excel 2010-nél pl. 14.0) áll. Ha nincs ilyen, akkor az alatta levők közt meg kellene keresni és kipipálni, ha jól értem a Microsoft erre vonatkozó tanácsát: http://support2.microsoft.com/kb/245115
Ha ez nem megy, akkor talán Feri tud mondani erre valamit.
Addig is a Target.Value = Application.Proper(Target.Value) sor helyén próbáld meg a következőt:
A makrón keresztül jutottam oda. Ez így már működik. (Igaz mindig hibaüzenettel lép ki.) Köszönöm mindenkinek. Valóban segítőkész csapat van itt, ami igen ritka.
Amúgy az ilyen "Nagy-Bandó András" meg "Dr. Déki-Lakatos Sándor" tip. neveknél elég cumi a dolog valóban, főleg ha ez vmi hivatalos címzéshez, számlázáshoz stb. kell. :)
Attól függ! Ha pl egy cellába kerül a név hogy Kis Péter és ennek bármilyen betűje el van írva, úgy neccesebb, pláne ha ilyen is előfordul mint néha nálam, hogy duplázott nagybetű, azaz KIs PÉter.
Nem tudom ezekben hogy működne egy helyesírás ellenőrző első körben vagy második körben van olyan hogy beállítások közt vhol eldugva, hogy automatikusan nagy betűre javítsa a cella kezdőbetűit. Viszont ennek a külön cellákra szeparált neveknél van esélye hogy jó legyen és azt hiszem visszamenőlegesen nem javít, csak új adatoknál. Max egy újbóli copy+paste esetén, talán.
Ha viszont tutira akarsz menni, kimásolod a kérdéses oszlopokat és Notepad++ progival megcsinálod a szó eleji nagybetű konverziót asszem szerkesztés menü alja felé van ilyen funkció, majd visszamásolod az excelbe.
Hova írtad be? Alt + F11 után kettőt kattints annak a munkalapnak a nevére, ahol majd az adatokat írod, és a felnyíló ablakba másold be a Feri által megadott 3 sort.
Ezután menj vissza és írj be be a munkalapra valamit kisbetűvel, majd Enter, vagy más módon hagyd el a cellát, és nézd meg az eredményt!
Ebben az esetben úgy gondolom, csak annyi, hogy a második sor rövidebb.
De általában véve a hibakezelésben van különbség.
Pl.
A worksheetfunction.match hibát generál, ha nem találja meg az adatot - úgy ahogy a cellába is #hiányzik! -ot ír ki.
Ezzel szemben az application.match nem generál hibát, hanem az adott változóba beleteszi a hibaértéket is (ehhez persze variant típust kell használni).
Tehát: sor=worksheetfunction.match "hibát" kiabál, ha nem találja meg az adatot,
sor=application.match esetén pedig magában a sor változóban lesz a hibaérték.
A hibakezelés első esetben:
on error resume next
sor=worsheetfunction.match
if err<> 0 then
' itt nézed meg, hogy milyen hiba keletkezett
endif
on error goto 0
A második esetben pedig:
sor =application.match
if iserror(sor) then
' ide írhatod, mit csináljon
endif
vagy: másikváltozó=iferror(sor,valamimás) - abban az esetben ha az excel verzió már ismeri az iferror függvényt.
Természetesen mindkét megoldás (ws vagy app) működik, de nem minden worsheetfunction-nak van application "párja".
Sziasztok, más oldalon már leírtam egyszer a problémámat,de ott egyelőre nem tudtak segíteni, szóval ide is bemásolom:
Olyat szeretnék megvalósítnai, hogy az investing.com nevű weboldalról szeretnék lekérni infókat. Itt folyamatosan frissülnek a dolgok, és azt szeretném, ha a "program" bizonyos időközönként lekérdezné az adatokat.
Csináltam pár képet, hogy miről is lenne szó.
Erre a weblapra úgy juttok el, ha a főoldalom lévő fölső menüsorban rámentek a technical menüre azon belül a technical analysis nevűre.
Ami engem érdekelne, az a 1 perces, 5 perces, és 15 perces idősíkok adatai. ahogy azt a képen bekarikáztam. Az idősíkokon belül pedig a technical indicators rész érdekel, erről is csináltam képet.
Próbáltam a microsoft excel programmal, hogy az adatok menüben a weblapról részt választottam, de ami nekem kéne azokat pont nem engedi beolvasni, legalábbis nincs ott olyan kis nyilacska. Minenféle megoldásra nyitott vagyok, amiben lehetőség szerint nem kell programkódokat írni. Nem kérem, hogy akárki csinálja meg helyettem, mert nem csak egy elemre akarnám, csak valami bemutató anyagot szeretnék képekkel illusztrálva, hogy hogyan tudnám ezt megcsinálni.
Ja és még annyit, hogy a technical indicators résznél azért karikáztam be az alján levő, gyakorlatilag összegző részt, mert bőven elég lenne csak azokat a számokat beolvasni (ez 0 és 11 közötti szám lehet), illetve a volatility résznél, hogy high, vagy low.
Csináltam egy kis excell táblázatot, hogy bemutassam, hogy hogyan képzelném el, persze az adatokat csak véletlenszerűen kézzel írtam be.
Az excelbe egy szűrőt is raktam, hogy csak azokat jelenítse meg ami a legnagyobb a sell, illetve a buy szempontjából., de szerintem a képekről ezt érteni fogjátok, hogy miről van szó.
És még annyi, hogy nekem excel 2013 van fent, de ha nincs jelentősége, mert felrakom akármelyiket, ha abban lesz a megoldás.
Esetleg el tudom képzelni azt is, hogy acces- hez kell nyúlni, hogy megoldható legyen amit szeretnék, bárhogy is van, várom a megoldásokat akár ide, akár üzenetbe és persze köszönöm, ha időt szántok rá.
Az adott munkalap worksheet_change eseményébe kellene beírni egy kis makrót:
Private Sub Worksheet_Change(ByVal Target As Range)
target.value=application.proper(target.value)
End Sub
Ez minden egyes alkalommal, amikor egy cellába beírsz valamit, átváltoztatja nagykezdőbetűs szavakká az oda beírtakat. Viszont a kötőjeles (pl. Nagy-Bandó Valaki) kötőjel utáni részét nem változtatja nagy kezdőbetűsre, ezt csak úgy tudod elérni, ha a kötőjel után egy szóközt teszel.
Természetesen meg lehet adni tartományt, ahol működjön ez a függvény, akkor így néz ki:
if not intersect(tartomany, target) is nothing then
target value=application.proper(target.value)
endif
A tartomany helyére írhatod pl. range("A3:F12"), akkor az A3:F12 cellákban fogja a módosítást megcsinálni.
A munkafüzetet viszont ezután makróbarátként kell elmentened, ha 2007 vagy annál frissebb az Excel verziód.
Szia, jó a gondolat. Meg is valósítottam. Annyi eltéréssel, hogy ha már a felhasználót informáljuk az értelmesnek látszó szavakról, akkor célszerű lehetőséget adni neki a felülbírálatra. Ezért beépítettem az igen/nem válasz lehetőségét.
Ezen kívül a program 8. sorába beépítettem egy konstanst: "Const csakertelmes As Boolean = True". Ezt False-ra állítva a korábbi változatnak megfelelően dolgozik, azaz minden lehetséges variációt kiír.
Ugyanakkor a csakertelmes=True esetére betettem még egy konstansot, ami a rákérdezésre vonatkozik. Ez a 11. sorban a "Const rakerdez As Boolean = True". Ha ezt False-ra állítjuk, akkor nem zaklatja a felhasználót a kérdezgetéssel. Mert például egy 10 karakteres szó vizsgálatakor (ami jó másfél napos futás is lehet) nagyon zavaró, ha állandóan nyomkodni kell az igen, vagy a nem gombot. Ilyenkor célszerűbb, ha a felhasználó utólag tekinti át az eredményt.
Egy apróság: A kiírt fájl legelső sorában lévő sorszámozás már nem követi olyan szépen az eredményeket, mint amikor teljes a lista. De nem tudtam más megoldást, mint hogy az elején kiírom a teljes szóba jöhető sorszámlistát, mert a célfájlba nem tudok utólag sorokat beírni. De remélem, hogy ez nem zavaró.
A végeredmény itt van: link (Remélem jó lesz a link ebben a formában.)
Újfent a segítségeteket kérem. Nevek beírása során néha nem veszem észre, hogy nem nagy betűvel kezdtem a nevet. Van rá valami megoldás, hogy vagy írás közben, vagy a végén egy ellenőrzés lefuttatásával ezeket a hibákat kiküszöbölje az excel? Előre is nagyon köszönök minden segítséget.
Az előbb djuice-nak írtam még egy kis kiegészítést, mert korábban arról diskuráltunk, hogyan lehetne megtudni, a kikombinált betűk értelmes magyar szót alkotnak-e.
Ehhez az excel helyesírás ellenőrzőjét használtam fel (helyesebben az office helyesírás ellenőrzője, mert a Word is ezt használja).
Érdemes elgondolkodni rajta, hogy érdemes-e az egyébként "értelmetlen" betűkombinációkat is kiírni.
Ha a permutáció függvénybe beilleszted a félkövér sorokat (105-107 sorok lesznek), akkor menet közben azt is látod, hogy mit szól hozzá a helyesírás ellenőrző:
" If k = 0 Then ' Call kiiras(kiirandostring) If Application.CheckSpelling(kiirandostring, , False) Then MsgBox "A következő betűkombináció: " & kiirandostring & " MEGFELELŐ magyar szó!", vbInformation, "Betűkavarás" End If sorszam = sorszam + 1"
Persze ezzel lelassítod a működést, mivel a Te gombnyomásodra megy tovább a program, de tapasztalatom szerint nem túl sok értelmes magyar szó keletkezik. Illetve lehetne ezt szűrésre használni a kiírás előtt például.
Szia, a Libre Office kompatibilitási problémáiról fogalmam sincs. Nem használom. Az Excel makrók sajnos nem fordíthatók Exe fájllá, csak Excel környezetben futtathatók.
Ami a kimeneti szövegfájlt illeti, valóban célszerű megoldásnak látszik. Ezért a kiírást átirányítottam egy lista.txt nevű fájlba, aminek a helye ugyanaz lesz, mint az Excel táblázatodnak, amelyikből futtatod a betű variáló programot.
Az elkészült fájlt aztán meg tudod nyitni a jegyzettömbbel, és onnan oda másolod, ahova akarod. Az egyes szó variációk közé szóközt tettem. Ha ez neked nem felel meg, akkor Alt + F11-el átmész a makró oldalára, és ott után a 8. sorban a Const elvalaszto = " " helyett az idézőjelben a szóközt átjavíthatod tetszésed szerint vesszőre, pntosvesszőre, slash-re, vagy ami neked szimpatikus. Itt jegyzem meg, hogy ha a kimeneti fájl neve (lista.txt) nem tetszik, azt 5 sorral lejjebb, a celfile = ThisWorkbook.Path & "lista.txt" soron tudod más fájlnévre javítani. (Ettől természetesen csak a neve változik, de szövegfájl marad). A backslasht persze békén kell hagyni. Egyébként a program mindenfutást azzal kezd, hogy törli az előző azonos nevű fájlt, és újra létrehozza. Ha tehát meg szeretnéd valamelyiket őrizni, akkor át kell nevezned, vagy helyezned, mielőtt egy új szó variálásába belefogsz.
Azért arra vigyázz, hogy csak rövid szavakat tudsz tesztelni, mert nagyon időigényes a feladat. Egy 7 karakteres szó rendezése nálam majdnem 2 perc, egy 8 karakteresé ennek a tízszerese lehet, tíz karakter meg maga az örökkévalóság a közel tízmilliós kombinációjával.
Ha véletlenül mégis elindítasz egy ilyet, akkor a futást az ESC-vel le tudod állítani. A program ekkor kiírja, hogy leállítottad a futást, és a félkész eredményfájlt törli.
Még valamit. Amíg a program dolgozik, a táblázatod adott sorában a J oszlopban fut egy számláló. Ennek csak az a szerepe, hogy lássad, dolgozik a program, és állt le valami hiba miatt. Amikor kész, akkor egy figyelmeztető ablak tájékoztat erről.
Ja! Köszi tényleg minden segítséget, viszont ez a makró gondolom csak Excel kompatibilis nem? Próbáltam Libre Officeban is megnyitni de ott nem működött. Nem reklamálásként mondom persze, csak én ezt a funkciót sose használtam a táblázatkezelőkben. Viszont arra gondoltam, hogy ha Excel makrót át lehet exe-re fordítani, akkor akár egy kimeneti szövegfájlba is tudna dolgozni, azt meg a Word is jobban kezelhetné helyesírásilag. Persze az értelmes szavak kiválogatása még ott is kérdés maradna. Na nem kotnyeleskedek inkább csak eszembe jutott ez-az. :)
A sortörés cellán belül opció hosszú mondatokra megoldja szerintem mert ott automatikusan az adott 1 sor magasságát beállítja magának. De ilyen számlázósdit nem Accessel szoktak csinálni?
Pimre,
Teljesen igazad van, a kék szóban nincs 2 é. Ezt jól benéztem. :)
"Milyen megoldás létezik arra, hogy soronként különböző cellaszéllességeket tudjak beállítani? "
Legjobb tudomásom szerint az excel celláinak szélességét /és magasságát/ nem lehet egyedi méretre állítani, csak az egész oszlop/sor méretét.
De ahhoz, hogy "űrlapszerűen nézzen ki", nem kell a szélességet állítani szerintem. A cella szegélyeket szabadon állítgathatod és így a két-három cellába átnyúló nevek úgy néznek ki, mintha egy cellában lennének (a két/három cellát keretezed egyben, a közte levő elválasztóvonalat meg "eltünteted").
Ezen kívül az oszlop és sorfejléceket (A, B, ill. 1,2 stb.) is el lehet tüntetni az excel beállításainál.
Ha ezek nem adnak megfelelő "látványt", akkor nem marad más hátra, mint saját űrlapot csinálni a számodra megfelelő elrendezéssel.
Nem találtam se keresőben se súgóban a problémámra megoldást, szeretnék egy olyan excel táblát létrehozni ami hasonlóan néz ki mint a számlázóprogramok által jól ismert felosztás:
-Felül kiállító és megrendelő külön cella,
-alatta dátumok külön cellák,
-alatta megnevezés,mennyiség, mennyiségi egység, nettó ár stb.
Cella egyesítéssel borzalom, minden több mondatos megnevezésnél cellát kellene egyesítgetnem, de ha a cella szélességét húzom szét akkor a felső sor a kiállító/megrendelő arányosítottan középen szétosztottt része esik szét.
Milyen megoldás létezik arra, hogy soronként különböző cellaszéllességeket tudjak beállítani?
Igazad van, ezek szerint nem tökéletes a megoldás. Holnap megnézem, hogy maradhatott ki ez a lehetőség. Nyilván javítani kell az algoritmust.
Ezen felül átgondolom, hogyan lehetne függőlegesen rendezni az eredményeket. Ott néhány tízezer variációt is létre lehet hozni egy oszlopban. Szerintem ehhez is elég lesz 1-3 nap.
Szia, egy kicsit kései válasz, de hátha segít. A feladatot nemhogy lehetetlen makró nélkül megoldani, hanem még makróval is nagyon nehéz. De mivel tetszett a feladat, megpróbáltam. És végül sikerült.
Az általad küldött képernyőhöz írtam a programot, ami automatikusan lefut, ha beírsz egy új szót. Itt a program:
A képernyődön pirossal írt szövegedet áttettem alulra, így az egyes általad írt darabszámokhoz kapcsolódóan megjelennek a hozzá tartozó variációk. Persze csak akkor annyi, ha nincs betű ismétlődés. Mert például az "alma" szóból nem lehet kirakni 24 db különbözőt, csak 12 db-ot. Az a betű ismétlődése miatt. Ha az ismétlődőket is látni szeretnéd (tehát a 2 db a-t nem tekinted azonosnak, akkor Alt+f11-re megjelenik a program, és annak az 5. sorában a "ismetlodoiskell As Boolean = False" szövegben a False helyett írj True-t.
A megjelenő variációk fölé sorszámokat írtam, hogy könnyebben tudd ellenőrizni azok számát.
Természetesen ezzel a kiírási módszerrel legfeljebb 5 karakteres szavakat tudsz értékelni, mert a hatbetűshöz már 720 elem kellene, ami nem fér el vízszintesen a táblázatban. Persze, ha kell meg tudjuk oldani függőlegesen is, úgy tovább lehet menni.
Egy kis szakmai nyalánkság: A program amikor megkapja feldolgozásra a stringet, akkor először permutálja a teljes szót, majd ismétlés nélküli kombinációval megkeresi az ennél eggyel, kettővel stb. kevesebb betűt tartalmazó stringeket, és mindegyiket permutálja. Ehhez a számítástechnika egyik legszebb alkalmazási területét hívja segítségül, a rekurzív függvényhívást, azaz amikor egy függvény saját magát hívja meg.
A kombinációs és permutációs ciklusok megvalósítása nem saját kútfőből történt. Az elvet tudtam, de a konkrét megvalósításhoz segítség kellett. Innen vettem: http://www.ne.jp/asahi/math.edu/ami/myprog/jk_eng.htm. Az itt megadott fájlt letöltöttem, a változóneveket magyarítottam, és a programot a feladatunkhoz igazítottam. És élveztem. Jó kis kihívás volt.
Félreértettél. Nem meggyőzni akartalak, csupán egy másik megoldást mutatni a problémára. Ha nem neked, másnak. Ebben a topikban előfordul néha, hogy hamarabb megszületik a válasz, mint ahogy felmerül a kérdés. Annyit még elmondanék, nem annyira neked, inkább csak a téma lekerekítése miatt, hogy éppen az ilyen naplószerű táblák kezelésében van némi tapasztalatom. Meggyőződésem, hogy az Excel egyik nagy erőssége a kimutatás, aminek a kedvéért érdemes sok felad kiindulását naplószerűvé alakítani. Kényelmetlen frissíteni? Gondoskodni kell róla, hogy ne legyen az.
Oké, igyekszem észben tartani. Ha legközelebb szükség lesz rá, kipróbálom. Ezt most már megoldottam másképp, ráadásul a kolleginának, aki használni fogja, jobban esik az automatikus frissülés, mint ha neki kellene mindig frissíteni a kimutatást.
Lehet. Én mégis innen közelíteném meg. Úgy értettem a kérdést, hogy egy adott névhez tartozó legnagyobb dátumot-, és a hozzá tartozó megjegyzést keresed. Ennek pedig semmi akadálya. A kimutatás celláira hivatkozni lehet, akár FKERES függvénnyel is.
Ha a másik táblában be vannak drótozva a nevek, akkor is megtalálható a keresett sor.
(Persze lehet, hogy azt a táblát másképpen képzelem, mint te.)
A KIMUTATÁSADATOT.VESZ függvény többféleképpen is megkerülhető, ha kell.
Szerintem az index - hol.van függvénypáros a kimutatások esetében is "csodákra képes". Én nem szoktam használni a kimutatásadatot.vesz függvényt (csak a makrórögzítés akarja "rámerőltetni" mindig...).
Ó, én nagyon szeretem a kimutatásokat, csak nem ebben az esetben. Itt ugyanis a kapott adatokat még további képletek dolgozzák fel, amelyeket a KIMUTATÁSADATOT.VESZ függvény használatának kényszerűsége szükségtelenül körülményessé és olvashatatlanná tesz.
Igen, igen, ez jogos, csak törekszünk az eleganciára, amiért viszont a segédoszlopok használata kerülendő. Meg az, mint említetted, bevisz egy újabb hibaforrást a rendszerbe.
Példának a "Munka1" munkalapon lévő tagolások engedélyezéséhez az alábbi kódot kell betenni a ThisWorkbook eseményei közé:
Private Sub Workbook_Open() ThisWorkbook.Sheets("Munka1").EnableOutlining = True ThisWorkbook.Sheets("Munka1").Protect Password:="jelszo", userinterfaceonly:=True End Sub
Ha a felhasználó engedélyezi a makrók futását a tábla megnyitásakor, akkor a védett "Munka1" lapon tudja használni a már létező tagolásokat. Azokat módosítani, vagy újakat létrehozni továbbra sem tud.
Termézsetesen arra vigyázni kell, hogy az eredeti adatbázis ne legyen redundáns, ha ugyanaz a név és dátum többször is előfordulhat, akkor egy másik oszlopban egy darabhatöbb függvénnyel ellenőrzini kell, hogy mennyi rekord teljesíti a feltételt és csak akkor engedélyezni a fenti képletet, ha az eredmény 1
Mivel ez is olyan probléma, ami adatbázis-kezelőben csuklóból megoldható, afelé keresném a megoldást is, tehát legyen a soroknak egy elsődleges kulcsuk. Vagy egy növekvő sorszám egy rejtett oszlopban, vagy (feltéve, hogy egy ember egy nap csak egyszer) egy név & dátum összetétel ugyancsak rejtett oszlopban. Erre már könnyen lehet indexholvannal keresni. A nehézség, hogy figyelni kell a rejtett oszlopok kitöltésére is.
- a B oszlop dátumokat, hogy ki mikor volt üzemorvosi vizsgálaton
- a C oszlop az üzemorvosi vizsgálathoz kapcsolódó esetleges megjegyzéseket.
Ezt a táblázatot naplószerűen vezetjük, tehát az új sorok mindig jönnek a meglévők alá.
Egy másik munkalapon (Munka2-n) van egyfajta kigyűjtés: melyik ember mikor utoljára orvosnál. Más szóval, ha a Munka1 A oszlopából kiválasztok egy nevet, az ahhoz tartozó legkésőbbi dátum a B oszlopból. Ez eddig megvan sima beépített függvények segítségével. Amivel gondom van, az az, hogy hogyan tudnám a C oszlop vonatkozó sorának tartalmát is kinyerni. Van erre valami ötlet?
UDF-fel természetesen meg tudnám oldani, de az most nem jó, beépített függvényekkel kellene.
Szerintem csak makróval - feloldod a lapvédelmet, megcsinálod a tagolást, majd visszazárod a lapvédelmet. Esetleg makróból csinálsz tagolás szerű soreltüntetéseket + gombocskákat. A lapvédelem bekapcsolásakor megadhatod, hogy lehet-e formázni a sorokat, oszlopokat.
Az If ActiveCell.Vallue=ActiveCell.Offset(-1,0)Value Then-nél Syntax errort mutat.
A második Value elől valami megette a pontot. Helyesen:
ActiveCell.Vallue=ActiveCell.Offset(-1,0).Value Then
A B és A oszlop celláit a benne lévő értékektől függetlenül ugyanúgy kellene összevonja, mint a C celláit.
Itt könnyen adatvesztés lehet mert a cellák összevonása esetén csak a tartomány bal felső cellájának értéke marad meg. A C oszlopnál ez nem gond hiszen ot feltétel, hogy azonos legyen a cellaérték. Ha ez nem okoz gondot akkor próbáld ki ezt:
Sub osszevon() Application.ScreenUpdating = False Application.DisplayAlerts = False
Cells(Range("C" & Rows.Count).End(xlUp).Row, 3).Select Do While Not ActiveCell.Row = 1 If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then Range(Cells(ActiveCell.Row, 3), Cells(ActiveCell.Row - 1, 3)).Merge Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row - 1, 2)).Merge Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row - 1, 1)).Merge End If ActiveCell.Offset(-1, 0).Select Loop
Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Sub osszevon() Application.ScreenUpdating = False Application.DisplayAlerts = False
For i = 1 To 3 Cells(Range(Chr(i + 64) & Rows.Count).End(xlUp).Row, i).Select Do While Not ActiveCell.Row = 1 If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then Range(Cells(ActiveCell.Row, i), Cells(ActiveCell.Row - 1, i)).Merge End If ActiveCell.Offset(-1, 0).Select Loop Next
Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Mind a 3 oszlop azonos értékeit tartalmazó cellákat összevonja a legutolsó cellától kezdve az első sorig.
Mit jelent az, hogy a C oszlop alapján vonnád össze az A-t és a B-t?
A táblázat hossza változó, az értékek minden cellát kitöltenek, a C oszlop cellái azok az értékek, amik alapul szolgálnak. Nincs benne semmi különös, csupán vannak cellák, amik azonos számokat tartalmaznak, ezek a cellák mind egymás utáni cellák. Ezeket az azonos cellákat szeretném összevonni, és ez az oszlop alapján pedig az A és B oszlopokat is. Van olyan eset, mikor 4 cella értéke azonos, van, mikor 2, 6, 7cella tartalmazza ugyanazt a számot.
Üdv. Lenne egy kis gondom, mégpedig: adott egy táblázat egy 2013-as excelben. A gondom az, hogy nem tudom, hogyan érjem el azt, hogy a munkafüzet C,B, illetve A oszlopainak mezőiben lévő azonos kitöltésű mezői egyesítve legyenek, mindez egy makróba foglalva. Előre is köszönöm a segítséget.
Nem kötelező. Az a cella, amelyről információt szeretne kapni. Ha nem adja meg, az infótipus argumentumban megadott adat a legutóbb módosított celláról fog megjelenni.
Szerintem emiatt van amit írtál, hogy:
Ha valamelyikben csinálok valamit (elég egy DEL egy üres cellában), akkor a cella értéke minden mf-ben változik: a módosított mf nevéből generált dátum értékét veszi fel minden mf-ben.
A legutóbb módosított cella mindig az aktív munkafüzetben van ezért annak a fájlnevét adja vissza a fv.
Lefordítva: veszi a file nevét és dátumot készít belőle. Jól is csinálja. A munkafüzetek filenév-formátuma kb. "P&L éééé-hh.xlsx", az aktuális éppen "P&L 2014-09.xlsx". Azért "kb.", mert ennél kicsit bonyolultabb, de nem itt van a gond.
Az a gond, hogy ha egyszerre több munkafüzet meg van nyitva (...01, 02, stb.), akkor a képletet tartalmazó cellákban minden munkafüzetben (mf) ugyanaz az érték szerepel. Olyan, mintha nem egyesével futna le a képlet, hanem csak egyszer, és az az érték jelenne meg minden mf-ben. Ha valamelyikben csinálok valamit (elég egy DEL egy üres cellában), akkor a cella értéke minden mf-ben változik: a módosított mf nevéből generált dátum értékét veszi fel minden mf-ben.
A félreértések elkerülése végett: munkafüzetekről és nem munkalapokról van szó, tehát különböző nevű, külön-külön file-ok vannak egyszerre megnyitva.
Ez valami Excel 2010 bug, egy korlát (ezt csak így tudja és kész), vagy valami (nekem felfoghatatlan) okból direkt működik így?
ps: Azért kell egyszerre megnyitnom, mert van egy 13. mf, amelyik összegez, kumulál, ki- és bemutat, de rossz adatokat hoz, mert az egyes jelentések rossz adatokat szednek ki forgalmi táblázatokból.
Ezen buktam meg. Nálam 3 verzió van fenn, párhuzamosan. Mindegyik a personal.xls-t használja, az Ablak menüben valószínűleg ezért nem szerepel a Felfedés almenü.
Régebbi verziókban az Ablak menüben van a Felfedés almenü, ahol láthatóvá teheted a rejtett füzetet. Valószínű, hogy magasabb verzióknál is van rá mód, csak éppen nem találom. :(
Valaki egyszer segített nekem elrejteni azt a munkafüzetet, amiben a saját makrók vannak, hogy ne legyen folyton nyitva, ha excelezem. Na de most kéne, és már a nevét is elfelejtettem, meg hogy hol van...
Szerintem már ez sem fog makró nélkül menni....Mivel a betűket ciklussal kellene egymás mellé tenni. A 6 variációt a 3 betűből a cellaértékek egymás mellé fűzésével még meg tudod csinálni "kézzel is" . Excel függvényekkel való összerakás az már húzósabb játék.
Pl. 3 betű variációs képletei: 1. =E2&E3&E4, ez ugye maga az alapszó
2. =E2&E4&E3
3. =E3&E2&E4
4. =E3&E4&E2
5. =E4&E3&E2
6. =E4&E2&E3
És ezeket a képleteket írhatod mondjuk az L3-Q3 tartományba.
A 2 betűsekét pedig az L4-Q4 tartományba.
Ez működik minden 3 betűs szónál, a képleteket csak egyszer kell beírnod.
Ha változik a szó hossza, akkor persze ez már nem jó így. Erre írtam, hogy makró ez is.
Nos, a makrót későbbre hagynám. Először azt kéne megnézni, pl egy 3 betűs szóra hogy lehet azt a 6 lehetséges variációt a betűkből összekombinálni. Sehogy sem bírok ezen fogást találni. :(
Bocs, az előbb nem néztem és nem is törekedtem a teljes megoldásra, csak azt a részt ötleteltem, hogyan lehet megtudni, hogy egy szó értelmes-e.
A szó hosszát azt a hossz függvénnyel le tudod kérdezni, tehát csak a ha(hossz(szó)>x;"Túl hosszú a szó"; a te képleted) formát kell alkalmazni.
A szavak legenerálására ugye a betűket kellene egymáshoz rakni vagy az összefűz (&), vagy a közép függvénnyel, de az elég sok cella lesz....
Azt, hogy valódi szó e az, azt viszont csak makróval/saját függvénnyel tudod ellenőrizni....
Ami viszont fontos, hogy a makró tud az adott cellába más értéket is írni, a függvény viszont nem. Makróval megoldható, hogy csak az értelmes szavak jelenjenek meg, függvénnyel viszont vagy ott lesz az "értelmes" szó, vagy üres marad a cella, esetleg egy szöveg lesz ott (amit te határozol meg, pl. "mbe" nem értelmes szó.)
Olyat, hogy lehet csinálni, hogy van egy képlet által kiszámolt eredményem, és azt "beleégessem" a ccelléba, azaz ne a képlet jelenjen meg, hanem maga csak az eredmény.
Ez azért lenne fontos, mert van 140ezer sorom amiben az egyik oszlop képlettel van kiszámolva, de nem fog változni soha. Viszont amikor szűröm vagy bármi mást csinálom újra elkezdi ellenőrizni, hogy nem változott e, az meg eléggé időigényes.
Igazán rendes vagy hogy segíteni próbálsz, de nekem lövésem sincs hogy ebből mit és hova kéne beírni. A függvények = jellel kell kezdődjenek, nem ? jellel és ez alapból angol, a magyar excelben meg minden magyarul van.
expression A variable that represents an Application object.
Parameters:
Word Required String (used only with Application object). The word you want to check.
CustomDictionary Optional Variant A string that indicates the file name of the custom dictionary to be examined if the word isn't found in the main dictionary. If this argument is omitted, the currently specified dictionary is used.
IgnoreUppercase Optional VariantTrue to have Microsoft Excel ignore words that are all uppercase. False to have Microsoft Excel check words that are all uppercase. If this argument is omitted, the current setting will be used.
Return Value True if the word is found in one of the dictionaries; otherwise False.
Ha megadok egy hónapot / évet, akkor ezt számolja ki.
Még küzdök vele, mint írtam egy segédtűbla segítségével ki tudom számolni, kell hogy legyen egyetlen cellába képletként felállítható algoritmusa is ennek.
A problémám: a cellaértékek automatikuskiegészítése egy egyszerűenk tűnő táblázatomban össze-vissza működik! Az egyik oszlopban akármilyen távolságban is felkínálja a fentebb található tartalmat, a másikban nem.
Ahol nem működik, ott közvetlenül a már meglévő tartalom alatti cellában felkínálja, de mihelyt 1 üres sor van közöttük, már semmi!
Hónapok óta küszködök ezzel a problémával és sehol nem találok rá magyarázatot, vagy megoldást!
Most létrehoztam egy vadiúj, üres Móricka állományt. Beírtam egy cellába, hogy "Rendben". Az alatta lévő cellában felkínálja, ha lentebb megyek, ugyanaz a helyzet, mint leírtam: semmit nem kínál fel, ha végig írom a szöveget, akkor sem.
Természetesen a pipa az Eszközök -> Beállítások -> Szerkesztés fülön a "Cellaértékek automatikus kiegészítése" előtt be van állítva.
Ebben a Móricka táblában semmi más nem található, nem nyúltam a védelemhez, stb.
A hónap eleje és vége is lehet tört hét (mint pl. október). Mit szeretnél kiszámolni, ha október 1. a kezdőnapja a hétnek, akkor hány ilyen teljes hét van és hány nap marad? Vagy hányadik héten kezdődik október és hányadi héten végződik?
Hogy lehetne kiszámítani, egy (adott) hónap heteit, ahol ha a hónapban egész a hét, akkor = 1, ha tört a hét a hónapon belül, akkor egy hányados - annak megfelelően, hogy hány nap marad abban a hónapban a 7 napból.
Külön segéd táblázattal meg tudtam határozni, de kell lennie egy képletes megoldásnak is és arra vagyok kíváncsi, tud e valaki ilyet.
A wordnek van helyesirás ellenőrző funkciója. Én megnyitnék a háttérben egy word ablakot és átdobnám neki a "szavakat" helyesírás ellenőrzésre. Ha elfogadja, akkor szó, hanem akkor nem jó. Ezt az ablakot természetesen nem kell látnia a felhasználónak.
Csináltam egy szókombinálós excel táblát, de jelenleg csak a statisztikáig jutottam, szerencsére! Mivel ez alapján láttam, a túl nagy számok érvényében nem is kéne engedni csak egy kezelhető számú karakterre limitálva futni őkelmét.
Szóval! Arról van szó, hogy a táblázatba beírunk egy szót, erre ő kibetűzi és meghatározza, a betűkből hány variációval képezhető új szó. A cél pedig az lenne, hogy ezeket le is generálja a táblában lévő "betűző" alapján, de összevonva szavanként 1 cellába. Nyilván rengeteg értelmetlen "szó" is keletkezne így, erre azt gondoltam, hogy vmi értelmező szótár adatbázisát kellene még beleintegrálni, amiben kereshetne értelmes szavakat és csak azokat jelenítené meg.
Ilyestájt viszont lehet hogy mellé is lőttem kissé, mert lehet hogy inkább Accessben kéne megoldani ezt?
A formula metódus mindig az angol neveket várja a függvénynél.
Ha a magyar neveket szeretnéd használni, akkor a formulalocal metódust kell használni. Viszont ebben az esetben nem lesz "hordozható" a makród, mert más területi beállítások esetén már hibára futhat.
Gyanús nekem ez formular1c1 is, mert annak is van formular1c1local változata.
Kipróbálhatod az immediate ablakban, melyik verzió mit ír ki.
Valószínű, hogy szövegként értelmezi a hivatkozott mezőt. Két tipp:
1. A képletben szorozd a mező értékét -> =a1*1 +26 (a +26 itt a képlet többi részét képviseli)
2. A leírt cellákat együttesen felszorzod 1-gyel. Írsz egy üres cellába egy 1-est, másolod Ctrl+c-vel. Kijelölöd a nevezett cellákat, irányított beillesztés, szorzás.
A képlet kezdődjön így: =HA(VAGY(B1="nincs";B1="ismeretlen");B1; és ide jön - természetesen a kezdő egyenlőségjel nélkül - a korábbi ha képlet, az egésznek a végére pedig tegyél még egy zárójelet az elébe írt HA függvény miatt.
Mivel anyakönyveket indexelek, ezzel a megoldással sokat segítettél. Szeretnélek kérni (mivel nem értek az excelhez) segíts ezt a képletet kiegészíteni azzal, hogyha B1 cellában az van írva, hogy nincs vagy ismeretlen, akkor a C1 cellába automatikusan beíródjon a nincs ill. az ismeretlen. (Alap esetben C1 cellába írom: =B1. De most itt van ugyebár ez az általad írt gyönyörű képletsor is, ami mindenképp kell a C1 cellába. Tehát van egy hivatkozásom A1 cellából is, és e mellé kéne még a B1 cellából is, ami a C1 cellában jelenik meg.)
Remélem érthető, és tudsz/tudtok segíteni. Előre is köszönöm.
Az email címe nyilvános. Erre a címre küldtem neki egy levelet augusztus közepén, és megkérdeztem, mi van vele. És hogy az itteni fórumon hiányoljuk. Sajnos semmi válasz.
excel 2010-ben nekem is sikerült, a 2007-esben nincs meg (vagy nem találom) az a lehetőség, hogy külön ki lehessen jelölni az adatfelirat tartományát. Ez egyébként az OpenOffice-ban is megvan
Sőt, ennél van egy egyszerűbb megoldás is: ugyanúgy beszúrsz egy plusz oszlopot, amibe a következő képletet írod: =szöveg(A1;"#") (ha az A oszlopban van az érték) és ezt húzod le az oszlop végéig. Utána ezt a B oszlopot copyzod ömagára érték beillesztéssel (ekkor a képlet eltűnik) és az A oszlopot nyugodtan törölheted.
adott pont kijelölve, jobbegérgomb - adatfelirat felvétele - adatfelirat formázása - felirat beállítása - felirat tartalma - itt adatsor neve bepipálva, az eredmény a következő:
a teljes adatsor odarakja, pedig én csak az egy ponthoz tartozót szeretném
jobb gomb a ponton, adatfelirat felvétele, majd duplaklikk az adatfeliraton és ott lehet választani, h mi jelenjen meg. (Adatsor neve, kategória, stb...)
Libreoffice-ban annyit meg lehet csinálni, hogy az értékek elé bepakolja a nevet, de az így módosított fájlt excelben megnyitva kiírja a program, hogy a tartalom elveszett.
Távolbalátással sajnos nem fog menni, csak próbálkozni tudok:
Tuti, hogy a rendezési csak a dátumot tartalmazó oszlopokra van beállítva? Mert az a gyanúm, hogy másik oszlopra is van érvényes szabály. Megnézheted az Adatok - rendezés menüpontban, ha nem az "A-Z","Z-A" lehetőségre, hanem a Rendezés-re kattintasz. Itt megláthatod, hány oszlopra van beállítva szabály.
Üdv.
Ha ez sem segít, akkor tegyél fel egy mintát valahova és megnézem(zük).
Kézzel: Kijelölöd azt a tartományt amelyet rendezni szeretnél. Utána adatok, rendezés. De ha belekattintasz a tartományba és utána az adatok- rendezés menüpontba, magától ajánlja fel a teljes tartományt.
Makróval általában a tartományban levő egyik cella CurrentRegion tulajdonsága segít: pl. B3.currentregion.sort
Egyre kell figyelni: a tartományt egybefüggően kell kijelölni - tehát ha közben lennének üres oszlopok, azokat is folytatólagosan bele kell foglalni.
Ezért a fenti makrós dolog csak akkor jó, ha nincs üres sor/oszlop az adatok között (mert a CurrentRegion az a "téglalap" alakú tartomány, amelyet minden oldalról legalább egy üres oszlop és sor határol.
Csinálj egy segédoszlopot a számok elé v. mögé. Pl. segédoszlop A, számok B, sz A1 cella képlete legyen ="A" & B1 és ezt húzd végig a segédoszlopon
Ezután jelöld ki a segédoszlopot és a rendezendő oszlopot (illetve, ha van utána még több oszlop, akkor az egész tartományt, hogy menjenek az adatok a főkönyvi számokkal). Rendezz a segédoszlop szerint.
Utána a segédoszlopot törlöd, vagy ha később is szükséged lenne rá, akkor elrejted.
Huszonéves Excel múlttal olyan problémába futottam, mint még eddig nem. Lehet az Excelben számokat szövegként sorba rendezni? Főkönyvi számlaszámokról van szó, ahol ez egy helyes sorrend:
5
55
551
56
561
Ez viszont nem:
5
55
56
551
561
Szóval... lehet? Próbáltam a számok oszlopát Format cells -> Category -> Text-ként használni, de csak érték szerint rendezne. Az Excel súgó és egy gyors Guglizás nem segített.
Értékek közötti összefüggések vizsgálatához használt értékpár pontdiagramhoz hogyan lehet olyan adatfeliratot rendelni, ahol a pontok nevei (pl megyék, városok stb) szereplnek?
Az Office 2013-ban van a "Házi leltár" sample. Ezt egészítettem ki több oszloppal, hogy tudjam használni. Az AF oszlopban dátumok vannak. A problémám az, hogy nem rendezi növekvő sorrendbe. Csökkenőbe sme. Szerintetek ez miért lehet? Semmi hibát nem dob és mikor a rendezésre megyek látszólag nem is történik semmi.
Nem akarom elkiabálni, de lehet, hogy megoldódott a probléma. Annyit változtattam a kódon, hogy minden másolásos sor elejére beírtam a második sorból átvett "If Range("h2").Value <> Range("h1").Value Then" utasítást vagy mit. Természetesen a cellákat átírtam a másolandó cellákéra. Így a makró futásának feltételét nem változtattam meg, de csak abban az esetben végzi el ténylegesen a másolást, ha a másolandó cellák értékei nem egyeznek. Olyan bonyolult makrót nem akarok használni, amit nem értek, ezért ciklusok meg hasonlók kilőve. Mindenesetre köszönöm a segítségeteket, remélem több makrós problémám nem lesz. Ha mégis, akkor jövök úgyis ahogy szoktam.
Bocsánat, ha nem volt egyértelmű, ami könnyen előfordulhat. A második sor azért került be a makróba, hogy lényegében ezzel a kapcsolóval tudjam meghatározni a makró teljes lefutását (ne fusson le minden újraszámításnál). Eleinte jó is volt, de mostanra olyan sok tényező változtatja már meg a cella értékét, hogy lényegében mindig lefut a makró. Abban sem vagyok biztos, hogy a makró másolásai nem generálnak-e újabb változásokat a kérdéses cellában, ezzel újra futtatva a makrót. mindenesetre végtelen ciklusba nem futottam bele, mert idővel megáll és minden jól történik, csak lassan. Nem biztos, hogy a sok másolás miatt lassú, lehet, hogy nagyon sokszor fut le. Ezt nem tudom hogyan tudnám kideríteni.
A segítségeteket köszönöm, holnap lesz már csak időm értelmezni és tesztelni.
Valószínűleg a 2. sorban változtatod az értéket, ez nem derült ki a leírásodból. Ha igaz, érdemesebb a Change eseményhez kötni a futást.
A sok sor összehasonlítását ciklusban is elvégezheted, nem kell 50× beírni.
A makró akkor változtat, ha a 2. sorba viszel be adatot, billentyűzetről. Ekkor megnézi, hogy a bevitt adat egyezik-e a fölötte lévő adattal. Ha nem, akkor a bevitel oszlopában a 3. sortól kezdve minden második sorba beviszi a jobbra mellette lévő értéket.
Nem biztos, hogy ez a feladat, csak próbálkozom a gondolatolvasással. :)
Private Sub Worksheet_Change(ByVal Target As Range) Dim sor As Long
If Target.Row = 2 Then If Target <> Cells(1, Target.Column) Then Application.EnableEvents = False For sor = 3 To 100 Step 2 Cells(sor, Target.Column) = Cells(sor, Target.Column + 1) Next Application.EnableEvents = True End If End If End Sub
Ez a kód azért fut le minden újraszámolásnál, mert a Worksheet_Calculate() eseményhez van kötve. Szerintem más feltétellel kellene indítani a cellák értékadását.
Application.EnableEvents = False
Ez a sor azért van benne, hogy az utána lévő kódsorok (cella értékadás) ne váltsák ki a Worksheet_Calculate() eseményt ezáltal végtelen ciklust okozva. Természetesen miután lefutott a kód vissza kel kapcsolni az események figyelését, erre való a
Private Sub Worksheet_Calculate() If Range("h2").Value <> Range("h1").Value Then Application.EnableEvents = False Range("h3").Value = Range("i3").Value Range("h5").Value = Range("i5").Value Range("h7").Value = Range("i7").Value Range("h9").Value = Range("i9").Value
itt még kb 50 ilyen sor következik, de csak a makró végét másolom ide:
Application.EnableEvents = True End If End Sub
A probléma az, hogy a lefutás feltételét (második sor) annyi mindenhez kötöttem, hogy lényegében az oldal minden számításánál lefut. Engem ez nem is zavarna, de sajnos használhatatlanul belassult tőle az érintett oldal. Nem fagy le és nem ír hibát, csak várni kell 4-10 másodpercet. Nincs ötletetek, hogy hogyan lehetne egy kicsit gyorsítani? Én arra gondoltam, hogy nem gyorsulna-e attól, ha a másolásokat minden sor elején a másolt és a másolandó cella összehasonlításával kezdeném és csak azokat a cellákat kellene átmásolni, amik nem egyeznek. Azt mondjuk nem tudom, hogy az összehasonlítás gyorsabb-e a másolásnál. De persze bármilyen más hasznos ötletre vevő vagyok.
Ebben a ciklus már működik, az első fájlt le is menti, de utána a második összeillesztése előtt megáll, hogy nem találja a munkaidő-nyilvántartás fájlt.
Kellene kreálnom vagy 30 egyedi munkaidő-nyilvántartó excel táblát, amiben szerepelnek a delikvensek nevei, a feladatuk meghatározása és a munkahelyük neve.
Ehhez van adatbázisom, az alábbi makróban adattabla_*.xlsx néven, van munkaidő nyilvántartó excelem munkaidonyilvantartas_*.xls néven. Utóbbiban van négy munkalap, havi bontásban lehet vezetni a munkaidőt.
Azt kellene megoldanom, hogy egyenként beillessze az adattáblában szereplő 29 ember nevét, munkahelyét, feladatát (adattabla_*.xlsx C,R és Q oszlop 2-30. sor) a megfelelő helyekre az nyilvántartásba (munkaidonyilvantartas_*.xls, D10, D11 és D12 cellák, 2014_09, 2014_10,2014_11 és 2014_12 munkalapok).
Ez így egy sorból kiszedi és bemásolja + lementi az adatokat úgy, ahogy szeretném, de nem tudom, hogy a ciklusnak hogyan álljak neki, hogy a többi sort is ugyanígy megcsinálja.
Egy kicsit pofásítottam rajta, az eredeti soraid megjegyzésként benne maradtak (' aposztróffal kezdődik a VBA-ban)
A félkövérrel szedett sorok a működőek.
Első kérdésedre a választ a kékkel jelölt sorok adják - e két sort egy and operátorral össze is lehet fűzni egy sorba, de úgy gondoltam, így világosabb.
Második kérdésedre a pirossal jelölt sor ad választ. Az adott oszlopban jó mélyről indulva (általában a sorok számától), visszafelé lépünk - end(xlup) ez megfelel annak, amikor az end billentyű után a felfelé nyilat nyomod meg. Ez az első nem üres sorra fog állni (kivéve, ha az egész oszlop üres, mert akkor az első sorra), tehát az utána következő lesz az, amibe írhatunk. A makró így a 2. sorba kezdi az eredmény kiírását.
Sub for_loop() For i = 1 To 5 Sheets("Sheet1").Cells(1, "E").Value = Sheets("Sheet1").Cells(i, "A").Value 'Sheets("Sheet1").Select 'Range("A1").Select 'ActiveCell.Offset(-1 + i, 0).Select 'Selection.Copy 'Range("E1").Select 'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ ':=False, Transpose:=False For j = 1 To 5 Sheets("Sheet1").Cells(1, "F").Value = Sheets("Sheet1").Cells(j, "B").Value 'Sheets("Sheet1").Select 'Range("B1").Select 'ActiveCell.Offset(-1 + j, 0).Select 'Selection.Copy 'Range("F1").Select 'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False For k = 1 To 3 Sheets("Sheet1").Cells(1, "G").Value = Sheets("Sheet1").Cells(k, "C").Value 'Sheets("Sheet1").Select 'Range("C1").Select 'ActiveCell.Offset(-1 + k, 0).Select 'Selection.Copy 'Range("G1").Select 'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False macro1 'Application.Run ("Macro1") With Sheets("Sheet1") If .Cells(1, "L").Value <= .Cells(1, "I").Value And .Cells(1, "I").Value <= .Cells(2, "L").Value Then If .Cells(1, "M").Value <= .Cells(1, "J").Value And .Cells(1, "J").Value <= .Cells(2, "M").Value Then .Range("E1:G1,I1:J1").Copy Sheets("Sheet2").Cells(5000, "E").End(xlUp).Offset(1, 0) End If End If End With 'If "L1" <= "I1" <= "L2" And "M1" <= "J1" <= "M2" Then 'Range("E1:G1", "I1:J1").Select 'Selection.Copy 'Sheets("Sheet2").Select 'Range("E1").Select 'ActiveCell.Offset(-1 + i * j * k, 0).Select 'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'End If Next k Next j Next i End Sub
A következő feladatot Ti milyen makróval oldanátok meg, a lehető legrövidebb kóddal:
- a mellékelt kép “szamitas” sheet-jén látható A, B és C oszlopok változókat jelentenek, melyek lehetséges értékei a sorokban vannak
- ezeket szeretném bemásolni E1:G1 tartományba, az összes lehetséges kombináció szerint (5 X 5 X 3 = 75)
- minden másolás után nyomja meg “szamol” gombot, ami lefuttat egy másik makrót (itt most nem látszik, de tegyük fel, hogy ott van “szamitas” sheet-en)
- ha egy adott gombnyomás után x és y a min-max határok közé esik, E1:G1 és I1:J1 tartományt másolja “eredmenyek” sheet Ei+1:Gi+1 és Ii+1:Ji+1 cellákba, ahol i a legutóbb betöltött sor száma
Nincs erről részletesebben valahol a neten leírás, példákkal tarkítva, hogy jobban megértsem? Mert így még nem egészen értem. Nem is volt kapcsos zárójel sem az általad leírt képletben.
tömbképlet: Olyan képlet, amely több műveletet hajt végre egy vagy több értékkészleten, majd egy vagy több eredményt ad vissza. A tömbképletek kapcsos zárójelek ( { } ) között találhatók, bevitelükhöz a CTRL+SHIFT+ENTER billentyűkombinációt kell használni.
Lényegében egy mátrixon/vektoron végzi a műveleteket, vagyis teljesen másként számol, mint egy normál képlet.
Amit írtam, az például minden egyes elemnél megnézi az előfordulás számát és megnézi, hogy a mellette levő cella üres-e, és az így keletkezett értékeket összegzi. Ha csak sima képletként írnád be, akkor hibát jelezne.
Van egy jópofa 2 oldalas táblázatunk, ami sablonként van elmentve, majd azt nyitja meg mindenki. Kitöltik a megfelelő részeket, elmentik (makróval by Delila), aztán manuálisan kinyomtatjuk. A nyomtatónk tud kétoldalast, de ezt is be kell állítani külön még nyomtatás előtt, de van, hogy valaki elfelejti, és akkor két lapra nyomtatja.
Lehetne egy nyomtatás gombot készíteni, ami az alapértelmezett nyomtatóra küldi a cuccot, de úgy, hogy már be van állítva, hogy az bizony kétoldalasban menjen?
B oszlopban az áruház jelölése, ahol az a bizonyos tétel hírdetve van. Tehát egy bizonyos termék másik több áruházban is hírdetve van.
C oszlopban a termék ára
D oszlopban, hogy el van-e adva (igen, nem, máshol vagy üres üres a cella). Ahol igen, ott a többi áruhazra vonatkozóan máshol van beírva. Ha 1 áruházban van hírdetve és igen, akkor erre a tételszámúra nincs máshol, mivel több áruházban nem is volt hírdetve csak egyben. Ahol nem van, ott arra a tételszámú termékre az összes áruházban nem van írva.
Ami a kérdés:
Összeadni azoknak a termékeknek az árait, amelyek még nincsenek eladva. Tehát amelyik D oszlop cellája üres. De egy tételt csak egyszer szabad számolni akárhány áruházban is van hírdetve.
A fenti példa esetén 2001+4000, azaz 6001-et kell kapnunk.
A tételszámok szerinti sorok nincsenek sorbarendezve az oszlopban, hanem összevissza lehetnek. Azaz a fenti 1,1,1,2,2,3,3,3,3,4,4,4,5,5 helyett lehet pl: 1,1,2,3,3,1,4,5,5,4,2,3,4,5,3 is.
És többszáz tételszámú termék van.
Külön oszlop igénybevétele nélkül meg lehet ezt csinánálni? Egyetlen egy függvénnyel? Ha igen, mi az? :))
Köszi, akkor már csak az a kérdésem, hogy mivel az oszlopban egymás alatt nevek, ezeket kell folyamatosan átjavítanom, így a "Itt egy ékezetet is tartalmazó szöveg1." helyett simán betehetem mondjuk, hogy "a1", az az:
Végül is most sikerült megoldani úgy, hogy a "mire cserél" mezőbe aposztrófot írtam, mert véletlenül pont a cella elején volt a cserélendő szöveg, de mindenképpen abszurd.
LibreOffice Calc programban hogy tudom azt megcsinálni, hogy ha rákattintok egy cellára akkor annak sorát és oszlopát is valamilyen színnel kiemeli, vagy csak kijelöli?
2.
Hogyan lehet azt megoldani LibreOffice Calc programban, hogy két egymás mellett lévő oszlopban ha az egyik oszlop celláját kitöltöm akkor a mellette lévő oszlop ugyan azon sorában lévő cellába már ne lehessen beírni semmit?
Az arany kiszamolasat kozvetlenul beirva nem fogadja el, allandoan keplethibat jelez, a fuggveny ablakot elohivva kategoriankent megadva az adatokat mar elfogadja, de a helyezesnel az se mukodik, az F2-ot semmikepp se fogadja el valamiert.
Ezert utalom az excelt, rossz a dokumentacioja, nincsenek peldak, igy amikor hibat jelez, nem lehet rajonni, mi a baja, mert trivialis dolgokra mondja, hogy nem jo, de azt nem, hogy miert. Hiaba nezem a helpet, nincs indoklas, nincs reszletes pelda, csak feluletes valami, es en meg nem jovok ra, mi lehet a hasfajasa.:-(
Kicsit tovabbgondoltam a feladatot. Az arany kiszamolasa ezzel a modszerrel csak akkor hasznalhato, ha a B oszlop adatai egyertelmuen valtoznak. A gyakorlatban A es B oszlopok valtozasara kell szurni, es erre vegkepp nem lattam peldat a sugoban.
A pivotra se talalok megoldast, valoban csak egy adatot enged beirni, itt pedig tobb kell. Arra gondoltam ,talan szinezessel megoldhato lenne egy trukk, helyezes szerinti sorrendben szinek jelzik, melyik fajtahoz tartozik az adat.
De akkor is ket pivot tabla kell, egyiken a szamadatok, a masikon a reszaranyok.
Talan valoban adatbazissal jobban lenne kezelheto, de ahhoz meg ennyire se ertek. ;)
Ha a .Fill.ForeColor.Brightness-t nullától eltérő értékre is állítanád valahol, ott is hibára futna. Ebből következik, hogy mindkét helyen törölheted a sort.
Amennyiben nem sikerül az objektumok együttes kijelölése, külön-külön add meg a paramétereiket.
Pár hónapja voltam itt egy problémával, most újra előveszem. Sajnos a fájlt továbbra sem tudom elküldeni, mert bizalmas dokumentum, de a problémás kódokat kigyűjtöttem.
Előzmény:
Egy olyan eszközön dolgozom, ami egy részletes adatbázis továbbá grafikus felület, melyen összekötő vonalak és egyéb alakzatok vannak. Az alakzatok színe, formája aszerint változik, hogy az adatbázis, mely elemeire szűrünk. Például: azok az összekötők, ahol az adatbázis X értékei 1 és 10 között vannak, pirosak, 10 és 20 között kék, stb. A makró továbbá minden egyes "színezőgombhoz" generált egy jelmagyarázat dobozt is, a magyarázatban lévő adatok szintén aszerint változnak, hogy mely színezőmakrót futtatom. Ezt úgy oldottam meg, hogy minden új színező parancs törli az előző magyarázat box elemeit, majd egy rejtett munkalapból kimásolja az alap boxot, és a makró alapján generál egy új magyarázatot. Továbbá van még egy extra funkció a grafikus felületen: részletes és sima nézet, ami a főbb összekötőket és alakzatokat kiemeli, míg a mellék összekötőket és alakzatokat "hátra küldi", majd ugyanez visszafelé - itt úgy rögzítettem a makrót, hogy elemek kijelölése majd formázása (vastagítás, hátraküldés stb.)
A problémám a következő: ez az alkalmazás tökéletesen működik a gépen, ahol megírtam - Office 2013 alatt. Miután megnyitottam otthoni illetve egyéb gépeken, a makrók nem futnak le, helyette egy sor hiba jön fel. Szerintem ez a probléma a különféle Office verziók miatt van. Otthon 2003, másik munkahelyi gépen pedig 2007 van, ezeken nem futnak le a makrók.
Íme a kód egy részlete, a pirossal kiemelt résznél jelez a debugger:
ActiveSheet.Shapes.Range(Array("Color8")).Select With Selection.ShapeRange.Line .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorText1 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = 0 - object does not support this property or method .Transparency = 0 End With ActiveSheet.Shapes.Range(Array("Text8")).Select Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "Main line" With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 9). _ ParagraphFormat .FirstLineIndent = 0 .Alignment = msoAlignLeft End With With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 9).Font .Bold = msoTrue .NameComplexScript = "+mn-cs" .NameFarEast = "+mn-ea" .Fill.Visible = msoTrue .Fill.ForeColor.ObjectThemeColor = msoThemeColorText1 .Fill.ForeColor.TintAndShade = 0 .Fill.ForeColor.Brightness = 0 .Fill.Transparency = 0 .Fill.Solid .Size = 9 .Name = "+mn-lt" End With
A másik hiba a kijelöléseknél jött ki 2007-es Office-ban:
With Sheets("Izé").Shapes.Range(Array("egyes", "kettes", "hármas")) - object not found .Line.Visible = msoTrue .Line.Weight = 1.5 End With
Ha ezeknek a kódoknak kompatibilitási problémája van, akkor mivel lehetne helyettersíteni, hogy működjön visszamenőleg is?
Előre is köszönöm a válaszokat, remélem most pontosabban tudtam fogalmazni, mint legutóbb.
A jegyzettömbbe kopizós kézi megoldásod nem probléma, 2-3 perc az egész. Azzal van a baj, hogy a sorok elcsúsznak, üres sorok keletkeznek és lehet, hogy nincs benne rendszer. Persze ezt egy formázós rutinnal talán meg lehet oldani (ahogyan a letöltött adatokkal teszem most is), dolgozni fogok rajta. Kösz.
Igazad van, nem tudom megoldani a dolgot. Azt hittem, hogy van egy CSV fájl, amit valahol elérsz, és megnyitsz. Viszont itt egy honlapról kellene letölteni az adatokat TEXT formában, amit nem tudok megoldani.
Kézi parancsokkal meg tudtam oldani. Megnyitottam a honlapot. A teljes oldalt kijelöltem, és kimásoltam (Copy). Ezután megnyitottam a Jegyzettömb programot. Ebbe bemásoltam (Paste), majd ezt az oldalt elmentettem.
Az így mentett fájlt már be tudta olvasni a korábban beírt kódom.
Innen két lehetőség van.
1. Ha nem kell túl sűrűn elvégezned a műveletet, akkor esetenként magad is elvégzed kézzel. Majd ráereszted a kódot, ami megfelelő formában átteszi az adatokat Excelbe.
2. Bízzunk benne, hogy a megnyitás utáni kijelölést, másolást, és a jegyzettömbbe történő beolvasást, majd a mentést valaki meg tudja oldani Excel programmal, és az így készült fájlra már a program ráeresztheti a kódot.
Adok egy linket egy holnapi versenyprogramról. A 3:20-as futamban pl. vannak a B oszlopban 0-val kezdődő karakterek. Tehát csak a B oszloppal van probléma, minden más jó az eredeti kóddal.
Egy apró pontosítás: "Igen, ha már beolvasta a forrásformátumot, akkor valószínűleg hiába minden". Éppenhogy nem erről van szó. Beolvasta az adatot, mégpedig nem a forrásformátumban, hanem átállítva a saját - megadott feltételek melletti - formátumára. És valószínűleg ezt kell megakadályoznunk a TEXT formátumban történő beolvasással. A dolog mélyebb szakmai hátterét sajnos nem tudom.
Azért még teszek egy utolsó kísérletet. Igaz, hogy egy .CSV fájllal kísérletezgettem, és nem internetről származó fájllal, de meglepne, ha elvi különbség lenne a kettő között.
Az általad írt sorok felhasználásával törölte a program a vezető nullákat. Amikor vak tyúkként megpróbáltam az alábbi programsorokkal lefuttatni, akkor megtartotta a vezető nullákat, és ha egy sorban több vesszővel elválasztott adat volt, akkor azokat és szépen külön oszlopokba tette. Szerintem tégy egy próbát ezzel! Veszteni nem veszthetsz:
Option Explicit
Sub Beolvas()
Dim a, b
b = Range("A2")
' Set a = ActiveSheet.QueryTables.Add(Connection:="URL;" & b, Destination:=ActiveSheet.Cells(6, 1))
' helyette:
Set a = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & b, Destination:=ActiveSheet.Cells(6, 1))
Igen, ha már beolvasta a forrásformátumot, akkor valószínűleg hiába minden. A beszélgetésben ahogy látom, fájlból olvas be, nem a webről, ezért az ottani kódsorokkal nem tudok mit kezdeni, hiába variálok, mindig hibaüzenet kapok. Ráadásul egyáltalán nem értek hozzá, a vaktyúk-effektus pedig itt biztos, hogy nem jön be. Mindenesetre kösz neked is.
Ebben a kérdező (#3 hozzászólás) azt panaszolja, hogy ha egy rekord formátuma 04.000, azt az Excel 4-nek olvassa be. A #4 hozzászóló azt javasolja, hogy nem számként, hanem TEXT-ként olvassa be, mire a kérdező azt mondja, hogy működik a dolog. A beszélgetés további része már nem biztos, hogy érdekes a probléma szempontjából.
Hátha errefelé lesz a probléma gyökere. Van egy olyan gyanúm, hogy ha már beolvasta az Excel szubrutin az adatot, akkor már késő lesz formázni, ezért a beolvasás pillanatában kellene megcsípni a forrásformátumot.
Ezeket a képleteket végighúzhatod az oszlopon. Az összeg sorokba eső képleteket a részletek összecsukása után egy mozdulattal törölheted.
A pivotokkal kapcsolatban egyenlőre egy megjegyzés:
Ilyen különböző mértékegységeket egy diagramon ábrázolni képtelenség, maximum két tengely van, ahova kétféle léptéket lehet felvenni (pl. abszolut szám és százalék). Marad még a sorbarendezés a szemléltetésre 3. "dimenziónak". Pár lehetőséget megpróbálok majd összerakni, de ehhez kell egy kis idő még.
A pivotnal az a legnagyobb gond, hogy egyesevel kell lapozni, ha grafikont akark megjeleniteni, es ugy tudom kinyomtatni. Vagy mindegyiket kulon munkalapra teszi, es akkor vegig kell lepkedni rajtuk es egyesevel kinyomtatni.
A legelso munkalapon egy "favagashoz" kernek segitseget.
Hogyan lehet megoldani, hogy valtozo teruletnel az adott teruleti szam oszesenjehez kepesti aranyt kiszamolja, majd ezek alapjan az elert helyezest is?
Kezzel megoldhato, hogy beirom az aranyokat, majd rendezen csokkeno sorrendben a teruletet, de nagyon sokaig tart.
Sajnos ugyanaz a hiba, mint alant. Jól látod, valószínűleg a beolvasásánál kellene megvariálni valamilyen tulajdonságot, de ehhez én kevés vagyok. Persze az is lehet, hogy nincs rá megoldás. Kösz mindkettőtök segítségét.
A formátum elején egy db nulla, utána legalább annyi # ahány értékes számjegyed lehet. Az sem baj ha több van, mert mindig csak az értékes számjegyek fognak megjelenni, nulla vezetővel.
DE: Ez MINDEN számot így formáz, akkor is, ha egyébként nem kellene elé a nulla!!!
Szerintem a beolvasásnál kellene valamilyen módon megadni azt, hogy a vezető nullákat ne egye meg (kvázi, kezelje szövegként ami bejön). Még nem találtam meg ennek a lehetőségét.
Beírod valahová a tételeket, mondjuk másik munkalapra, kijelölöd és adsz neki egy nevet, utána a kívánt cellában adatok/érvényesítés/lista, forrás a megadott név.
Ezzel a megoldással csak akkor kerülsz bajba, ha az adott betűcsoportok (né,éné,áné,stb.) nem csak a név végén, hanem valahol a névben is előfordulnak.
Ilyenkor kicsit bonyolultabb a dolog, mert HA függvényekbe kell szöveglevágó és cserélő függvényeket beágyazni:
Pl. =HA(JOBB(A1;3)="áné";BAL(A1;HOSSZ(A1)-3)&"a";HA(JOBB(A1;3)="éné";BAL(A1;HOSSZ(A1)-3)&"e";HA(JOBB(A1;2)="né";BAL(A1;HOSSZ(A1)-2))))
Excel verziódra nem emlékszem, de már a korábbiakban is lehetett előre definiált "stílusokat" beállítani a pivot tábláknak, már a létrehozáskor is amit később lehet módosítani.
Úgy emlékszem, lehet alapértelmezést is beállítani, akkor minden pivot egyformán formázódik.
Egyébként minden pivotot egyedileg kell létrehoznod...
Ha mindet ki akarod "egyszuszra" nyomtatni, ahhoz makró kell, for each ciklussal nem kell tudnod, hogy hány pivottáblád van. A makróba akár egyedi formázást is tehetsz (pagesetup tulajdonságai).
A pivothoz tartozik többféle tartomány tulajdonság, azzal beállíthatod a nyomtatási területet.
De mégegyszer, ezek eléggé verziófüggő eszközök és lehetőségek.
Valaki legyen szíves módosítani annyit, hogy ne a teljes sort színezze, hanem csak az "A:X" tartományt?
Ha kiveszem az "entirerow"-t akkor csak az "E" oszlopban lévő azokat az elemeket színezi, amik több mint egyszer szerepelnek az oszlopban
"entirerow"-val viszont az egész sort telibe színezi (a többszörös elemeknél), ami hülyén néz ki, ezt szeretném orvosolni, de nem tudtam rájönni a mikéntjére.
köszi
P.
Sub Highlight_Duplicate_Entry() Dim ws As Worksheet Dim cell As range Dim myrng As range Dim clr As Long Dim lastCell As range
Set ws = ThisWorkbook.Sheets("Listázás") Set myrng = ws.range("E7:e" & range("E" & ws.Rows.Count).End(xlUp).Row) With myrng Set lastCell = .Cells(.Cells.Count) End With myrng.Interior.ColorIndex = xlNone clr = 15
For Each cell In myrng If Application.WorksheetFunction.CountIf(myrng, cell) > 1 Then ' addresses will match for first instance of value in range If myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastCell).Address = cell.Address Then ' set the color for this value (will be used throughout the range) cell.EntireRow.Interior.ColorIndex = clr clr = clr + 1 Else ' if not the first instance, set color to match the first instance cell.EntireRow.Interior.ColorIndex = myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastCell).Interior.ColorIndex End If End If Next End Sub
Számított mezőt vagy számított értéket is tehetsz a pivot táblába, ahol nem csak számítási műveleteket, hanem még függvényeket, képleteket is használhatsz. Verziótól függ, hogy melyik menürészben találod a pivottáblás menük között.
Az első, illetve második HA rendben van de a harmadiknál az E7-ben és G7-ben lévő összeg összeszorzása helyett az előző fv-ben lévő 0,5-el szorozza meg a szorzatot, nem tudom mi lehet a probléma, kérlek segítsetek.
=IF(AND($A2<=E$1,$B2>E$1),1,""), ez az a képlet, mely beosztja az 1-eseket az időpontokhoz.
Ha A2-ben van az első érkezési időpont, B2-ben a távozás, és ha felveszed az órákat 1-24-ig E1-F1-G1 stb oszlopokba, akkor E2 cellába kell kerülnie ennek a képletnek.
Ez aztán lemásolható az alatta lévő sorokba is.
Célszerű egy napra összegezni a munkaidőket, illetve hogy hány ember van bent.
Ha túl nyúlik 1 napon, akkor az éjfél utáni órákat a 24-re ráépítve kezelheted, tehát hajnali 1 óra 25, hajnali 2 óra 26 stb. A képlet ilyen módon jól működik. Nyilván A és B oszlopba is ilyen, 24 óra feletti értékeknek kell kerülni.
Én inkább napi szinten nézném, pl. szept. 1. 1-24 óra az 1. munkalapon, majd másik munkalapon szept. 2. 1-24 óra, mivel utána egy egyszerű Összesítéssel (Consolidation) az azonos struktúrájú adatok egy pillanat alatt összegezhetők havi szinten az utolsó munkalapon.
A 0-24 óra valójában tehát 1-24 óraként működik, hiszen az 1. megkezdett órára értelmezhető az 1.
Segítségre lenne szükségem. Egy teljesen "egyszerű" beosztásfigyelő táblázatot szeretnék összehozni és egy pontján elakadtam.
Példa:
A1 cella egy legördülő menü, ebből kell kiválasztani a kezdés időpontját. (csak egész órák vannak - ..., 6, 7, 8, 9, ...) (1-24-ig)
B1 cella szintén legördülő menü, ebből kell kiválasztani a munkavégzés időpontját. (szintén csak egész számok vannak - ..., 14, 15, 16, 17, ...) (1-24-ig)
A2 és B2 ugyan így van, mert több dolgozó van.
A3 és B3 -"-
.
.
.
A gondom az, hogy egy olyan táblázatra van szükségem vagy függvényre, mely megmondja, hogy az adott órában hány dolgozó volt jelen.
Vagyis a táblázat oszlopai a dolgozók (1. oszlop AB1 pár, 2. oszlop AB2 pár,...) sorai az órák.
Tehát ha van egy dolgozó, aki 6-ra jött és 12-ig volt, akkor az ő oszlopába 6-12 minden sorba írjon egy 1-t a függvény.
Ha a másik dolgozó 8-16 van, akkor az ő oszlopába meg 8-tól 16-ig írjon 1-t a függvény.
Remélem értelmezhető, amit írtam.
(van egy mellék oszlopom, ami kiszámolja, hogy a kezdés és a vég között hány óra telik el (a számítás kiküszöböli a 24 órán túli munkavégzést is pl.: 22-06), gondoltam arra is, hogy ha a függvény megkeresi a munkakezdés időpontjának megfelelő helyet a táblázatban és meg van, hogy hány órát dolgozott az adott ember, akkor annyi cellába ír 1-t. Fontos, hogy nincs munka megszakítás, aki dolgozik, az ledolgozza a beírt mennyiséget)
Hali, én is kérnék egy kis segítséget makróírásban.
Szét kellene bontanom egy terméklistát + a hozzá tartozó, változó számú, egybe ömlesztve felsorolt regisztrációs számokat egy külön munkalapra, az alábbiak szerint.
Az új munkalapon az első (A) oszlopban legyenek egyesével a regisztrációs számok, és kerüljön minden egyes reg.szám mellé, a B oszlopba a saját termék név. A gond az, hogy van, ahol csak egy reg.szám van, máshol rengeteg reg.szám van egy cellába téve, adott termékhez rendelve.
Az irányított szűréshez rögzíts egy makrót a következőképpen:
-1 lépés: Nevezd el oszlopokat kijelölve a teljes adattartományodat, ahol változik a sorok száma (később jönnek még adatok).
Pl. A-D oszlopok kijelölve, majd Névmező fehér ablakba kattintasz felül, bal oldalt és begépeled: Adatok és Enter. Ezáltal definiáltál egy tartományt, melyben az összes oszlopod benne van.
Az irányított szűrésnél innen kezdve erre a névre, Adatokra kell hivatkoznod.
0. lépés: A Fejlesztőeszközök szalagot előcsalod az Excel Office gombjára (Fájl menü) kattintva, kiválasztva az Excel beállításai pontot, és azon belül legfelül balra, Népszerű elemek pontjára lépsz. Ott jobb oldalt, a harmadik kockát bejelölve kiválasztod a Fejlesztőeszközöket.
1. Indítod a makrórögzítőt (kis piros pötty van a gombon), hagyd meg a felajánlott beállítást, hogy Ebben a munkafüzetben hozza létre a makrót.
2. Törlöd a tartalmát annak a területnek (jobb egérgomb, Tartalom törlése), ahol a korábbi szűréseredményed megjelent, de annál inkább nagyobb területet, hiszen az új futtatás több sort eredményezhet.
3. Bárhol állva indítsd el az Adatok szalagon a Speciális szűrést.
4. A megjelenő ablakban a Listatartományhoz, az első fehér sorra írd be a tartományod nevét: Adatok
5. A Szűrőtartományodat téglalap alakban kijelölöd bekattintva a második fehér soron állva.
6. Kattintsd át a felső szövegnél, hogy Más helyre másolja, majd a harmadik fehér soron állva kattints bele abba a cellába, ahonnan kezdődően kéred az eredmény közlését (Hová másolja).
7. Kattints az Ok gombra.
8. Állítsd le a makrórögzítést (kék négyzetre kattintva).
+ 1 lépés: Menj fel a Fejlesztőeszközök szalaghoz, válaszd ki a franciakulcsos, egyéb szerelőkulcsos ikonú Beszúrás menüpontot, és a legördülő vezérlők közül válaszd ki a legelsőt, egy kis szürke dobozt. Ahogy rákattintasz, azonnal felugrik a makrólistád, amiben elvileg ez az új, egy darab makró lesz benne, kivéve, ha vannak korábban létrehozott personal makróid, vagy nyitva vannak még más, makrót tartalmazó Excel fájlok is.
Elvileg automatikusan a legutóbb létrehozott makrót jelöli ki az Excel, ehhez akarja hozzárendelni a vezérlő gombot.
Okézd le, majd a vezérlődoboz szövegét egy kattintással átírhatod Futtatás szövegre, vagy amire akarod.
Innen kezdve ha új adatsor érkezik, nincs gond, bemásolod az előző tartomány végére, vagy ha komplett új listát kapsz, mindent bemásolsz A-D oszlopokba. Ilyenkor automatikusan beleveszi az Adatok tartományba az Excel az új tartalmat és akár a kritériumokat is módosíthatod, megtartván a jelenlegi struktúrát és máris futtathatod a makrót a gombra kattintva.
Az egyik lehetőség, hogy az irányított szűrőt egyszer felveszed makróba, kicsit kipofozod, utána ráteszed egy billentyűkombinációra. Amikor kész vagy a sorok hozzáadásával, akkor a billentyűkombinációval frissíted. Ha egy példát felteszel valahova - már a makró felvétel utáni állapotban, akkor segítünk benne.
Másik lehetőség a kimutatás készítése. A mintafüzetedben ezt is meg tudjuk mutatni.
Lehet vele szórakozni, de tipikus példája annak, amikor a leggyorsabb Accessbe importálni az egész hóbelevancot, normális dátumot csinálni a hónap-napból, és lekérdezést csinálni a szűrő helyett. Amikor bonyolult szűrőket kezdesz alkalmazni, az az egyik csalhatatlan jele, hogy adatbázis-kezelési problémát akarsz táblázatkezelőben megoldani.
Sziasztok! Segítséget szeretnék kérni tőletek, mert elakadtam egy összetett munkafüzet készítése közben. 2007-es, angol nyelvű Excel használok, és egy havi kimutatást szeretnék készíteni. Egészen pontosan előadó, és az előadóhoz kötött hallgatók száma alapján szeretnék egy automatikusan frissülő munkafüzetet.
A munkafüzetemben négy oszlop van. Az első (A) oszlop a hónap, a második (B) oszlop a nap. A harmadik oszlop (C) az előadó neve, a legutolsó (D) oszlop pedig a hallgatók száma. Például egy átlagos sorom így néz ki:
Augusztus; 1; Kovács Béla; 15
És így tovább, végig az év napjai. Nekem azonban azt kell tudnom kigyűjteni, hogy mennyi hallgató volt. Tehát például azt, hogy kinél, és milyen napokon volt 15 hallgató, és mindezt havi lebontásban.
Irányított szűréssel le is tudom kérdezni, több munkalappal akár minden egyes hónapot is. Azonban az irányított szűrő nem frissül automatikusan, ha egy új sors adok a munkafüzetemhez (mivel sokszor késnek az előadók a számokkal, szabadságok miatt akár több héttel később is, egy másik hónapba csúszva). Hogyan tudom az irányított szűrőt automatikussá tenni?
Ha eredmény megállapításra szeretnéd használni, akkor az A oszlopba ugye a csapatok/egyének nevei kerülnek és az A oszlop is része a rendezési területnek!!!
ha az üres sor alatti területet jelölöd ki és rendezed úgy, hogy C oszlopnak nevezed a rendezési szempontot, valamint nincs fejléc, akkor szintén rendesen működik.
ha az üres sort is beveszed a rendezendő területbe, akkor is a C oszlop szerint kell rendezni (mivel az üres sorban nincs név), viszont ebben az esetben be kell jelölni, hogy van fejléc.
Az eredmény mindkét esetben ugyanaz, és ugyanaz mintha kitörölted volna az üres sort.
Köszi! :) Most már nekem is működik, töröltem az üres sort és jó lett. Azt viszont nem értem, hogy eddig miért működhetett, ugyanis ez egy korábbi táblázat átdolgozott verziója és ott az üres sorral együtt sem volt gond. De az már nem lényeges! Köszönöm a segítséget mindenkinek!
Ha úgy próbálom rendezni ahogy írtad, akkor teljesen összekuszálódik minden és az értékek is irreálisak. Egyébként igen egy sima képlettel kerülnek be a C oszlopba az adatok.
ND7000: Úgy is kipróbáltam ahogy leírtad, de még furább eredmények jöttek ki, meg egyébként is a 0 érték is egy érték és ahol 0 van ott annak is kell maradni.
Mindenesetre mellékelem a szóban forgó táblázatot, esetleg ha ránézne valaki. Köszi!
Én arra gyanakszom, így látatlanban, hogy, ahol nincs adat abban a sorban amibe a szűrőt berakod, azt nem veszi figyelembe. Tehát a 3 sor minden cellájában (ahol alatta adat van) irj be valami értéket.
Sziasztok, szeretnék segítséget kérni. Akadt egy kis gonodom az adatok rendezésével. 2007-es Excelt használok és főként nagyon egyszerű táblázatokat szoktam készíteni. A C oszlopban levő értékek (pontszámok) alapján szeretném rendezni az egész táblázatot, viszont ahogy kijelölöm az adott tartományt és rányomok a Rendezés méret szerint (csökkenő) Z>A parancsra a B oszlopban található neveket tökéletesen a C oszlopban levő értékek szerint rendezi legnagyobbtól a legkisebbig, viszont a C oszlopban az értékek (számok) sorrendje nem változik.
Ez a táblázat egy rangsor szeretne lenni, amilyet korábban már sikerült is elkészítenem, nem egyszer és nem kétszer. Most azonban valami nem klappol. Lehet, hogy valami beállítást nem vettem figyelembe vagy szimplán valami elemi hibát nem vettem észre a sorok és oszlopok között. Mindenesetre, ha valaki tudna segíteni nagyon hálás lennék érte! Előre is köszi! Mellékelek egy képet a problémámról:
Az alábbi táblázatot szeretném képlettel előállítani:
Az ÁTLAG($A$1;A1) képlet lehúzásával hibás értékeket kapok. Az angol nyelvű verzióban az AVERAGE($A$1;A1) képlet lehúzásával ugyanazokat a hibás értékeket kapom. Sőt még a Libbre Office is ugyanazokat a hibás értékeket állítja elő. A hibás értékek felülről lefelé: 1,00; 1,50; 1,50; 2,00; 2,00; 2,00; 2,50; 2,50; 2,50; 2,50; 3,00; 3,00; 3,00; 3,00; 3,00.
A státuszsorban viszont helyesen jelenik meg az átlagérték. Arra gondoltam, hogy valami rosszul van beállítva az Excel-ben, és ezért értelmezi tévesen az átlagszámítást. Mi a megoldás? Köszönöm a segítségeteket.
Delila10 , köszi szépen ez már majdnem tökéletes, fferi50 hez sajnos én hülye vagyok.
nem szőszálhasogatásként de ha e1:1 e2:12 és ha e1: 11 és e2: 2 akkor a D4 értéke ugyanannyi, ezt akármilyen A oszlopi változtatással tudnék pontosítani?
Ezt a kis felhasználói függvényt írd be egy modullapra:
Function hanyszorvan(ByRef holkeres As Range, mitkeres As Range) As Long hanyszorvan = (Len(Join(Application.Transpose(holkeres.Value), ",")) - Len(Replace(Join(Application.Transpose(holkeres.Value), ","), Join(Application.Transpose(mitkeres.Value), ","), ""))) / Len(Join(Application.Transpose(mitkeres.Value), ",")) End Function
Ezután a meghívása:
=hanyszorvan(amiben keresel , amit keresel)
Feltétel: mind a két területnek oszlopnak kell lennie.
A keresendő értéknek kettőnél több cellát is megadhatsz. De csak az egymásutániakat fogja figyelembe venni.
Én ezt egyszer feldolgoztam valakinek a kérésére, nagyon rendezett, gépbarát alakban vannak, le lehet szedni őket egy scripttel, és kitenni csv-be egy kis programozással.
Mondhatom, oltári nagy káosz van a füzetben. Azonos adatok tömkelege különböző tartományokban. Vesződtem vele jó ideig, de még a harmadáig sem jutottam a rendrakásnak, csak gondoltam, ha átnézed, segít a továbbiakban.
Kék karaktereket adtam a címsorban, mikor az oszlop érvényesítést tartalmaz, és pirosat, ha képlet van benne.
A politikában való járatlanságomat mutatja, hogy nem értem, hogy lehet 1-1 körzetben több nyertes.
Előbb gatyába kell rázni a tartományokat, utána lehet csak elgondolkozni azon, milyen grafikonokat, kimutatásokat érdemes az ésszerűen bevitt adatokból kicsikarni.
Kicsit off-ban kicsit félve, de megkérdezem a következőt:
A Nemzeti Választási Iroda honlapján szavazókörönként megtalálhatóak az adatok, a választás után nem sokkal. Szerintem bizonyára el lehet kérni/megvenni tőlük az információkat elektronikus úton.
Azt tutira sokkal könnyebb kezelni, mint adatokat bepüfölni - ellenőrizni több soron stb.
Esetleg arra egy képlet, hha van ami milliós, de van, ami 10milliós, 100milliós egyszerre de nem szeretném külön átirogatni minden sorban? vagy rendezzem növekvő sorban és minden új nagyságrendnél újra beírom?
Az lenne a kérédsem, hogyha excelben a például 1 987 654-et 2 millióra szeretném kerekíteni, az 1 574 321-et is és így tovább, akkor hogyan kéne beírnom?
Egy kérdés: megoldható-e az, hogy kizárólag a módosításokat mutassa a valtozaskovetes.xls fájl? Jelenleg a nem változott sorokat is mutatja megjegyzés nélkül - pl. az üres megjegyzéses sorokat törölhetné a program automatikusan a végén?
Még egy dolog: talán jobb lenne, ha a valtozaskovetes fájlban lenne maga a makró, hiszen ez állandó, csak az alap két fájl tartalma változik (regi - uj).
Amikor következő nap lefuttatom a makrót, akkor a korábban már meglévő valtozaskovetes.xlsm végére kellene hogy illessze be az új változásokat. Ez egy historikus fájl elvileg, ami mutatja, hogy az idők során milyen változások voltak a vásárlói adatbázisban.
Csak tipp volt reszemreol, mert tapasztalat alapjan nalam bevalt ez a fajta egyszeruseg.
Termeszetesen csak peldanak szantam a kepet. Egyszeru osszehasonlito tombkeplet voltanal fogva nem okoz lassusagot terjedelmes tablaknal. (En ezzel szoktam vizsgalni tobb ezer soros tablakat) Illetve feleslegesse teszi az fkereses osszehasonlitast, amit valoban sokaig szamolna...
Delila pedig biztosan segit a makros megoldasaban.
Kedves Vektor, köszi a tippet, de azt hiszem, a javaslatod nem oldja meg a problémát.
A feltöltött példa csak sematikus, a valóságban több ezer soros táblázatról van szó, több tíz változóval, ahol a közös ID alapján minden egyes Vásárló minden egyes adatát meg kell vizsgálni és összevetni a korábbi verzióval (rengeteg oszlopról van szó), majd a változásokat egy külön fájlba kell kilistázni. Az egyes rekordok nem ugyanazon a sorpozíción maradnak, hanem a teljes táblában változtathatják pozíciójukat, hiszen jönnek új sorok és törlődnek is.
Ha csak az lenne a feladat, hogy egy pár tíz soros kis táblázatban nézzük meg, mi változott, akkor egy fkeres + hol.van dinamikus oszlopvizsgáló függvény kombináció rögtön mutatná, hol van változás. Ezt követően viszont manuálisan kellene levadászni és kigyűjteni külön fájlba a változásokat, vagy egy irányított szűrővel lehetne megcsinálni, de ez megint csak manuális.
Ráadásul a táblázaton belüli képlettömeg kezelhetetlenné tenné szerintem a fájlt, ami ráadásul napi szinten változik valamelyest (vásárlók adatai, új vásárlók lépnek be stb.), így ez ilyen formában nem tűnik a legjobb megoldásnak.
Delila megoldását még nem láttam, mert sajnos nem tudom erről a gépről letölteni a fájlt, de ő szerintem makróval oldotta meg.
Az ID nem változhat! Ez az a mező, ami szerint keresni lehet a másik fájlban. Ha ezt módosítod, akkor honnan lehet tudni, hogy a régiben melyik sor adataihoz tartozik?
Kell egy fix érték az összehasonlításhoz, és ez az ID.
Egy kicsit módosítottam önhatalmúlag az elrendezésben.
A valtozaskovetes.xls-ben a Megjegyzés oszlopot áttettem az N oszlopba, így egyszerűbb a teljes sor másolása. Ebbe a megjegyzésbe azt a címet írtam be, ami az újban változott a régihez képest, pl. a T32-es ID-t tartalmazó sorban a Cím, a Felmondott szerződés, és a Szerződés megszűnésének időpontja.
A Tabla_uj.xlsx-ben a makró működésének könnyebb ellenőrzése érdekében festettem sárgára a változott cellákat. Természetesen erre nem lesz szükség élesben.
Adott két táblázat, azonos struktúrával, de időnként változó értékekkel. A nevük ezt tükrözi: Tabla_regi.xls, Tabla_uj.xls
Feladat: összehasonlítani az új táblát a régivel, és a változásokat egy harmadik táblában listázni: Valtozaskovetes.xls
A Valtozaskovetes.xls fájl struktúrája megegyezik az alap két tábláéval, de pluszban kell két oszlop. Az első plusz oszlop az első helyen lévő ID után kerül be, Megjegyzés néven. A második plusz oszlop a legvégére kerül Változás időpontja néven, és a változás aktuális dátumát jelzi, azaz a rendszeridőt (ma()).
Ha több változás is volt egy vásárlónál, akkor annyiszor kell másolni a teljes sort az új táblából, ahány darab változás előfordult a különböző mezőkben (cím, azonosító stb.).
Ha teljesen új a vásárló, akkor egyszer hozzuk át a teljes sor tartalmát át, ilyenkor a Megjegyzés: Új vásárló
A Megjegyzés kategóriák: Új vásárló - az ID alapján döntjük el (korábban nem létezett ID) Itt a teljes sort hozzuk át az új táblából Módosított ID A módosítás kategóriáknál annyiszor szerepeltetjük a vásárló összes adatát, ahány mező módosult, ha pl. 3 mező tartalma módosult, akkor 3 megjegyzés lesz és háromszor ugyanaz a sor Módosított Vásárló név Módosított Kapcsolat típus Módosított Raktári azonosító Módosított Város Módosított Cím Módosított Vásárolt termék Módosított Kapcsolattartó Módosított Más terméketet is kér Módosított Mióta ügyfél Módosított Felmondott szerződés? Módosított Szer.megszűn.időpont? Plusz oszlopba, Változás időpontja alá tegye be a rendszeridőt minden soron
Remélem, a fájlokat sikerült csatolni.
Mivel a valóságban több ezer soros táblákról van szó, az Exceles két ablak összehasonlítása verzió nem lenne túl jó megoldás, fkeres függvényezni meg ismét nem célszerű ennyi soron és ennyi változónál (még több van valójában).
Hogy indulnátok el? Logikailag az új tábla mezőértékeit változókba olvasnám be, és ezzel hasonlítanám össze a régi tábla értékeit, a kérdés már csak az, hogy hogyan?
A Jelöltek lapon csak az egyik körzetet hagyd meg, töröld a D oszlopot.
Ha valaki több körzetben is jelölteti magát – vagyis hétszentség, hogy saját magát akarja képviselni, nem a körzetet –, akkor egy másik sorba vidd be az adatokat.
Az egyes lapokon a bevitt adatokat táblázattá alakítottam, ami azt jelenti, hogy új adat bevitelekor a teljes új sor örökli a fölötte lévő cellák képleteit, érvényesítéseit, és a formátumot.
Mikor a Jelölő pártok lapon bővíted a sorokat, a Jelöltek lap E oszlopában lévő érvényesítések ennek megfelelően változnak.
Jo reggelt, vegre sikerult befejezni a kulso takaritast, most johet a belso, ha benne vagytok.;)
Mivel az irasom stilusat kifogasoltatok, ismet megjegyzem, hogy probalok hangosan gondolkodni, de mivel nem vagyok szakerto, vannak dolgok, amiket tenykent kezelek, de nem ugy van. Ugyhogy keretik ilyenkor erre felhivni a figyelmemet, nem erossegem a kommunikacio.
Ugy tunik, a feladat adatrogziteses resze nagyon egyszeru, de a kesobbi elemzesek eleg bonyolultak lesznek, ezert szukseg lesz adatrendezesre es segedadatokra is.
Amitol nagyon felek, azok a grafikonok, jo lenne valami automatizmust talalni ra, mert egyesevel ezernyit csinalni nagyon idegolo lesz.:-((
Tehat, az adatbevitel az elejen egyszeru, mindossze ennyit kell rogziteni, de ket lepesben:
1. szavazas datuma, szavazokorzet, reszveteli arany, szavazasra jogosultak szama (ez nem mindenhol ismert)
2. jelolt neve, jelolo szervezet neve, kapott szavazat. (esetleg elert helyezes, vagy mas jelzes a kesobbi elemzesekhez)
Ha tablazatba viszem be, akkor - ahogy javasoltatok is - mindent egy sorba kell rogziteni, az 1-eseket igy egymas utan ismetelni kell a 2-esek szamatol fuggoen.
Azert kerdeztem az adatbazist, mert akkor az 1-eseket kulon kell bevinni, es a 2-eseket kell hozza csatolva rogziteni.
Illetve ugye rogton adodik a ketfele adatismetleses problema. Tablazatnal ha azonos, vagy hasonlo adatot irunk be, a program felajanl egy mintat, ami mar elofordult. Adatbazisnal viszont csak egyszer szerepelhet az adat, ami szervezeteknel nagyszeru, de ha 23 kulonbozo Kis Pista szerepel kulonbozo helyeken, akkor ezeket meg kell kulonboztetni, ami kulon nyomozast kivan, hiszen ugyan az a szemely maskor vagy esetleg azonos idoben mas korzetben is jeloltethette magat.
Ugy tunik, az adatokat evente kell rogziteni, mert ugy lehet majd kovetni a szavazokorzetek valtozasait, az meg kulon adatokat igenyel majd.
Az elso kerdesem akkor az, hogy szerintetek hogyan celszeru az adatbevitelt megvalositani, tablazatba vagy adatbazisba, es a fentiek elegendoek, vagy modositasra szorulnak.
Köszi, hogy foglalkozol a problémámmal:)) értem, és csinálom.
De valami hiba még mindig van...bár egy kicsit kezdő vagyok...
Hiába a hét.napja() függvény, erre nekem #name hibát ír ki. Mi lehet a baj? A dátumos cella dátumként van formázva. Próbáltam dátumfüggvénnyel is beírni a dátumot ( bár rettentő macerás lenne így beírni 156 dátumot), de ugyanezt a hibát írta ki..
A1- maga a dátum ( 1 adott nap)
B1- túlórák száma
C1 - idejönne a kiszámolt összeg.( hétköznap 1000ft/óra, hétvégén 1500/óra)
Sziasztok! Segítsetek! AZ excellben van olyan függvény, ami egy dátumról ( pl 2014.08.22) el tudná dönteni, hogy az munkanap vagy hétvége? Túlórákat kellene kiszámolni, és más óradíj tartozik a hétköznaphoz, mint a hétvégéhez. Ha még az ünnepnapokat is "érzékelné" a függvény, még jobb lenne...
Nincs ilyen automatizmus az excelben. Makróval a munkalapváltás eseményébe be lehet írni, hogy minden egyes beírás után rendezzen újra.
Szerintem a beírást követően a rendezés gombra kattintani sem túl nagy kényelmetlenség. Főleg, hogy az eszköztárra ki lehet tenni a gombot, vagy billentyű kombinációhoz lehet rendelni... Beviszem a változásokat, megnyomom a rendező billentyűkombinációt, és kész is.
Lehet kimutatástáblát készíteni az adataidból, ez rendelkezik sorbarendező paraméterekkel is, ami a kimutatás(pivot) tábla frissítéssel automatikussá válik.
Nagyon köszönöm így majdnem tökéletes. minden müködik csak amikor bezárom a munkafüzetet hiba keletkezik mert a munkafüzet lapvédelemmel védett. A2 cellát feloldottam, fehérre festettem a kiszámított dátumot, így aki használja talán nem töröl bele. Azért kellett elrejtenem mert ezt a kiszámított dátumot az A10 es cellába szöveggel összefűzve használom ami már látható védett de így nem szól a makróhiba miatt.
Üdvözlök mindenkit! Lenne egy kérdésem: Van egy táblázatom, benne emberek (A oszlop), akik az idő során különböző pontszámokat kapnak (B-X oszlop) AZ Y oszlopban összesítve vannak az egyének által kapott pontok, a BL oszlopban pedig a sorszám található, amelyik megadja, hogy hanyadik az illető a csoport sorrendjében. Kérdés: Mivel a B-X oszlopokban gyakran változik az eredmény, megvalósítható-e az, hogy az érték beírása után az automatikusan kiszámított sorrend alapján automatikusan rendeződjön az állomány, vagy csak a Kijelölés - Adatok - Sorba rendezés... módszerrel kézzel lehet megcsinálni? (Jó lenne a pillanatnyi sorrendet mindig látni.) ____________ Excel2002
Az egyéni kategóriában ki tudod választani, majd a RÉSZÖSSZEG függvénnyel összegezheted az oszlopot. Ez a függvény mindig az aktuális szűrésben látszó értékeket szummázza.
köszönöm szépen mindkettőtöknek a segítséget. Fferi utolsó makrója megoldotta a problémát hálás vagyok.
De még van egy kis bibi :) Fferitől kapott makró és minden függvény csak számokkal tud dolgozni ezért át kellett alakítanom a makrót így:
If Not Intersect(Target, Range("A9")) Is Nothing Then If Not Range("A2").HasFormula Then Range("A2").Formula = "=MA()+H2"
Az A9 es cella lenyíló számokat és betűket tartalmaz. Ha itt változtatom az értéket egy másik munkalapon csak számként jelenik meg. Ezt a számot a =szum(másikmunkalap!B2) függvénnyel visszahozom a Munka1 be a H2 cellába. tehát a makró ezzel dolgozik. Még is hiba van az A2 be mégpedig "a képlet azonosítatlan szöveget tartalmaz" A szerkesztő lécbe folyamatosan ott van =MA()+H2 de az eredmény #név. Ha a szrkesztő lécbe kattintok majd entert ütök a képlet változatlan marad de hozza a dátumszámítást helyesen.
Pontos címeket írj, ne "pl:A9 ben változik az érték" módon.
Nagy nehezen előbányásztam a füzetet, amiben 1 éve megírtam a makrókat.
Abban az egyes lapokon az általad meghatározott sorokban összevont cellák vannak az A:D, és F:I oszlopokban. Egy-egy lapon Ter_1, Ter_2, és Ter_3 nevet adtam ezeknek a tartományoknak, amikben érvényesítések voltak. Ott az volt a feladat, hogy ha bármelyik lapon választasz egy értéket bármelyik érvényesítésben, akkor a másik két lapon az ezzel azonos érték helyett üres string legyen.
Most mit is akarsz elérni? Melyik lapon hova viszel be dátumot, és mi változzon meg ennek a hatására? Konkrét helyeket írj, melyik cellákba írhatsz, melyek mire módosuljanak.
Munka1(Also) Private Sub Worksheet_Change(ByVal Target As Range) Dim nev, lapnev$ Application.EnableEvents = False Application.ScreenUpdating = False lapnev$ = ActiveSheet.Name nev = Target.Value If Not Intersect(Target, Range("Ter_1")) Is Nothing Then Torles nev, lapnev$ Range(Target.Address) = nev If not Intersect(Target, Range("A1")) Is Nothing Then If Not Range("B1").HasFormula Then Range("B1").Formula = "=today()-A1" ' ide természetesen a Te képleted kell írni.
endif Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Van egy közös lista amit 3 munkalapon különbözö cellákban lenyílóként lehet elérni.
A cél hogy bármely munkalapon a listából egy elem csak egy cellában szerepelhet, ha tehát a Munka1 valamely cellájába a listából értéket adok és a Munka2 valamely cellájába ugyan azt az értéket kiválasztom akkor a Munka2 cellájába jelenjen meg és a Munka1 cellájából törlődjön. Ez volt eddig Delila makrója ami csodásan működöt.
ehhez szeretném a te makródat párosítani
A Munka1 pl A10 cellája úgy viselkedjen ahogy előzőekben megcsináltad Tehát ha pl:A9 ben változik az érték akkor A10 = Ma()-A9
Tehát a két makró külön kölön elvégzi a feladatát csak amikor Delila összetette már nem.
Az ö makrója megállt: a Munka2-ben kiválsztott cella értéket kapott és ua érték szerepelt Munka1-ben akkor Munka2-ben megjelent és Munka1-ben is holott a Munka1-ből törlődnie kellett volna.
Mára az is kiderűlt hogy a te makród sem müködik Delila makrójával, ugyanis nem fixálta a tegnapi értéket. Mikor ma megnyitottam a mai dátummal dolgozott.
Remélem most érthetően írtam le és bocs ha ködösen érthetetlenül fogalmazok.
Szia köszönöm, de most sem tökéletes. Sajnos egy munkalap megnyitásával csak egyszer tudok változtatni. Ahhoz hogy még egyszer változtassak be kell zárnom majd újra megnyitnom a munkafüzetet.
Bemásoltam a kibővítette makrót és Fferi makróját a
Thisworkbookhoz: Private Sub Workbook_BeforeClose(Cancel As Boolean) Munka1.Range("B1").Value = Munka1.Range("B1").Value End Sub
sajnos a Module1 hibát jelez Run-time error'9': Subscript out of range
itt : Sheets(lapnev$).Select.
és nem is törli az azonos adatot.
Válasz a kérdésre: A makrók így voltak formázva a munkafüzetbe csak kimásoltam a totalcommander jegyzettömbjébe ahol a formátum menün belül a hosszú sorok tördelése be van állítva. Így megmarad a szöveg formázása.
Munka1(Also) Private Sub Worksheet_Change(ByVal Target As Range)
Dim nev, lapnev$
Application.EnableEvents = False
Application.ScreenUpdating = False
If Not Intersect(Target, Range("Ter_1")) Is Nothing Then
Torles nev, lapnev$
lapnev$ = ActiveSheet.Name
nev = Target.Value
Range(Target.Address) = nev
Exit Sub
End If
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Not Range("B1").HasFormula Then Range("B1").Formula = "=today()-A1" ' ide természetesen a Te képleted kell írni.
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
A Thisworkbookhoz is vidd be Fferi makróját.
Kérdés: a makrót ömlesztve mutatta a fórum, egyenként kellett szétszabdalnom a sorokat, és szóközökkel pótolnom a tabulátorokat. Két böngészővel (Google Chome, és FireFox) is ilyen gyalázatos külsővel hozta. Te hogy vitted be tagoltan? Ugyanígy?
ActiveWorkbook.Names.Add Name:="Ter_3", RefersToR1C1:= _ "=Felso!R8C1,Felso!R10C1,Felso!R15C1,Felso!R17C1,Felso!R19C1,Felso!R24C1,Felso!R29C1,Felso!R31C1,Felso!R36C1,Felso!R41C1,Felso!R8C6,Felso!R10C6,Felso!R15C6,Felso!R17C6,Felso!R19C6,Felso!R24C6,Felso!R29C6,Felso!R36C6,Felso!R41C6" End Sub
A Munka1(Also)-be szeretném Fferi50--töl kapott kódot
Konkrétabban: Ha A1 a lenyíló cellád és B1 a számított a Munka1 munkalapon akkor a munkalap kódlapjára ezt írd be:
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Application.EnableEvents = False If Not Range("B1").HasFormula Then Range("B1").Formula = "=today()-A1" ' ide természetesen a Te képleted kell írni. Application.EnableEvents = True End Sub
A Thisworkbook kódjába pedig ezt írd be:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Munka1.Range("B1").Value = Munka1.Range("B1").Value End Sub
Így a munkafüzet minden becsukásakor fixálódik a B1 cella értéke, de amikor megváltoztatod a lenyílódat, akkor ismét visszakerül bele a képlet.
Hasznos ez a cucc, de nem ilyenre gondoltam. Hanem egy olyanra, hogy ha pl egy henger térfogatát, felszínét, akarom kiszámolni, akkor elég legyen csak bepötyögni az átmérőjét és a magasságát. Azaz ne kelljen a függvényt nekem megírni hozzá.
Sajnos csak most tudok válaszolni. Köszi jól működött a makrós-tömbképletes megoldásod. Esetleg van arra lehetőség, hogy vagy csak makróval vagy csak képletekkel van megírva a szövegkeresés?
Makró esetében pl.: két változóban (sor és oszlop) tárolná az eredményeket, ez azért lenne jó mert egy másik makróba lennének beillesztve vagy annak lenne ez a szövegkeresés a része.
Egyébként értékre kellene keresni, nincs képlet a cellában és nem szövegrészre, hanem a teljes szövegre. Nem tudom, hogy szükséges-e bármilyen egyéb info
"Összetett vizsgálatok esetén legfeljebb 64 HA függvényt ágyazhat egymásba érték_ha_igaz és érték_ha_hamis argumentum formájában."
Viszont a te esetedben én megfontolnám az index - hol.van függvények párosítását, ami sokkal egyszerűbb módon ad megoldást, erre találták ki. A hol.van függvénnyel megkeresed a sort és az oszlopot az INDEX pedig visszaadja az eredményt:
MIlyen hosszúságú lehet egy függvény maximálisan, mennyi "ha" és egyéb kitételek szerepelhetnek egy cellának az érték meghatározásánál?
kb miről is van szó? :
az egyik munkalapon van egy véletlen számsorom: pl A1:2, A2:6, A3:4, A4:7, A5:9, A6:9, A7:10, A8:12
a másik munkalapon egy táblázat van. a táblázat fejlécén rendre 1-12 ig vannak a számok, ugyanígy a sorok elején szintén 1-12 ig a számok.
a kereszteződési pontokban szintén értékek vannak.
az összes lehetőségre tehát ha Ha az 1. munalapon 2 után 6 jön akkor a 2. munkalap táblázatából a 2.sor 6. oszlop metszéspontjában található értéket írja ki, ha viszont a 2 után 12 jön akkor az ammak megfelelő értéket.
Egyáltalán sima függvény-kombóval ezt megtudom egyáltalán oldani?
Elfelejtettem valamit. Ahol szeretném futtatni az általad készített makrót ott már fut egy a Delia10 által készített makró. Egyszerűen csak írjam tovább az End rész után vagy új makróként rögzítsem. Most nem tudom kipróbálni mer nincs nálam az a munkafüzet.
AAJJAJ. Balfék vagyok. A probléma azt hiszem hogy nem makróbarát fájlként mentettem el. Most működik. Meglátom holnapra hogy reagál de már most tudom ha te segítesz biztos jó lesz.
Ha megváltoztatod a lenyílót, akkor sem lesz belőle képlet? A Worksheet_change makrót a munkalap kódlapjára kell bemásolni, ott ahol a bal oldalon meglátod lenyílót a General és a Worksheet értékkel, válaszd a Worksheetet. A jobb oldali lenyílóból válaszd ki a Change-et. A megjelenő Private Sub - end sub közé másold be abból amit írtam a közte levőket.
Ha nem megy, tegyél fel lsz. egy mintát valahova és megnézem.
De annyira amatőr vagyok:) Nálam nem működik. Azaz bemásoltam a kódokat kiválasztottam A1 ből egy értéket eddig minden jó bármely értékre hozza az eredményt. A probléma a munkfüzet bezárása és újranyitása után van: az előző számítás ott van de már nem tudom megváltoztatni másra.
Ezt elég bonyolultan lehet megoldani. Ha csak egy ilyened van, akkor a bezárás előtt a számított cellát alakítst át értékké és úgy mentsd el a munkafüzetet. Ezt a thisworkbook beforeclose eseménykezelésben tudod megtenni: második_cella.value=második_cella.value
Majd amikor megnyitod és átállítod a lenyílóban az értéket, akkor írd át képletre.
Ez utóbbit a worksheet_change eseményben tudod megtenni, kb. így. if not második_cella.hasformula then második_cella.formula="=ma()-lenyilócella"
Konkrétabban: Ha A1 a lenyíló cellád és B1 a számított a Munka1 munkalapon akkor a munkalap kódlapjára ezt írd be:
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Application.EnableEvents = False If Not Range("B1").HasFormula Then Range("B1").Formula = "=today()-A1" ' ide természetesen a Te képleted kell írni. Application.EnableEvents = True End Sub
A Thisworkbook kódjába pedig ezt írd be:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Munka1.Range("B1").Value = Munka1.Range("B1").Value End Sub
Így a munkafüzet minden becsukásakor fixálódik a B1 cella értéke, de amikor megváltoztatod a lenyílódat, akkor ismét visszakerül bele a képlet.
Egy cella legördülö választó lista aminek a tartalma szám+betű (1 nap).
Egy másik cella tartama a ma fügvény - az előző cella tartalma.
A lényeg hogy a ma függvényből vonjon ki annyi napot amennyit az első cellában kijelölsz. Ez meg is valósul. De én azt szeretném hogy a következő nap a tegnapi érték maradjon. Tehát már ne a ma függvényből számoljon de ha változás történik az első cellában akkor újra a ma függvényből számoljon.
Nem mindegy, hogy a keresés a cella értékére, vagy a cellában szereplő képletre irányul. Nézd meg lsz. Ctrl+F után előjövő párbeszédpanel egyebek gomb megnyomása után láthatókat.
Gondoltam, ezekre akkor térünk rá, ha nem tetszik az első megoldás. Meguntam folyton visszakérdezni a hiányzó információkra. (Már jó rég meguntam, ami azt illeti.)
Én beállítanám, hogy értékben keressen - vagy csinálnék egy paramétert rá, hogy képletben vagy értékben keressen, ami esetleg elhagyható, de akkor az érték legyen az alapértelmezett. Vagyis hozzátenném a lookin paramétert.
A szövegről sem tudjuk, hogy az a teljes cella tartalma-e, vagy annak csak egy része. Ezért vagy "*" & Keresett_szöveg & "*" -ot keresnék és akkor jó a lookat:=xlwhole, vagy lookat:=xlpart és akkor megtalálja akkor is, ha nem a teljes cella tartalom egyezik.
Ez azért is fontos szerintem, mert a find megtartja azokat a korábbi keresési beállításokat, amin nem változtatunk
Igaz, a kérdező mindkét fenti kérdésről bölcsen hallgatott.
egyelőre a képletet próbáltam csak, olyan képletet viszont nem találtam hogy szövegkeresés csak olyat, hogy szöveg.keres, ami viszont nem ugyanaz szerintem.
Function Szövegkeresés(Vizsgált_tartomány As Range, Keresett_szöveg As String) Dim Arr(1 To 2) As Long, Hit As Range
Set Hit = Vizsgált_tartomány.Find(what:=Keresett_szöveg, lookat:=xlWhole) If Hit Is Nothing Then Arr(1) = -1 Arr(2) = -1 Else Arr(1) = Hit.Row Arr(2) = Hit.Column End If Szövegkeresés = Arr End Function
Ha pl. a vizsgálat tartomány A1:H12, a keresett szöveg pedig L2-ben van, akkor
Olyan problémám van, hogy szeretnék függvényekkel, jobb esetben makroval meghatározni egy táblában egy cella helyét, amiben szöveg van. Az oszlop és a sor számára lenne szükségem.
pl.: az excel szót írtuk a L23-as cellába, akkor nekem arra lenne szükségem, hogy a 12. oszlopban és a 23. sorban van, úgy hogy csak az excel szóra kereshetek rá, az alapján kellene meghatározni a helyét.
a hol.van függvényt sajnos csak egy oszlopra lehet használni tudtommal, táblázatban nem használható.
az oszlop és sor függvényekkel az a baj, hogy a cellára csak a sorral és osszloppal lehet hivatkozni pont amire szükségem van.
egyéb mátrix függvények sem jók.
Makrót sajnos annyira nem vágom, hogy ilyet írjak.
Van valakinek ötlete, hogyan lehet megoldani, a makro talán még jobb lenne, de a függvényes megoldás is érdekelne ha van.
A sorok között viszont némi pökhendiség jön át, amit én viszonylag nehezen viselek el
Bocsanat, nem volt szandekomban.
En amolyan mogorva tipus vagyok, aki nem sokat beszel, csak a vegeredmenyt mondja, mert ha megprobalom elmagyarazni a reszleteket, tul dagalyos leszek es felreertenek.
Most sajnos par napig van mit takaritani a haz korul, igy azzal leszek elfoglalva, utana irok egy tomor osszefoglalot.
"Raadasul ugy kell megtenni, hogy majd adatbazisba lehessen attenni, amirol meg senki se tudja, hogyan fog kinezni, mert eloszor az adatokat kell rogziteni."
Szóval téglákat gyűjtesz egy épülethez, amiről azt se tudod, hogy fog kinézni. Felhúzol 1-2 falat, aztán jöhet a tervező?
"Azzal kezdtem, hogy nem ertek hozza, ezert kerek segitseget."
A sorok között viszont némi pökhendiség jön át, amit én viszonylag nehezen viselek el olyantól, aki szívességet két tőlem. Meglehet, nem volt ilyen szándékod, de a hatás ott van, és ez esetben kérdés, hogy mitől gyakorolsz ilyen hatást másokra.
"A masik a penz volt, eleve azt felteteleztetek, hogy ez egy nagy penzt hozo buli."
Tévedés. Más kérdés, ha valami gigaprojektről van szó, amibe 80+ munkaórát bele kell tenni, ilyesmit nem szoktunk grátisz felajánlani, Feri is erre célozhatott. De alapvetően ezen a fórumon nem pénzért mérik a segítséget. Ami viszont nem jelenti azt, hogy ingyen van. A jó válasznak jó kérdés az ára. Értelmes, átgondolt, konkrét kérdés kell. Esetedben még 4 hozzászólás után sem derült ki, hogy milyen segítséget is vársz valójában.
Már "csak" azt kellene tudnunk, hogy milyen jellegű adatokat kell rögzítened. Mert ettől nagyban függ az adatbevitel hibamentesítésének lehetősége.
Legalább azt mond már el, hogy milyen papír alapon létező adathalmazról beszélsz (mert a választás az egy dolog, de ahhoz kapcsolódva sok-sok féle adat keletkezik): kérdőív, jegyzőkönyv,jegyzetek,feljegyzések stb, és mi azok tartalma szöveg, szám, papírdarabonként hány 10-100-1000 adat lesz.
Továbbá: Ha csak egy iskolai dolgozat lesz, akkor miért is izgat ennyire az adatbevitel pontossága? Nem lebecsülve a feladat fontosságát, de nem mindegy, hogy éppen 10 vagy 100 került be oda arra az adott helyre. Nyulat fognak vele lőni?
Nem érted. Az ellenséges hozzáállás kizárólag a stílusodnak szól, amivel menőnek próbálod meg eladni magad, holott minden második mondatodból kiderül, hogy nem értesz a témához, és nem tudsz jól kérdezni sem.
Ez mar onmagaban ellentmondas.
Azzal kezdtem, hogy nem ertek hozza, ezert kerek segitseget.
Erre nekem estek, hogy "tanar vagy, megse tudsz semmit."
(Mert, ugye, egyedul a tanar az, aki azert kerdez, hogy a masik tudja-e a valaszt. Mindenki mas azert kerdez, mert valaszt szeretne kapni.)
A masik a penz volt, eleve azt felteteleztetek, hogy ez egy nagy penzt hozo buli.
Egyikrol sincs szo.
Latom, hogy az adatrogzites nagyon egyszeruen megoldhato, de sok hibalehetoseget tartalmaz a kesobbi elemzeshez. Ezert kertem segitseget.
Az kevés, részmegoldásnak itt nincs értelme. Ez mindent vagy mindent játék.
"En legszivesebben rogton adatbazisba rogzitenem az adatokat, igy kikuszobolhetoek az elgepelesekbol adodo hibak."
Független, egyedi adatok begépelésekor elkövetett hibákat semmilyen adatbázis adatbeviteli felülete nem szűri ki. Annyit tudhat esetleg, hogy egyes beírandó adatok listából választhatóak, és akkor nem áll fenn az elgépelés veszélye. Ezt viszont Excellel is meg lehet oldani.
"Na igen, mar ertem az ellenseges hozzaallasotokat."
Nem érted. Az ellenséges hozzáállás kizárólag a stílusodnak szól, amivel menőnek próbálod meg eladni magad, holott minden második mondatodból kiderül, hogy nem értesz a témához, és nem tudsz jól kérdezni sem.
De ajánlok egy alkut. Menj be egy autógumi szaküzletbe, és kérj 4 db gumit a nem létező autódhoz, aminek még a típusát, márkáját, meg semmijét nem tudod, csak azt, hogy a Dunán szeretnél vele eljutni Moszkvába. Majd valamikor. Aztán amikor az eladók értetlenül néznek, világosítsd fel őket, hogy ne bénázzanak itt, te olyan embert keresel, akinek van autógumiban tapasztalata. Ha sikerül ott ezek után autógumit venned, gyere vissza ide, és megígérem, hogy segítek megoldani a feladatodat, és nagyon-nagyon türelmes leszek.
"Ez egy diakdolgozat lesz es ev vegere vagy januar kozepere kell leadni"
Újabb érdekes csavar.
Iskolai feladatoknak az szokott lenni a lényege, hogy a nebuló megértse a dolgok működését. Ezek általában kamu adatokkal mennek, és a program vagy adatbázis vagy beképletezett táblázat logikai felépítésére kíváncsiak, nem a hatszázezer adat hibátlan begépelésére. Sőt, inkább rendelkezésre szoktak állni az adatok elektronikus formában. Kíváncsi lennék, melyik iskola az, ahol ilyen feladatokat adnak ki.
"Szenvedes annal tobb, mert be kell gepelni az adatokat, az lesz az en reszem.;)"
Ha csak az adatbeviteli hibák kiküszöbölése a célod, akkor olvasd el, amit az Excel súgó az adatérvényesítésről ír. (Vagy keress rá a gugliban.)
Egy korábbi hsz-odból:
"Annyi biztos, hogy minden idoponthoz es helyhez tartozo adatot kulon tablazatba kell rogziteni, ugyhogy tobb szaz tablat kell majd kezelni."
Az egyetlen biztos dolog is már egy rossz kiindulás. Mindent egy lapra kellene, ahol a hely is egy oszlop meg az idő is. Ezt nyugodtan továbbadhatod a barátaidnak, akik piszkos munkát lepasszolták neked.
Nos akkor a diák gondolom már kellőképpen felkészült informatikából és minden kérdésedre fog tudni válaszolni.
Egyébként ha papíralapról viszel be adatokat, ott is lehet ellenőrzést csinálni már a bevitelnél: Pl. kötegekbe fogod össze és a számokból csinálsz egy ellenőrző számot és a köteg végén begépeled. Ha egyezik, akkor nagyjából biztos lehetsz benne, hogy helyesen vitted be az adatot. Ellenőrző számot is többféleképpen lehet képezni, hogy minél inkább elkerülhető legyen az azonos jellegű hiba (pl. két számcsere, aminek következtében az összeg nem változik meg). A kötegek is lehetnek "elviselhető" nagyságúak, hogy ne többszáz adatban kelljen hibát keresni, hanem mondjuk 10-20-50 adat egyeztetésére legyen szükség.
Szerintem erre (mármint az adatbevitel ellenőrzési lehetőségeire) biztosan találsz több módszert is a neten.
Továbbá, ahogy írtam korábban, ha még nem lehet tudni, hogyan fog kinézni az adatbázis, az a kisebbik baj, mert a bevitt adatokat lehet kezelni excelben és adatbázis által "megehetővé tenni", ez "csupán" makrók kérdése - ahogyan Jimmy is írta korábban. De az adatoknak felismerhető formában kell az excelbe bekerülni - tehát minden adatról tudni kell és be kell vinni azokat a jellemzőket, ami alapján később csoportosítani, feldolgozni szeretnék majd.
Tehát a viszontkérdés: A munka melyik részében szeretnél segítséget??
Ahogy ismerem Jimmyt, mosakodásnak venné, ha a 4. pontjához fűzött mondatodra válaszolna.
Méltatlannak találom a "mar ertem az ellenseges hozzaallasotokat" gondolatodat. Ha figyelmesebben olvasnál, a lényeget láttad volna meg: "ha van egy felhasználó, aki tökéletesen átlátja a feladatot és a célt, illetve van egy informatikus, aki ért az adatbázisokhoz, és ezek ketten jó alaposan átbeszélik az egészet, elejétől a végéig" . Ez a feltétele egy jó program megírásának.
Ilyeneket írtál a feladat meghatározásához:
"majd adatbazisba lehessen attenni, amirol meg senki se tudja, hogyan fog kinezni, mert eloszor az adatokat kell rogziteni."
2) Ha a majdan keletkezett adathalmazt relációs adatbázisként akarod használni, erősen ellenjavallt a különböző időpontok adatait külön munkalapokra rögzíteni. Mindent ugyanarra a munkalapra kell, és legyen egy külön oszlop az időpont.
Ez reszben megoldhato.
En legszivesebben rogton adatbazisba rogzitenem az adatokat, igy kikuszobolhetoek az elgepelesekbol adodo hibak.
irtad:
4) A speciális/egyedi célra épült adatbázisok akkor működnek jól, ha ..
Na igen, mar ertem az ellenseges hozzaallasotokat.
Ez egy diakdolgozat lesz es ev vegere vagy januar kozepere kell leadni, ugyhogy megnyugtathatok mindenkit, hogy nincs penz benne. Szenvedes annal tobb, mert be kell gepelni az adatokat, az lesz az en reszem.;)
Úgy értettem, ha egyszerre több cella eredményét is szeretné helyben módosítani, akkor az csak makróval megy. (Hiszen a képletet csak másik cellába lehet "normálisan" beírni, különben körkörös hivatkozás lenne.)
Hát ez már csak ízlés dolga....Mármint, hogy akarok-e előbb kijelölni és utána makrót indítani, vagy egyből mehet mindenre. A lényeg, hogy van többféle függvény is rá és csak makróval működik.
Sub cserel() Dim cl As Range For Each cl In ActiveSheet.UsedRange.Cells If Not cl.HasFormula Then cl.Value = StrConv(cl.Value, vbLowerCase) End If Next End Sub
Minden olyan cellában, ahol nincs képlet, a cella tartalmát kisbetűsre cseréli.
A Fejlesztőeszközök | Vezérlők | Beszúrás-nál az Űrlap-vezérlőelemek közül tedd ki a Beviteli listát. Cellacsatolás nálam az X1. Ha ez nem jó, akkor a makróban írd át. A címsor miatt szerepel a makróban a sor meghatározásánál +1. Ha nincs címsorod, radírozd ki a +1-et.
A makró:
Sub Masol() Dim sor As Long sor = Range("X1") + 1
Range("A" & sor & ":F" & sor).Copy Workbooks("Megérkezett.xlsx") _ .Sheets("Megjött Mf").Range("A105") End Sub
Nálam az A:F tartományban vannak az adatok, írd át a makróban ezt a két betűt a saját tartományodra. A legördülőhöz rendeld hozzá a Masol makrót.
A tétel kiválasztásakor automatikusan átmásolja a kiválasztott sor adatait a másik füzet A105 cellájától kezdve.
Segítséget kérnék az ügyben, hogy egyáltalán meg lehet valósítani a következőt és ha igen akkor milyen irányba keresgéljek(pl kulcsszavak).
Van egy excel amivel menedzselem a megrendeléstől a megérkezésig az árút. Azt szeretném megvalósítani, hogy ha az adott sornál pl Rendelés.xslx Folyamatban mf BJ117-nél egy drop down listből kiválasztom, hogy megjött mozgassa át egy másik excel-be(ami a kollégámé) pl Megérkezett.xlsx Megjött Mf A105. De akár lehet tükörképe is egymásnak a munkafüzet. Azaz első xslx-ben BJ117 akkor a második xlsx-ben is a 117 sorba írja be a szükséges oszlopokat ami a név mennyiség érkezés dátuma.
Amik eszembe jutottak:
Segítséget kérek tőletek :D
Ami nagyon valószínű hogy szerintem ezt makro-val lehet. Sajnos nem értek hozzá és nem is tudom hogy mint kezeli az adatátviteleket.
Másik ötletem az a csv-s export/import. Mert könnyű hálózaton kezelni.
Megosztott munkafüzet
Kimutatás készítés
Ha meg lehet ezt excellel valósítani ti melyik irányba indulnátok?
Mihez képest? Mert a 2007-es szalagja "felcsukható", és akkor máris több a megjeleníthető sor, de a sormagasság is állítható. Arról nem is beszélve, hogy kicsinyíthetsz is.... (jó ez úgy emlékszem a 2002-ben is müxik).
Nem tudom miért. Ez van a gépen, meg a 2007-es, de annak már a szalgos menürendszere van. Egyszerűbb dolgokhoz a 2002-est használom. Meg a 2002-esnél több sor fér el a képernyőn.
Egyelőre nincsenek makrók. De akkro maradok ennél az egyveleg megoldásnál.
Még jó, hogy azért figyelmeztet a csonkolásra az excel.
Viszont egy nagy táblázat esetén - ahol nem egyértelmű, hogy hol lehet csonkolás, vagy mert nem akarok keresgélni - mi lehet a megoldás? Jelöljem ki az egész tartományt az eredetinél és írjam felül a az új lapon a csonkoltat is tartalmazó tartományt?
A munkalaphoz tartozó kódok(makrók, eseménykezelés) biztosan nem mennek át ezzel a másolással.
Mi van akkor, ha előbb munkalapot másolsz - persze a csonkolással -, aztán a kritikus cellát szépen odamásolod az új munkalapra - feltéve, hogy akkor nem kiabál már.
A munkalapot másoltam volna munkafüzeten belül a "végére". Eközben azt az üzenetet írta az excel, hogy 255 karakternél több van egy cellában, ezért azt ő megcsonkolja. Excel 2002 a szoftver.
Nem lehet ezt valahogy kicselezni?
Ha ezt a cellát másolom egy új munkalapra, akkor átmásolja csonkolás nélkül. Sőt rábökve a bal felső "cellára", azaz kijelölve a munkalap tartalmát és másolva egy új munkalapra, akkor sem csonkolja meg.
Ilyen másolás esetén elveszhet valami adat vagy formázás, a fülön végzett másolással összevetve; persze nem számítva bele a csonkolást?
Ugy tunik, csak nekem volt egyertelmuek a kerdeseim.;)
Akkor menjunk sorban.
1. Volt "szerencsem" ugy tiz evvel ezelott hasonlo munkahoz. Excel 95-be kellett adatokat begepelni, majd parszor modosittattak, kinyomtattak, ket emberke keresztbe-hosszaba osszepipalta az adatokat. Azutan azt mondtak, minden rendben, mehet Acces 97-be.
Nem ment, csak a szoveges adatok voltak hibatlanok, a datumokkal allando, a szamokkal veletlenszeru gondok voltak. A datumokat ujra be kellett gepelni, majd jottek a hibakeresesek, ezuttal access es excel rekordok kozott, melyik szam nem stimmel.
Most meg mysql vagy hasonlo lesz a cel, amit meg nem is lattam.
2. Azert nem tudjak meg a vegleges strukturat, mert minden valtozott. Hosszu idosort kell rogziteni. Az eleje egyszeru, adott telepulesnek van x valasztokorzete, adottak a partok es a jeloltek.
Azutan a jeloltek elkezdenek partokat valtogatni, tehat a part/szemely szimpatia elemzes problemas, plane, ha oda-vissza tortenik bizonyos szemelyek reszerol a mozgas.
Azutan jonnek a partokhoz kozel allo szervezetek, valamint a "fuggetlen, de bizonyos part tamogatja" tipusu nevezesek. ezeket kulon kodolni, de kozben osszekapcsolni mas parttal vagy jelolttel megint erdekes lesz.
Majd megvaltoznak a szavazokorzetek, annyira, hogy tobb telepulest is osszevonnak.
Nem lehet tobbe egy korabbi telepulesre vonatkoztatni az adatokat. Valtoznak jarasi, megyei keretek, korzetek. Falvakbol varosok lesznek, es viszont.
Jon az ujabb valtozas, nemcsak a jeloltek szama, hanem a helyek szama is valtozik.
Amennyit hallottam, jelenleg azon megy a vita, hogy szakaszonkent legyenek kulonbozo adatbazisok, es a szakaszhatarokat akarjak megtalalni.
Annyi biztos, hogy minden idoponthoz es helyhez tartozo adatot kulon tablazatba kell rogziteni, ugyhogy tobb szaz tablat kell majd kezelni.
3. Az elobbiek alapjan megint attol tartok, hogy nagyon szep, hogy ha van egy adat, akkor azt elektronikusan lehet kezelni, meg atadni, de biztos vagyok abban, hogy elotte jo parszor ki lesz nyomtatva es osszepipalva.
4. Szoval es tettel, ne vegye senki magara, nem vitatkozni jottem, csak tanacsot kerni, hogyan lehetne minel kevesebb idegeskedessel meguszni, mert azt lattam, hogy meg azonos ceg programjai kozott se volt jo az adatatvitel, pedig ugye ...
"Ezert kerdeztem, van-e valakinek gyakorlata ilyen teren."
Hát, ha ez a kérdés, akkor igen egyszerű a válasz: van.
Ennyivel akár el is intézhetnénk, hiszen megválaszoltam a kérdésedet, de lásd kivel van dolgod, mondok még egy-két dolgot.
1) Értelmetlen kérdésre ne várj értelmes választ. (Bővebb információért olvasd el a topik fejlécében belinkelt ajánlott irodalmat.)
2) Ha a majdan keletkezett adathalmazt relációs adatbázisként akarod használni, erősen ellenjavallt a különböző időpontok adatait külön munkalapokra rögzíteni. Mindent ugyanarra a munkalapra kell, és legyen egy külön oszlop az időpont.
3) Ha már egyszer rögzítve vannak az adatok, azokat a később kitalálandó adatbázis adatszerkezetének megfelelően átcsoportosítani valószínűleg ujjgyakorlat lesz csupán. (Pár soros makró.)
4) A speciális/egyedi célra épült adatbázisok akkor működnek jól, ha van egy felhasználó, aki tökéletesen átlátja a feladatot és a célt, illetve van egy informatikus, aki ért az adatbázisokhoz, és ezek ketten jó alaposan átbeszélik az egészet, elejétől a végéig. Amennyiben a kérdésed az őszi önkormányzati választásokhoz kapcsolódik, még bőven van idő egy informatikus keresni. Szerintem ezzel kellene kezdeni, nem az adatrögzítéssel.
Már ne haragudj, de szerintem azzal, hogy nem tudom milyen adatok lesznek - csak azt, hogy sok és változó (sajnos az adatok természete egyébként már csak ilyen) - nem sok mindent lehet kezdeni.
Talán próbáld meg magad megtervezni az adatokat - esetleg mégis rábírni a későbbi adatbázist tervezőket, hogy méltóztassanak megmondani, milyen adatokra lesz szükségük, mert amit egyszeri és megismételhetetlen adatfelvételkor nem veszel fel, azt hiába is akarják később adatbázisba betenni....
Erre van egy legenda -nagyon rég történt, amikor bevezették az MNB-be a számítógépes rendszert - megkérdezték az MNB akkori elnökét, hogy milyen adatokat kér, akkor azt válaszolta "mindent". Az amerikai tanácsadók - mert Honeywell számítógépeket vettek, elég nagyokat - azt modták erre: mindent azt nem lehet, csak konkrét adatokat lehet kérni a géptől.
Nehogy Te is így járj. Felveszel egy jó csomó információt Excelbe, aztán kiderül, hogy fele nem kell, de legalább ugyanannyit hiányolnak majd - ja, mert közben eszünkbe jutott, hogy ez is jó lenne még, meg az is jó lenne még....
Egyébként az a véleményem, ha az excellel "megetted" az adatokat egyszer, akkor onnan már be lehet vinni adatbázisba (is akár), legfeljebb némi munkába (sokba-kevésbe) kerül az adatbázis rekordok összeállítása a kívánt szerkezet szerint.
De ami ott van az Excelben, az kivehető belőle, ami meg nincs benne - nos azt sajnos nem tudod kivenni belőle.
Nyilván nagyon jó lenne, ha az adatok felvételekor tudni lehetne az adatbázis szerkezetét, mert akkor már most "rekordként" vehetnéd fel az egyes sorokat, de mint korábban írtam, ez nem szükségszerű, csak munkát lehet vele megtakarítani.
Egy kis off: megvan az egyéni véleményem arról, aki úgy gondolja, hogy az adatbázisát majd az adatok rögzítése után "találja ki"!
Ha valami közelebbi információd keletkezik, valamennyien szívesen segítünk, de amíg "négereket látunk egy sötét alagútban a kivilágítatlan vonat előtt vagy után???" , addig elméletieskedésnél sokkal többen ne nagyon várj.
Igen, mint ahogy minden gyerek hordozhato, mert van fule. :-)
Tablazatba olyan adatokat jo bevinni, amelyek ismetlodnek.
Ennel azonban minden valtozik.
Idopontonkent uj munkalapra kell rogziteni az adatokat, ami mar maceras.
Raadasul ugy kell megtenni, hogy majd adatbazisba lehessen attenni, amirol meg senki se tudja, hogyan fog kinezni, mert eloszor az adatokat kell rogziteni.
Nem akarok feleslegesen napokat tolteni adatrogzitessel, hogy kesobb az egeszet ujra kelljen kezdeni.
Ezert kerdeztem, van-e valakinek gyakorlata ilyen teren.
A Most() azok közé a függvények közé tartozik, amelyek folyamatosan frissülnek. Ha napon belül állandónak szeretnéd látni az értéket, akkor használd a Ma() függvényt - természetesen ez is változik, mindig az aktuális napi dátumot mutatja.
Ha rögzítani akarod az adott értéket, akkor másolás - irányított beillesztés - értéket ugyanazon a cellán végrehajtva.
Segitsegre lenne szuksegem, gondolom nem meglepö :)
A gondom a következo. Egy olyan függveny vagy keplet kellene amibe ha beirok egy elöre megadott nevet , a mellette levö cella kiirja az aktualis idot. Kiserleteztem es jol haladtam amig ra nem jottem hogy a ha függvenybe nem birom beepiteni az aktualis ido parancsot:
=HA(K12="Hedvig";"ide kellene az aktualis idö";"szabadnapos")
Ez azt jelenti hogy ha a K12 be Hedvig van akkor itt az L12 a MOST parancs alapjan kiirja ugye az idöt,, de nem ez törtenik ,hanem akkor annyit ir ki hogy MOST... A szabadnapost meg ugye akkor irja ki ha a cella üres. Tuti van valami trükkje de nem jövök ra... (Win 8.1/Office 365)
Most akkor vagy én értettem rosszul a feladatot, vagy ez már egy másik feladat.
Az első kérdésed az volt, ha beírsz egy értéket a Ketteske adott cellájába, azt írja be az Egyeske egy meghatározott tartományába.
Erre adtam egy javaslatot.
De amit most írsz azt nem egészen értem.
Ha a G1 cellában levő értéket tartomány címként akarod használni, akkor az indirekt függvényt kell alkalmazni: indirekt(G1) azt a tartományt jelenti, amelyiknek a címét a G1 cellába írtad.