Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno súčet v excel-i

funguje to perfektne, niečo som odtiaľ vyhodil - aby to zbytočne nevytváralo hlavičky (som myslel kôli zrýchleniu prepočtu), takže, ak sa to dá ešte nejako upraviť, tak Ťa poprosím. Ale už aj tak je to OK.

Option Explicit

Sub Scitat()
' deklarace promennych
  Dim Blok As Range, Soucet As Range, SumPrijmy As Single, SumVydani As Single
  Dim c As Range, i As Integer, ofs As Integer
  ' definice prohledavaneho bloku
  Set Blok = Worksheets("Makro").Range("b7:b1000")
  ' definice bunky pro ulozeni vysledku souctu za sloupec b7:b1000
  Set Soucet = Blok.Offset(-4, 0).Resize(1, 1)
  ' ofset pro dalsi sloupce (E7:E1000, H7:H1000,...)
  ofs = 3
  ' vykonna smycka projde vsechny sloupce
  For i = 0 To 51  ' pocet sloupcu
    ' vynulovani promennych pro ulozeni mezisouctu
    SumPrijmy = 0
    SumVydani = 0
    For Each c In Blok.Offset(0, ofs * i).Cells
      ' testovani bunky ve sloupci prijmu b7:b1000 (e7:e1000, h7:h1000,...)
      If IsNumeric(c.Value) And _
      c.Font.Color = 0 Then SumPrijmy = SumPrijmy + c.Value  ' je cislo a cerna, pricist
      ' testovani bunky ve sloupci vydani c7:c1000 (f7:f1000, i7:i1000,...), ma offset(0,1) oproti sloupci b(..)
          If IsNumeric(c.Offset(0, 1).Value) And _
      c.Offset(0, 1).Font.Color = 0 Then SumVydani = SumVydani + c.Offset(0, 1).Value  ' je cislo a cerna, pricist
        Next c
        ' vlozeni souctu do bunky b3 (e3, h3,...) pro prijmy
        Soucet.Offset(0, ofs * i).Value = SumPrijmy
        ' vlozeni souctu do bunky b4 (e4, h4,...) pro vydani
        Soucet.Offset(1, ofs * i).Value = SumVydani
      Next i
    End Sub

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny