none
excel zratanie oblasti RRS feed

Odpovědi

  • Dobrý deň,

    VBA kód dostupný na webe to robí nasledovne: v pomocnej bunke nastavíte referenčnú farbu, napr. A1, ktorú chcete spočítať; druhý parameter je oblasť buniek, ktoré chcete spočítať, napr. B1:E10. Tam kde má byť výsledok vložte =SumColor(A1;B1:E10)

    Kód skopírujte do modulu:

    Function SumColor(rColor As Range, rSumRange As Range)
    ''''''''''''''''''''''''''''''''''''''
    'Written by Ozgrid Business Applications
    'www.ozgrid.com
    'Sums cells based on a specified fill color.
    '''''''''''''''''''''''''''''''''''''''

        Dim rCell As Range
        Dim iCol As Integer
        Dim vResult

        iCol = rColor.Interior.ColorIndex
            For Each rCell In rSumRange
                If rCell.Interior.ColorIndex = iCol Then
                    vResult = WorksheetFunction.Sum(rCell) + vResult
                End If
            Next rCell

        SumColor = vResult

    End Function

    Snáď pomôže. Nezabudnite to uložiť ako xlsm ;-)

    Peter



    • Upravený Peter BelkoMVP pondělí 13. února 2012 14:31
    • Označen jako odpověď cucpotntel pondělí 13. února 2012 16:07
    pondělí 13. února 2012 14:29

Všechny reakce

  • Dobrý deň,

    Vzhľadom na to, že neviem ako je tabuľka formátovaná, tak sa radí komplikovanejšie. Taktiež nevieme, či to je jednorazové spočítanie (chcete Sum alebo Count?), alebo má byť výsledok trvale v nejakej bunke?

    Ak sú v jednom stĺpci, tak by som použil filter podľa farby, potom funkciou Subtotal.

    Peter

    pondělí 13. února 2012 12:56
  • Zdravim dakujem upresnim , tabulka je viacstlpcova, je tam viacero farieb / tie farby urcuju urcitu optimalizaciu / vysledok by mal byt v jednej bunke ako hodnota celkova vsetkych buniek danej farby
    pondělí 13. února 2012 13:35
  • Dobrý deň,

    VBA kód dostupný na webe to robí nasledovne: v pomocnej bunke nastavíte referenčnú farbu, napr. A1, ktorú chcete spočítať; druhý parameter je oblasť buniek, ktoré chcete spočítať, napr. B1:E10. Tam kde má byť výsledok vložte =SumColor(A1;B1:E10)

    Kód skopírujte do modulu:

    Function SumColor(rColor As Range, rSumRange As Range)
    ''''''''''''''''''''''''''''''''''''''
    'Written by Ozgrid Business Applications
    'www.ozgrid.com
    'Sums cells based on a specified fill color.
    '''''''''''''''''''''''''''''''''''''''

        Dim rCell As Range
        Dim iCol As Integer
        Dim vResult

        iCol = rColor.Interior.ColorIndex
            For Each rCell In rSumRange
                If rCell.Interior.ColorIndex = iCol Then
                    vResult = WorksheetFunction.Sum(rCell) + vResult
                End If
            Next rCell

        SumColor = vResult

    End Function

    Snáď pomôže. Nezabudnite to uložiť ako xlsm ;-)

    Peter



    • Upravený Peter BelkoMVP pondělí 13. února 2012 14:31
    • Označen jako odpověď cucpotntel pondělí 13. února 2012 16:07
    pondělí 13. února 2012 14:29
  • dakujem pomohlo teda ja som sa snzil nieco dopatrat v helpe alebo vygooglit ale bezuspesne tot funguje hned ak sa smiem spytat kde sa daju take mudre veci najst ??
    pondělí 13. února 2012 16:08
  • Dobrý den,

    většinou ho někdo napíše (naprogramuje). Pokud to nezvládáš sám, stačí hledat na internetu.

    U tohoto konkrétního makra je uveden i zdroj (autor).


    JCH

    pondělí 13. února 2012 16:37
  • Zdravim este by som sa rad spytal horeuvedena funkcia mi ale zrata tie farebne oblasti len raz ked to zmenim tak to uz neprerata dalo by sa to vyriesit aby sa to spravalo dynamicky ??
    čtvrtek 16. února 2012 8:36
  • Zmen nejen barvu ale i obsah bunky ve ktere mas referencni barvu at Excel pozna zmenu v parametru funkce.

    MP

    čtvrtek 16. února 2012 9:20
    Moderátor
  • Dakujem no to by som nerad robil su tam cisla na viac des. miest a su nemenne zatial to riesim cez Ctrl+Alt+F9 ale mam obavu ze to moze spracovatel zabudnut vykonat a bude problem s vysledkom :-(
    čtvrtek 16. února 2012 9:49
  • Dobrý deň,

    doplňte tento kód pre pracovný hárok, ktorý bude prepočítavať pri zmene hodnoty.

    Private Sub Worksheet_Change(ByVal Target As Range)
    Calculate
    End Sub

    Práve som to testoval cez podmienené formátovanie, lebo predpokladám, že farby sa menia týmto spôsobom a nie ručne. Takže tam asi prichádza k zmene niektorých hodnôt a na to zareaguje tento kód. Dôležité je, aby aj referenčná bunka mala nastavený formát tiež cez podmienené formátovanie.

    Snáď pomôže.

    Peter B.

    čtvrtek 16. února 2012 11:09
  • dakujem za ochotu problem je ze ti oblasti su vyberane rucne neexistuje podmienka ktora by sa dala pouzit ako podmienene formatovanie
    čtvrtek 16. února 2012 12:02
  • Ten kód, ktorý uvádzam vyššie to prepočíta ak sa zmení nejaká hodnota, ale nie formát. Potom zvážte vloženie tlačidla, ktoré spustí po kliknutí prepočítanie. Ak bude tlačidlo vedľa výsledku, nemala by obsluha na to zabudnúť (môžete preniesť na nich aj zodpovednosť, že treba kliknúť na prepočítanie). :)
    Ako často sa menia v tabuľke hodnoty?
    P.
    čtvrtek 16. února 2012 16:11