Telefonszámunk: 1-472-0679

[Resolved] MOST függvény használata

Kezdőlap Fórumok Excel témák [Resolved] MOST függvény használata

Topic Resolution: Resolved

Ennek a témakörnek tartalma 28 hozzászólás, 9 résztvevő. Utolsó frissítés:  NIN 6 hónapja, 2 hete telt el.

29 bejegyzés megtekintése - 1-29 / 29
  • Szerző
    Bejegyzés
  • #1981

    irkass2
    Felhasználó

    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án

    #1985

    horvimi
    Adminisztrátor

    Szia!

    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: 4 éve, 2 hónapja telt el- horvimi.
    #1993

    irkass2
    Felhasználó

    Hello

    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.

    #3006

    A2Lac
    Felhasználó

    Üdv

    Esetleg B1-re:
    =HA(A1<>"";SZÖVEG(MOST();"éééé.hh.nn - óó:pp");"")

    • A hozzászólás módosításra került: 2 éve, 8 hónapja telt el- A2Lac.
    #4069

    Lipton
    Felhasználó

    Szia.

    É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 Sub

    Ké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 ó.pp

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

    #4070

    delila
    Felhasználó

    Szia!

    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

    #4073

    Lipton
    Felhasználó

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

    #4074

    delila
    Felhasználó

    Megszü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
    #4075

    Lipton
    Felhasználó

    Delila, nagyon szépen köszönöm a segítséget!
    Tökéletesen működik ! 😀

    #4076

    delila
    Felhasználó

    Nagyon szívesen, örülök hogy összejött.

    #4225

    bandras
    Felhasználó

    Sziasztok!

    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: 1 év, 4 hónapja telt el- bandras.
    #4227

    delila
    Felhasználó
    Private 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
    #4228

    bandras
    Felhasználó

    Köszönöm! Tökéletesen működik! 🙂

    #4229

    delila
    Felhasználó

    Szívesen. 🙂

    #4243

    bandras
    Felhasználó

    Szia!

    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ál If Target.Column = 2 Then

    Esetleg erre is van valami megoldásod?

    • A hozzászólás módosításra került: 1 év, 3 hónapja telt el- bandras.
    #4245

    horvimi
    Adminisztrátor

    Én nem hinném, hogy a LibreOffice makró szinten kompatibilis lenne az Excel-lel.

    #4246

    bandras
    Felhasználó

    Oh, ettől tartottam :/

    #4984

    MCMLXXXII
    Felhasználó

    sziasztok 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.
    #4988

    horvimi
    Adminisztrátor

    Ha 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: 10 hónapja, 1 hét telt el- horvimi.
    Attachments:
    You must be logged in to view attached files.
    #5122

    BaLee
    Felhasználó

    Szia(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

    #5196

    delila
    Felhasználó

    Szia!

    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.

    #5217

    BaLee
    Felhasználó

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

    #5218

    delila
    Felhasználó

    Szia!

    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 hónapja, 2 hete telt el- delila.
    #5242

    NIN
    Felhasználó

    Tisztelt 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ész

    alap 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 alatt

    Akkor 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ó
    Motor

    Kettes szint

    Márkák

    Audi
    Trabant
    Lada

    Temé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 Niva

    Negyedik 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

    #5243

    delila
    Felhasználó

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

    #5244

    NIN
    Felhasználó

    Kö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

    #5245

    NIN
    Felhasználó

    Tisztelt 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.
    #5249

    horvimi
    Adminisztrátor

    Kedves 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

    #5250

    NIN
    Felhasználó

    Tisztelt 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

29 bejegyzés megtekintése - 1-29 / 29

Be kell jelentkezni a hozzászóláshoz.