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 napja, 23 órája telt el a bejegyzés óta.

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

    irkass2
    Résztvevő

    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
    Kulcsmester

    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: 3 éve, 7 hónapja telt el a bejegyzés óta- horvimi.
    #1993

    irkass2
    Résztvevő

    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
    Résztvevő

    Ü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, 2 hónapja telt el a bejegyzés óta- A2Lac.
    #4069

    Lipton
    Résztvevő

    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
    Résztvevő

    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
    Résztvevő

    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
    Résztvevő

    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
    Résztvevő

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

    #4076

    delila
    Résztvevő

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

    #4225

    bandras
    Résztvevő

    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: 10 hónapja telt el a bejegyzés óta- bandras.
    #4227

    delila
    Résztvevő
    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
    Résztvevő

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

    #4229

    delila
    Résztvevő

    Szívesen. 🙂

    #4243

    bandras
    Résztvevő

    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: 9 hónapja, 3 hete telt el a bejegyzés óta- bandras.
15 bejegyzés megtekintése - 1-15 / 29

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