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.
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