itt bent a melóhelyemen már 3 kollégánál van egy olyan jelenség, hogy nagyon lassan számol át bizonyos táblázatokat a 2013-as verzió (ugyanaz nálam megnyitva 2010-ben problémamentes) A 2013-as Excelnél ezek pár munkalapos táblázatok, nincs külső hivatkozás, pár soros adattáblák vannak néhány diagrammal, nem tartalmaz makrót sem, vagyis semmi extra, mégis másodpercekig számol valamit. Sajnos a táblázatokat nem oszthatom meg, de van valakinek esetleg ötlete, találkozott már ilyesmivel valaki?
Köszönöm szépen a mai segítséget! Rengeteget tanultam :-) Igazad volt így sokkal könnyebb volt megtanulni a trükköket, megoldásokat mint bármely könyvből! Örök hálám!
nagyon nagyon jó ötlet a változó felvétele :-) ezt nem is tudtam eddig, mint nagyon sok mást sem :-D sajnos a VBA tanulással leakadtam időhiány miatt :-(
Nagyon hálás vagyok a segítségért! már sokkal jövök Neked! :-)
Az egész makrót egy feltétellel kezdd el: If Sheets("seged").Range("Q4")="no" Then ... 'ide jön a makró End If
Az első üres sort ciklus nélkül, 1 lépésben kikeresheted. sor=Sheets("Raktar").Range("A" & Rows.Count).End(xlUp).Row + 1 A Rows.Count a lapon lévő sorok száma, régebbi verziókban 65.536, újabbakban 1.048.576. A fenti utasítás annak a műveletnek a VBA-s megfelelője, mikor az A oszlop alsó celláján állva nyomsz egy Ctrl+fel nyilat. Ilyenkor az A oszlop utolsó kitöltött cellájára ugrik a fókusz. A +1 adja az első üres sor számát az oszlopban.
Az If Sheets("seged").Range("Z28") = "yes" = True Then Sheets("Raktar").Cells(sor, 2) = Sheets("seged").Range("O17") típusú sorok hibásak, nincs kettős egyenlőség a VBA-ban.
A helyedben felvennék a makró elején 2 változót, könnyebb kezelni a továbbiakban a hivatkozásokat. Dim WSR As WorkSheet, WSs As WorkSheet Set WSR = Sheets("Raktar") Set WSs = Sheets("seged")
If WSs.Range("Z28") = "yes" Or WSs.Range("Z28") = "True" Then WSR.Cells(sor, 3) = WSs.Range("K17")
'Műszak If Sheets("seged").Range("Z28") = "yes" = True Then Sheets("Raktar").Cells(sor, 2) = Sheets("seged").Range("O17") If Sheets("seged").Range("X28") = "yes" = True Then Sheets("Raktar").Cells(sor, 10) = Sheets("seged").Range("O17") If Sheets("seged").Range("R11") = "yes" = True Then Sheets("Raktar").Cells(sor, 17) = Sheets("seged").Range("O17")
'Névkiírás If Sheets("seged").Range("Z28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 3) = Sheets("seged").Range("K17") If Sheets("seged").Range("Z28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 4) = Sheets("seged").Range("L17") If Sheets("seged").Range("Z28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 5) = Sheets("seged").Range("M17")
If Sheets("seged").Range("X28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 11) = Sheets("seged").Range("K17") If Sheets("seged").Range("X28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 12) = Sheets("seged").Range("L17") If Sheets("seged").Range("X28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 13) = Sheets("seged").Range("M17")
If Sheets("seged").Range("R11") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 18) = Sheets("seged").Range("K17") If Sheets("seged").Range("R11") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 19) = Sheets("seged").Range("L17") If Sheets("seged").Range("R11") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 20) = Sheets("seged").Range("M17")
'adatkiírás szűrőcserénél
If Sheets("seged").Range("Z28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 6) = -Sheets("seged").Range("Y24") If Sheets("seged").Range("Z28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 7) = -Sheets("seged").Range("Z24")
If Sheets("seged").Range("R11") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 21) = -Sheets("seged").Range("Q11")
If Sheets("seged").Range("X28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 14) = -Sheets("seged").Range("W24") If Sheets("seged").Range("X28") = "yes" = True Then _ Sheets("Raktar").Cells(sor, 15) = -Sheets("seged").Range("X24")
End Sub
azt szeretném ha ez csak akkor futna le, ha a seged fülön a Q4 cella értéke "no" és ha ez az érték "yes" akkor ne fusson le. (ezt az értéket változtatja meg az ejszakas checkboxom)
köszönöm szépen a segítséget!
=KEREK.LE() függvény a megoldás ha magyar excelt használsz. =ROUNDDOWN függvény ha angolt.
a számjegyek száma 0
(nekem jobban tetszik mint az INT függvény mert ha későbbiekben szükség van valami oknál fogva tört értékre könnyebb ezzel módosítani. /Ám az INT függvény a tökéletes a Te kérésedre :-)/)
Tudnátok segíteni? Adott egy feladat ahol megvan adva emberek születési dátuma valamint egy dátum és meg kéne adni hogy ki hány éves ha egy évet 365,25 napnak veszünk. Ez eddig mind szép és jó, csak hogy a feladat úgy kéri hogy csak az egész évek jelenjenek meg. =(W$2-E5)/365,25 eddig itt tartok ahol a W2 E5 a dátumok meg is kapom hogy 32,56 de ha megadom hogy csak 2 számjegyet jelenítsen meg akkor fel kerekíti 33 ra. Amivel a feladatom megoldása hibás lesz. Valakinek valami ötlet?
Szia Delila!
A segítségeddel és egy pici gondolkodással, ami így könnyebben ment sikerült megoldani a problémám teljes mértékben valahogy így: =HA(VAGY(D2="OFF";ÜRES(D2));0;HA(ÉS(PERCEK(D2)>0;PERCEK(D2)<=59);KEREK.FEL((D2-C2)*24/0,5;0)*0,5;(D2-C2)*24)) és működik. Ha te nem adod meg azt a képletet ami kiszámolja az időt félórás pontossággal, akkor sztem én sem tudtam volna rájönni a megoldásra. Még 1x köszönöm. Most már csak arra kellene rájönnöm,hogy hogy kell, vagyis melyik (worksheets) munkalap eseménybe kell ezt a képletet beírni.
Szia. Amit leírtál képlet(függvény) működik nagyon jó is köszönöm is. De egy pici hiba van méghozzá az hogy ha például - amit az előzőekben is leírtam - 21:00 órát írok akkor is 4,5 órát számol. Volt már rá példa, hogy tényleg 9-kor mentem haza ezt a mágneskártya lehúzásakor írta ki a gép. Én csak saját magamnak szeretném nyilvántartani az időpontokat hogy tudjam mennyit melóztam. Ezért lenne fontos a pontos számítás ha megoldható. Nem lehet valami segéd táblázat segítségével és FKERES()-l kikeresni a megfelelő időponthoz tartozó számot kinyerni? Előre is köszönöm.
Egy kis segítséget szeretnék kérni. Van egy táblázatom, amiben a munkaidőmet tartom nyilván.
Az "A" oszlopban vannak a dátumok példámban az áprilisi hónap, A "B" oszlopban vannak a napok, A "C" oszlopban a munkaidő kezdete, A "D" oszlopban pedig a munkaidő vége - vagyis az az időpont amikor elhagyom a munkahelyem. Az "E" oszlopban a ledolgozott munkaidő órában ilyen képlettel: =HA(VAGY(D2="OFF"; D2="");ÉRTÉK("0");(D2-E2))*24). Az OFF azért kell mert ha azon a napon nem dolgozom akkor OFF-t írok be a munkaidő vége mezőbe. Így egy egész,vagy .5-re kerekített számot kapok. De az a gondom, hogy minden megkezdett félóra az a munka végén is félóra. Hogy értsd: Például az egyik nap 15:00-21:20 ig voltam ezt az értéket beírva az excelbe 6,333333 számot ír ki de nekem az kell hogy 6,5 írjon ki mert így számolnak el. De ha példáknál maradva 21:32 kor megyek haza akkor már 6,5333-t ír ki itt már 7 órát számolnak el. Szóval ezt hogy kell megírni úgy hogy ha ilyen időpontot írok be akkor is a megfelelő időt kapjam. Előre is köszönöm
Van egy kimutatásom MEGNEVEZÉS, RAJZSZÁM, ANYAG, GYÁRTÓ oszlopokkal ebben a sorrendben. Van arra mód, hogy a kimutatás az adatokat elsődlegesen a GYÁRTÓ oszlop szerint, másodlagosan pedig a MEGNEVEZÉS oszlop szerint rendezze (úgy hogy az oszlopok sorrendje ne változzon)?
Analfabéta vagyok hozzá, ezzel nem mondtál sokat nekem. A termék márkája amúgy nincs külön cellában, szóval egyben van a termék nevével. Nem tudom, ez számít-e?
Megint van 1.100 sorom, amelyek termékeket tartalmaznak. Márkák szerint kéne sorba szednem őket, szóval hogy tudnám megcsinálni, hogy kijelölje az összes sort a táblázatban, amely tartalmazza az általam megadott szót?
Itt a sor a változó. Érdemes az utasításokat kisbetűkkel beírni. Mikor tovább lépsz a beírt sorról, a VBA szintaktikájának megfelelően átállnak. Ha minden marad kisbetűs, sejtheted, hogy valamit rosszul írtál. A változók is lehetnek vegyesen kis- és nagybetűsek. A makróban ezeket úgy állítja át, ahogy a deklarációban megadtad. Utoljára szerkesztette: Delila1, 2015.02.10. 16:49:54
Köszönöm szépen! Ma is okosabb lettem :-D Már érdemes volt felkelni! :-)
Én azt hittem, ha egy cellaértéket bármikor meg tudok változtatni akkor az már változó lesz, de ezek szerint csak akkor az, ha a makro számol vele, s nem feltétlen kiírt eredményt ad. hmmm remélem jól sejtem :-D
Nem szükséges deklarálni, de hasznos. A rögzített makróban nincsenek változók.
A VBE-ben (Visual Basic Editor) érdemes beállítani a Tools | Options menü Editor fülén a "Require Variable Declaration" opciót, ekkor az új modul tetejére automatikusan beírja az Option Explicit szöveget, ami kötelezővé teszi a modulban a helyfoglalást. Sok hibakereséstől menthet meg. Például más feladatra véletlenül azonos változót viszel be, vagy elindítasz egy ciklust, a benne lévő változó nevében elütsz egy karaktert, vagy egy egész szám típusú változóba törtet vinnél be. Ilyenkor üzenetet kapsz, ahol a hiba kijavítása után folytathatod a makrót.
Általános nézet, hogy az összes változó deklarálását érdemes a Sub sor alá bevinni, így nem kell egy hosszabb makróban keresgélni.
Az első kérdésem az az lenne, hogy mennyire szükséges egy makró folyamán deklarálni egy változót? mert ugye makro rögzítésénél nem csinál ilyet az excel, viszont a könyvekből amiből tanulok ott meg írják, hogy kell.
Másik kérdésem meg az lenne ha írok vba-ban egy makrot ezt a deklarációt a változó bevezetése előtt elég deklarálnom, vagy vissza kell mennem a program elejére, s ott egy helyen megtenni azt?
(Még csak most tanulom a vba nyelvet s ezért vagyok ilyen tudatlan :-( )
Hm, valamiért a #NÉV? hibát ad ki. Annyi, hogy nem gépen lévő excelben csinálom, hanem onedriveban. Így kicsit más a formázás, de a képleteknek ugyan úgy kéne működnie.
Az E2 cella (címsort feltételezve) képlete =hónap(A2). Ezt lemásolod addig, ameddig dátumok vannak az A oszlopban. Egy üres oszlopba írd be a hónapok számát 1-től 12-ig. Legyen ez pl. a K1: K12 tartomány. Az L1 képlete =SZUMHA(E: E;K1;D: D) Ezt másold le K12-ig. A cellaformátum [ó]:pp legyen.
no közbe eszembe jutott, hogy word-ben ki lehet cserélni bizonyos karaktereket, így megnyitottam a .txt fájlt word-ben, kicseréltem a pontokat vesszőre, majd beimportáltam excel-be és most már jó minden :) köszi a segítséget :)
ha szám formátumra állítom, akkor is átvált dátumra. viszont most próbálgattam és ha vesszőt írok, akkor marad úgy. de az a baj, hogy egy .txt fájlból importálom be az adatokat (minden tört számnál pont van) és kézzel átírni a pontokat vesszőre, temérdek idő lenne. erre valami ötlet? :)
Ha már dátum. Van egy oszlopom(A) dátumokkal (év,hó,nap, dátum függvényt hazsnálva), és mellette, hogy aznap mikor kezdtem, mikor végeztem, és ez hány óra munka. Melyik függvénnyel tudnám hónap szerint összesíteni? Tehát adja össze azokat, amik pl január 1. és 31. között történtek. Van olyan darab függvény, amiben lehet kritériumot írni, de sehogy sem sikerült rendesen beírnom. Nem nehéz függvény nélkül sem összegezni, csak akkor már így csinálnám inkább ha lehet. Bár lehet egyszerűbb lenne minden hónapra külön sheet-et csinálni.
Eleve általános-, vagy szám formátumra kell állítanod a cellát, oszlopot.
Sajnos így írták meg a fejlesztők, túlzásba vitték a felhasználó kiszolgálását a dátumok beírásának megkönnyítésére. Csak azt nem értem, ha már a dátum formátumok között az 2015.01.15 formátumot ajánlják – helyesen, akkor ők miért jan.15 formában írják ki az 1.15-öt.
olyan kérdésem lenne, hogy ha egy cellába beírok egy tört számot, jelen esetben 1.15-öt, akkor az excel dátumra formázza át (jan. 15). visszaállítom általánosba a cellatulajdonságot, de akkor meg egy irdatlan nagy számot mutat. újra beírom az 1.15-öt, de megint dátumként fogja fel. hol lehet ezt kikapcsolni, hogy ne állítsa át magától?
A lenti makrót a lapodhoz kell rendelned, amelyiken a rejtést, felfedést végre akarod hajtani. Lapfülön jobb klikk, "Kód megjelenítése". Bejutottál a VBA szerkesztőbe, ahol a jobb oldali nagy fehér mezőbe másolod be a makrót.
Célszerű előre elrejteni a 11:35 sorokat.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [B11:B35]) Is Nothing Then If Target > "" Then Rows(Target.Row + 1).EntireRow.Hidden = False Else Rows(Target.Row + 1).EntireRow.Hidden = True End If End If End Sub
Sziasztok! Olyan problémám lenne excel 2013-ban hogyha a B11-es cella üres akkor az egész 12. sor legyen rejtet, ha nem üres akkor természetesen legyen látható a 12. sor és ez a 35. sorig működjön. Tehát ha a B11-be írok látható legyen a 12. sor és ha a B12-be írok akkor látható legyen a 13. sor és így tovább. Előre is köszönöm!
Sziasztok! Létezik olyan függvény vagy arra megoldás, hogy A oszlopban folyamatosan töltődnek fel a cellák számokkal egymás alá és pl C2 cellába mindig az éppen aktuális A oszlopban lévő legalsó (legutolsó) számot írja ki? Végignéztem a függvényeket de nem nagyon találtam megoldást. Esetleg valami ötlet?
Válaszokat előre is köszi. Utoljára szerkesztette: kkonrad, 2014.11.15. 12:55:53
elküldtem priviben a táblát
Még mindig nem egészen tiszta nekem. Az oszlopokban egyes cellák háttérszínét módosítod, és csakis ezeket összegezze a Teljesült sorban oszloponként? A csatolt képen nem látok más színű cellát.
a Teljesült sorba kellene összszámolni az adott oszlopban valamiképp (háttérszín más lenne v. betűszín más lenne) megjelölteket. Aztán ezt már ki tudnám vonni a Kapavitás lekötés-ből és az íratom be a z Új terhelés sorba
A melléklet táblában az 1. sorban SZUM K5:K1000 van. a 2 sorba szeretném összegezni ha valami elkészült, ezt vagy háttésznezéssel vagy betűszín változtatással kellene jelölni. a + sorban az 1-2 sorok erdeménye jelenne meg mint hátralévő feladat. Delila-tól olvastam a neten egy makrót de nekem nem igazán működik. Ha tudna valaki segíteni, nagyon jól esne
Köszönöm a kedvességed.. innen már megy... nagyjából már adatiokkal is feltöltöltöttem és jól működik
https://www.dropbox.com/s/6c2yweqg9exvbly/KALKUL%C3%81L%C3%93%20t%C3%A1bla.xlsx?dl=0 itt ha igaz megtalálod (remélem jól csináltam) Előre is köszi mczoli
Lehet nem jól írtam le: a kalkulál lapon F oszlop magadja, hogy G oszlopban miből lehet választani. A G oszlopban kiválasztotthoz kell megkeresni az anyagok lapon a megfelelő anyagokat: pl: Ha Kalkulál lap G= MH durvalemz 02 akkor C: F mezőben kell keresni. ha G= laposacél akkor a Anyagok H:K oszlop lesz a tartomány és így tovább a többi katgória szerint...
köszönettel
A Kalkulal lap N8 cellájába a következő képletet írd: =fkeres(G8;Anyagok!H:K;2;HAMIS)
A G8 cella értékét keresi a másik lap H:K tartomány első (K) oszlopában. Megtalálja a megfelelő sort, és a H:K tartomány második (I) oszlopából jeleníti meg az értéket. A HAMIS paraméter, ami helyett írhatsz nullát is, azt mondja meg a függvénynek, hogy pontos találatot vársz. A súgóban találsz mintát az IGAZ, vagy 1-es paraméterre is.
az anyagok így néz ki perszevízsintesen minden kategóriának vannak táblázatrészei
Kalkulal lapon F és G oszlopban a kiválsztás után az Anyagok lapon lévő táblázatokból kellene kiolvasni az egységtömeg, mértékegyég és egységár adatokat
Nem vagyok biztos benne, hogy jól értem a problémádat.
Az első érvényesítésben (A1 cella) kiválasztod a kategóriát, a másodikban (B1 cella) a konkrét anyagot. Az FKERES függvény keresési értéke a B1 cella legyen. =FKERES(B1; tartomány; oszlop; HAMIS)
Nagyon köszönöm Delila! mivel ez így nagyon jól működik (soha nem jöttem volna rá, mert nem tanultam excelt, csak ami ragadt rám) , rögtön bekajáltam a következő problémát. Eddig egy a pincéig érő oszlopban voltak az anyagok , mellettük az egyégtömeg (kg/m2 vagy kg/m) és az egység ár. A számoló táblában az FKERES-sel simán megtaláltam öket és tudtam velük tovább számolni! De most melyik függvénnyel fogom megtalálni? vagy egyáltalán megtalálom? Előre is köszi
Beírod egymás alá az egyes kategóriákhoz tartozó adatokat, pl. az idomacélokhoz L idom, T idom, Zárt szelvény, stb. A tartománynak nevet adsz, mégpedig pontosan azt a nevet, amelyiken az első lapon ki tudtad választani a kategóriát. Ebben az esetben idomacél lesz a tartomány neve. A másik 5 kategóriához is elvégzed a fentieket.
Kiválasztod az idomacélt, mellette a B oszlopba érvényesítést viszel be. Megengedve: lista. A forráshoz =INDIREKT(A1) – illetve az a cella szerepeljen paraméterként a függvényben, amelyikben a kategóriát kiválasztottad.
Hello Excel guruk! : Az első mukalapon létrehozott "A" oszlopban létrehozok egy adatérvényesítést(ennek nevei amásodik munkalapon vanna) pl. 6 katagóriában (Lemez, Rúdacél, idomacél..) a "B" oszlopban az "A" oszlop szerinti kategória szerint szeretnék kapni egy listát (adatérvényesítéssel egy másik munkalapon lévő táblázatrészből, ahol az A oszlopnak megfelelő anyagok és tulajdonságaik vannak megadva) . Majd az így kiválasztott anyag tulajdonságaival szeretnék az első munkalapon számolni
Köszi előre is bárkinek is!
Ez megoldható? vagy teljesen más módszert kell keresni
Ha a formátumnál állítottad be a tizedesek elrejtését, továbbra is a törttel számol. A KEREK, KEREKÍTÉS, KEREK.LE, és a KEREK.FEL függvények közül használd azt, amelyik az igényednek megfelel. Még az INT függvényt is megnézheted a súgóban.
olyan kérdésem lenne, hogy beállítottam a celláknál a kerekítést nulla tizedesjegyre (tehát egész számra kerekít), azonban ha számolok az adott cellával, akkor nem a kerekített összeget veszi, hanem a tört számot (pl. nem 4-gyel számol, hanem 3,89-cel). valahol át lehet állítani, hogy a kerek számmal számoljon? Utoljára szerkesztette: rooney8, 2014.09.21. 14:45:12
Ha egy címsor közére helyezésére gondolsz (egy sorban), akkor írd be az első cellába az adatot, jelöld ki a tartományt, aminek a közepére akarod helyezni. A cellaformázás Igazítás fülén a vízszintes elrendezésében "A kijelölés közepére" paramétert jelöld be. Utoljára szerkesztette: Delila1, 2014.09.15. 12:39:59