Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Fferi50

    őstag

    válasz Colin111 #48583 üzenetére

    Szia!
    Pl. a munkalap eseménykezelését felhasználhatod erre:
    A cellára duplakatt esetén hajtja végre az alábbi eseménykezelést:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column > 5 Or Target.Row = 1 Then Cancel = True: Exit Sub
    If Target.Value = "" Then Cancel = True: Exit Sub
    Application.EnableEvents = False
    reszletezo Target.Row
    Application.EnableEvents = True
    Cancel = True
    End Sub
    Az elején megvizsgálja, hogy az első 5 oszlopban van-e a kattintás és nem a fejlécen, illetve nem üres-e a cella.
    Ezután kikapcsolja az eseménykezelőt és a meghívott makrónak átadja a kattintott cella sorát. Ha más módon lehet azonosítani a rekordot, akkor azt kell átadnia - kibogoznia valahonnan.
    Miután végrehajtotta a meghívott makrót, visszakapcsolja az eseménykezelőt és letiltja a kattintás rendszer szerinti végrehajtását.
    A meghívandó makró így nézzen ki:
    Sub reszletezo(ByVal sor As Integer)
    '....ide jönnek az utasítások -  a sor nevű változóban lesz a kattintott cella sora
    End Sub
    Ennek annyi a hátránya, hogy az adott területen nem tudod a duplakattintásokhoz kapcsolódó rendszerműveleteket végrehajtani.
    Viszont cserébe az adott "rekord" bármelyik celláján duplán kattintva elindul a részletező makró és nem kell külön parancsgomb és "száz" makró.
    Remélem sikerülni fog.
    Üdv.

    [ Szerkesztve ]

Új hozzászólás Aktív témák