Kezdőlap › Fórumok › Excel témák › [Resolved] MOST függvény használata
- This topic has 28 hozzászólás, 9 résztvevő, and was last updated 5 years, 12 months telt el by NIN.
-
SzerzőBejegyzés
-
2015-03-23-18:48 #1981
Hello
Az lenne a kérdésem, hogy a MOST függvénnyel hogy lehetne azt megcsinálni, hogy ha egy cellába (A1) írok valamit (pl „emailt elküldtem X kft részére”) akkor a mellette lévő cellába (B1) beírja az aktuális dátumot időponttal. Ha A1 üres akkor ne írjon semmit. Ezt a képletet írtam rá B1 cellában állva: =HA(A1;MOST();””)
A probléma ezzel az ha bezárom a fáljt és újra nyitom akkor az összes B cellában lévő képlet frissül és mindenhol a frissített dátum szerepel.
Nekem meg olyan kéne, hogy amint az A1 cellába előszőr írok be akkor a képlet az aktuális dátumot és időt hozzárendeli és bezárás újranyitáskor nem frissíti a dátumot, hanem meghagyja a beírás időpontjában lévő dátumot időpontot.
Gondoltam arra, hogy az adott cellát másolom és irányított beillesztéssel értékként illesztem be, de túl munkaigényes lenne.
Lényegében egy műveleti listát szeretnék létrehozni, hogy mikor mit végeztem el és visszanézhető lenne, hogy pl egy emailt valóban az adott napon és időben elküldtem, én nem tudnának meghazudtolni, hogy mégsem küldtem el.Köszönöm asegítséget.
Krisztián2015-03-24-22:34 #1985Szia!
Ez makróval oldható csak meg.
Eseménykezelőt kell írni ami akkor fut le, amikor egy adott oszlopban lévő cella tartalma megváltozik.1. A szóban forgó munkalap nevén jobb klikk -> Kód megjelenítése
2. A megjelenő ablak jobb oldalának tetején(General) helyett átváltod „Worksheet”-re, mellette válaszd ki a „Change” eseményt.
3. Megjelenik a Worksheet_Change eseménykezelő Subrutin üresen.
4. Egészítsd ki erre:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Application.EnableEvents = False Target.Offset(0, 1) = Date Target.Offset(0, 2) = Time Application.EnableEvents = True End If End Sub
5. Ha sikerült, akkor azt fogod tapasztalni, hogy bármit beírsz vagy változtatsz az „A”, azaz az 1. oszlopban, mellé beírja a dátumot, amellé meg az időt.
Ha nem az „A” oszlopról lenne szó, akkor a kódban módosítsd a
If Target.Column = 1
részt az annyiadik oszlopra, amit szeretnél.6. Mentsd a munkafüzetet makróbarát munkafüzetként (*.xlsm)
Szólj, hogy sikerült-e!
Imre
- A hozzászólás módosításra került: 9 years, 7 months telt el-horvimi.
2015-03-27-18:25 #1993Hello
Kipróbáltam és működik. Nagyon köszönöm. Rá nem jöttem volna a kódra, mert ilyen mélyen nem értek az excelhez.
Köszönöm mégegyszer.2016-09-15-08:07 #3006Üdv
Esetleg B1-re:
=HA(A1<>"";SZÖVEG(MOST();"éééé.hh.nn - óó:pp");"")
- A hozzászólás módosításra került: 8 years, 1 month telt el-A2Lac.
2017-12-11-12:40 #4069Szia.
Én is alkalmaztam a fent említett Makró megoldást, végül is sikerült.
Nálam G11 cellát kell figyelje, a P11 cellában meg is jelent (éééé.hh.nn) , a Q11 cellában meg az (ó.pp). Eddig mind jó ezzel a makróval.Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
Application.EnableEvents = False
Target.Offset(0, 9) = Date
Target.Offset(0, 10) = Time
Application.EnableEvents = True
End If
End SubKérdésem megoldható, hogy a P11 cella adat (éééé.hh.nn) és a Q11 cella (ó.pp) egy cellába kerüljön, pl. C11 egyhelyre (éééé.hh.nn.ó.pp) ??
C11 =HA(G11;MOST();””) cellaformátuma éééé.hh.nn.ó.pp
G11 ide kerülne adat, cellaformátuma ‘pénznem’
P11 a makró által adott dátum, cellaformátuma éééé.hh.nn
Q11 a makró által adott idő cellaformátum ó.ppEgyszerüsitve, ha a G11 be számok kerülnek C11 ben legyen a bevitel dátuma (éééé.hh.nn.ó.pp).
A többi sorokban is ugyan az a helyzett. Sajnos nálam a makró ellenére is egy dátumot ad G11 cella, holott a P és Q cellák meg örzik az eredeti beviteli dátumot.2017-12-11-12:53 #4070Szia!
Próbáld így
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Then Application.EnableEvents = False Target.Offset(0, -4) = Format(Date + Time, "yyyy.mm.dd. h:mm") Application.EnableEvents = True End If End Sub
Delila
2017-12-11-17:34 #4073Szia, köszönöm a gyors választ! 🙂
Jól működik, csak egy bibi van ezzel.
A ‘C’ oszlopban akkor is meg marad a dátum, ha későbbiekben ‘G’oszlopból törölve van az adat. Meg szűnt a =HA hivatkozás. 🙁
Ha jól látom a Makró felülírta a függvényt.2017-12-12-08:52 #4074Megszüntetjük:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Then Application.EnableEvents = False If Target <> "" Then Target.Offset(0, -4) = Format(Date + Time, "yyyy.mm.dd. h:mm") Else Target.Offset(0, -4).ClearContents End If Application.EnableEvents = True End If End Sub
2017-12-12-17:01 #4075Delila, nagyon szépen köszönöm a segítséget!
Tökéletesen működik ! 😀2017-12-12-17:28 #4076Nagyon szívesen, örülök hogy összejött.
2018-01-20-17:14 #4225Sziasztok!
Nagy örömmel használom én is ezt a makrót.
A problémám az, ha kézzel viszem be az adatokat a meghatározott oszlopba, akkor a kód tökéletesen működik.
Ha azonban másolást végzek, akkor a bemásolt karakterek helyett a dátumot írja be.Nálam a kód úgy néz ki, hogy a B oszlopba(2) rögzítek adatot, akkor az A oszlopban (1) megjelenik az
aktuális dátum.Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Application.EnableEvents = False Target.Offset(0, -1) = Date Application.EnableEvents = True End If End Sub
Amikor másolást végzek, akkor a B-től I oszlopig másolok be egy sort, ekkor a-h oszlopokban a dátum jelenik meg.
Ennek a problémának a megoldásához szeretném kérni a segítségeteket.
Egyébként excelben az alap fügvényeket használom, hobbi szinten, egy-két otthoni táblázát elkészítésénél. A tudásom, kicsit több mint nulla 🙂Előre is köszönöm a válaszokat!
- A hozzászólás módosításra került: 6 years, 9 months telt el-bandras.
2018-01-20-17:25 #4227Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Application.EnableEvents = False Cells(Target.Row, 1) = Date Application.EnableEvents = True End If End Sub
2018-01-20-17:31 #4228Köszönöm! Tökéletesen működik! 🙂
2018-01-20-21:17 #4229Szívesen. 🙂
2018-01-27-19:35 #4243Szia!
Megnyitottam az excel táblázatomat a Linuxon a Libreoffice-val, de a makró nem fut le rendesen, hanem 91-s hibával leáll
és azt mondja, hogy az objektumváltozó nincs beállítva ennél a sornálIf Target.Column = 2 Then
Esetleg erre is van valami megoldásod?
- A hozzászólás módosításra került: 6 years, 9 months telt el-bandras.
2018-01-27-19:40 #4245Én nem hinném, hogy a LibreOffice makró szinten kompatibilis lenne az Excel-lel.
2018-01-27-19:51 #4246Oh, ettől tartottam :/
2018-07-15-12:27 #4984sziasztok abban szeretném a segítségeteket kérni hogy csináltam egy anyagleltár táblázatot és szeretném hozzá rendelni az adott időt egy cellához de sehogy nem akar össze jönni amit itt leírtatok tökéletesen működik csak nekem nem jó, nekem vízszintesen kellene
Attachments:
You must be logged in to view attached files.2018-07-16-22:09 #4988Ha jól értem, akkor a MUnka3 lapon azt akarod, hogy ha egymás mellé írják be az értékeket az E oszloptól jobbra, akkor minden beírt adat alá tegye be az aktuális időt.
Ehhez csak annyi módosítás kell, hogy a megfelelő helyen a Target.Offset(0,1) helyett azt írd, hogy
Target.Offset(1,0). Azaz a módosított cellához képest 1 sorral lejjebb s nulla oszloppal arrább írja be az időt.Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Target.Offset(1, 0) = Time Application.EnableEvents = True End Sub
Visszatöltöttem,
Erre gondoltál?Imre
- A hozzászólás módosításra került: 6 years, 3 months telt el-horvimi.
Attachments:
You must be logged in to view attached files.2018-09-17-20:21 #5122Szia(sztok),
ez egy nagyon hasznos topic. A cégemnél más makro-t használunk ugyanere a feladatra de mivel mindenre van több megoldás ez részlet kérdés.
Amit én keresek és amiben a segítségeteket kérem, az egy kiegészítése lenne ennek a feladatnak. Azt szeretném megoldani, hogy szereplő megoldások reagáljanak a számított értékváltozásra. Arra gondolok, hogy a Target.Column cellái amennyiben képletet tartalmaz és azok számolnak, ezt az értékváltozást is jó lenne ha tudnánk kezelni.
Kérlek ha tudtok ennyi időt még szánjatok erre a topic-ra, nagy segítség lenne.Balázs
2018-10-24-18:26 #5196Szia!
Csupán annyit kell változtatnod a kódon, hogy Target.Column-ként annak az oszlopnak a számát adod meg, amelyiknek az értékváltozását követi a képleted eredménye.
Pl. ha a B2 képlete =A2*6, akkor az A oszlop módosulását kell figyelned, vagyis a Target.column = 1, mert az első oszlopba írsz be értéket.
2018-11-05-12:55 #5217szia @delila!
Köszönöm a választ a lezárt topic ellenére is, nagyra értékelem. 🙂 Erre már én is gondoltam. A helyzet az, hogy ezt azért nem tudom alkalmazni, mert 9 cella együttes <>”” értéke adja ennek a cellának az értékét, és nem tudom előre melyik mikor kerül kitöltésre.
Arra is gondoltam, hogy
…
If Target.Column = A1 And A2 …. And A9 Then
…
csak ezt nem tudom, hogy így helyes-e, valamint ebben az esetben hogyan kell megadjam a cél oszlopot? – nyilván nem lehet offset, mert nem egy oszlophoz képest működik a makró.A feladat lényege, hogy kiírja az időpontot pl. A12-be amikor a hivatkozott cellák A1;A3;A5…A17 utolsó üres cellája is kitöltésre kerül.
2018-11-05-15:49 #5218Szia!
Kicsit zavarosan írtad le az óhajodat, mert az A12-be szeretnéd beíratni az időpontot, mikor az A1:A17 tartomány ki van töltve. A tartományban benne van az a cella, ahol az utolsó bevitel idejét szeretnéd látni.
A laphoz rendelt makró az A1:A17 kitöltését figyeli, és az utolsó adat bevitelekor a B2 cellába írja be az időpontot. A CountA a DARAB2 függvény angol megfelelője.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [A1:A17]) Is Nothing And _ Application.WorksheetFunction.CountA(Range("A1:A17")) = 17 Then Range("B2") = Now End If End Sub
Kedved és igényed szerint módosíthatod a figyelt terület, és az időpont helyének meghatározását.
- A hozzászólás módosításra került: 6 years telt el-delila.
2018-11-10-12:24 #5242Tisztelt Delila!
Tisztelt Segítő!Nagyon örülök a fórumnak és a Te hathatós segítségednek!
Szeretnék segítséget kérni tőled.
2 problémám van:
Első:
űLétrehoztam egy lenyíló ablakot /táblázatot / B1 oszlopban, melyből választhatóak a lehetőségek soronként
-Nincs kiadva
-Rendelés alatt
-Kiadva munkába
-Szállítás alatt
-Készalap esetben „Nincs kiadva” jelenik meg
Azt szeretném, elérni, hogy ha megváltozik a szöveg
-Rendelés alatt
-Kiadva munkába
-Szállítás alattAkkor kiírja a C1 oszlopban az aktuális dátumot és időt – év.hónap.nap-óra.perc – statikusan / ne „MOST” és „Ma” függvényként.
Ha viszont a szöveg
-Kész státuszra vált, akkor a a D1 cellába írja be az aktuális dátumot és időt.Heltétel az , hogy státusz váltásnál ne írja felül „C1” cella adatait
röviden: szeretném a munka megkezdését és a befejezését regisztrálni.
Másik probléma pedig egy legördülő menü:
Szeretnék egy olyan választó menüt ahol 4 lépcsőben nyílik le az ablak:
Pl:
Első szint Jármúvek kategóriája
Autó
Teherautó
MotorKettes szint
Márkák
Audi
Trabant
LadaTemészetesen csak az adott járműtípus listája jelenjen meg
harmadik szint
A választot pl.: autómárka típusa jelenjen meg
Pl.:
Lada szamara
Lada NivaNegyedik kategória pedig Pl.: motor típusa
Pl.:
1200 cm3
1500 cm3Úgy gondolom ezeket a kategóriákat külön külön létrehozott táblázatokból lehet behivatkozni/ feltölteni.
Előre is köszönöm a segítséget!
Üdvözlettel Norbert
2018-11-10-12:44 #5243A második kérdésedről Horvát Imi már biztosan írt régebben, majd segít megtalálni a cikket. Szerintem abból jobban megérted majd, mintha én próbálkoznék vele.
Az elsőhöz írtam egy rövid makrót, amit a lapodhoz kell rendelned. Lapfülön jobb klikk, Kód megjelenítése. Ezzel bejutsz a VB szerkesztőbe. Bal oldalon az aktuális lapod lesz kijelölve, a jobb oldali üres területre másold a makrót.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Application.EnableEvents = False If Target = "Kész" Then Cells(Target.Row, "D") = Now Else Cells(Target.Row, "C") = Now Application.EnableEvents = True End If End Sub
Még annyit, hogy a B1, a C1 nem oszlopok, hanem cellák címei. Az oszlop B, vagy C.
2018-11-10-13:52 #5244Köszönöm szépen a gyors választ!
Működik!
Nagyon nagy segítség volt!
Említeted Horvát Imit. Ha jól értelmezem várjak a jementkezésére? „majd segít megtalálni a cikket”
További szép napot!
Norbi
2018-11-11-10:13 #5245Tisztelt delila!
Tisztelt Fórumozók!Szeretnék segítésegt kérni!
Első problémám, hogy munkafüzetben létrehozott lapokkon a képletek nem érvényesülnek – elösször szépen működnek, utána nem, hiába írom be ismét a képleteket!
Nem értem az okát!
Másk, az első kérdéshez kapcsolódó kérés
Tud valaki segíteni az a mellékletben található munkalap működőképes összerakásában?
Részlezeiben működik /működött eddig /, de bizonyos kereséseket és beviteli mező kialakítása nem megy!
Ha részmegoldásokban tud valaki segíteni, azt is megköszönöm. Összeollózom majd az egészet 🙂
Előre is köszönöm!
Norbi
Attachments:
You must be logged in to view attached files.2018-11-11-19:43 #5249Kedves Norbi!
Írtam levelet.
Kérlek, az új kérdéseket új topic indításával tedd fel!
Itt, egy másik Topic alján ne számíts válaszra.Köszönöm,
Imre
2018-11-11-20:03 #5250Tisztelt Imre!
Köszönöm leveled és a segítséget!
Ebből is látszik, hogy kezdő vagyok az Excelben , pláne a fórumozásban!
Üdvözlettel Norbi
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.