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

  • dtpeter

    csendes tag

    válasz gyga #5795 üzenetére

    Meg lehet ezt csinálni automatikusra is szerintem, nem szükséges a gomb. A visual basic szerkesztőben válaszd ki bal oldalon az összesítő lapodat, majd középen fent azt a részt, ahol most jó eséllyel (General) szöveget látsz, állítsd át Worksheetre, és a mellette lévő lévő részt pedig Activate-re.

    Ekkor kapsz egy
    "Private Sub Worksheet_Activate()

    End Sub"
    szöveget. Na, e közé a két sor közé illeszd be a Delila_1 által írt kódot (persze a Sub... és End Sub nélkül). Ez azt fogja eredményezni, hogy minden alkalommal, amikor más lapról átlépsz az összesítő lapodra, lefut a kód. Arra érdemes figyelni, ez csak akkor jó megoldás, ha az összesítő lapon lévő eredmény cellából más lapon nem dolgozol.

    Van még pár lehetőség, hogy milyen eseményhez lehet rendelni a kód lefutását, pl. olyan is van, ami akkor indítja el a programodat, ha megváltozik az adott munkalapon bármelyik cella. Ezt mondjuk érdemes lenne feltételhez kötni, hogy mely oszlopok változása esetén frissítgesse az eredménycellát, teljesen felesleges mindig elvégeztetni vele az összeszámolást. Ezt meg úgy tudod megcsinálni, hogy bal oldalon a ThisWorkbook-ot választod, középen fent Workbook-ra állítod a (General) részt, és jobb fent SheetChange-et választasz a legördülő menüből.
    Ekkor ilyesmi szöveget látsz majd:
    "Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    If Target.Column = 8 Then
    MsgBox "Most számol :)"
    End If

    End Sub"

    A középen lévő részt én írtam be, a msgbox-os sor helyére tedd Delila_1 kódját. Az eleje meg csak annyit jelent, hogy ha a 8. oszlop (azaz a H oszlop, amit emlékeim szerint összegezni szeretnél) változik, akkor indítja az összegzést.

    Alapesetben az első variációt választanám, mert az csak akkor számol, amikor tényleg meg akarod nézni az eredményt. Ennek a másodiknak akkor van értelme, ha az eredménycellára más helyen hivatkozol, és fontos, hogy minden egyes változtatás után azonnal friss adatok álljanak rendelkezésre.

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