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

Ahoj,
potrebujem poradiť s takýmto problémom v Excel-i.
V bunkách A1 až A10 mám čísla. Niektoré majú červené písmo a niektoré čierne. V bunke B1 potrebujem sčítať všetky čísla s červeným písmom a v bunke C1 zas potrebujem sčítať čísla s čiernym písmom.
Ďakujem

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
asi som to zle vysvetlil, v "B3" potrebujem sčítať hodnotu "čiernych (automatická farba)" čísel zo s…
speto 09.12.2008 06:45
speto
S odstupem casu lze pozadovane resit bez makra a to vyuzitim maleho triku. V bloku bunek B1:B1000 (C… nový
navstevnik 11.12.2008 13:34
navstevnik
vyhadzuje mi to chybu v riadku: PoslRadek = LastRow("Makro", ofs * i) a je zvýraznené "LastRow"
speto 09.12.2008 17:02
speto
Pro zjisteni duvodu chyby uved i chybove hlaseni, takhle byt na dalku, tezko zjistim pricinu. Jen pr…
navstevnik 09.12.2008 18:01
navstevnik
Ďakujem Ti, teraz to už funguje super nový
speto 12.12.2008 11:26
speto
psal jsem uz vcera, ale nejak se odpoved zasmodrchala mezi starsi, takze ji opakuji: Pozadovane lze… nový
navstevnik 12.12.2008 22:38
navstevnik
upravena verze bez funkce LastRow, nazev listu je na zacatku subrutiny v promenne List Option Expli…
navstevnik 09.12.2008 18:58
navstevnik
som tu chvilu nebol, ale vdaka, je to ok a prijemne sviatky :-) poslední
spetko 22.12.2008 07:53
spetko

asi som to zle vysvetlil,
v "B3" potrebujem sčítať hodnotu "čiernych (automatická farba)" čísel zo stĺpca "B7-B1000" a v "B4" zas hodnotu "čiernych" čísel zo stĺpca "C7-C1000" - toto všetko opakovať 52 krát. (Cash-flow, čierne písmo - už uskutočnené, červené písmo - plánované, stĺpec B - príjmy za 1 týždeň, stĺpec C - výdavky za 1 týždeň...)
A poprosím Ťa aj krátke vysvetlenie k riadkom, nech to aj pochopím, nie odpíšem.
Vďaka

S odstupem casu lze pozadovane resit bez makra a to vyuzitim maleho triku.
V bloku bunek B1:B1000 (C1:C1000) nastavit barvu fontu na automaticku a nastavit format bunek na cislo, pro zaporna cisla vybrat barvu cervena bez znamenka. Planovane prijmy (vydani) vkladat jako zaporne cislo, ktere bude zobrazeno jako cervene pismo bez znamenka.
Pro soucet v B3 pouzit vzorec: =SUMIF(B7:B1000;">0") a obdobne pro B4:=SUMIF(C7:C1000;">0")

Toto zopakovat pro dalsich 51 tydnu.

Pozn: poradna vlozila nekam jinam, nez jsem zamyslel

Pro zjisteni duvodu chyby uved i chybove hlaseni, takhle byt na dalku, tezko zjistim pricinu.
Jen pro overeni, mas doinstalovanu funkci LastRow?
Predavas spravny nazev listu?
Zkusils krokovat proceduru (Editor VBA: Nastroje>View>LocalsWindow, kurzor mysi na proceduru a krokovat tlacitkem F8)?
Pouzivas jakou verzi Excelu?

psal jsem uz vcera, ale nejak se odpoved zasmodrchala mezi starsi, takze ji opakuji:

Pozadovane lze resit i bez makra a to vyuzitim maleho triku.
V bloku bunek B1:B1000 (C1:C1000) nastavit barvu fontu na automaticku a nastavit format bunek na cislo, pro zaporna cisla vybrat barvu cervena bez znamenka. Planovane prijmy (vydani) vkladat jako zaporne cislo, ktere bude zobrazeno jako cervene pismo bez znamenka.
Pro soucet v B3 pouzit vzorec: =SUMIF(B7:B1000;">0") a obdobne pro B4:=SUMIF(C7:C1000;">0")

Toto zopakovat pro dalsich 51 tydnu.

upravena verze bez funkce LastRow, nazev listu je na zacatku subrutiny v promenne List

Option Explicit
Sub Scitat()
' deklarace promennych
  Dim ZacBloku As Range, Blok As Range, Soucet As Range, Sum As Single
  Dim c As Range, i As Integer, ofs As Integer, PoslRadek As Long, List As String
  ' zadat nazev listu!
  List = "list1"
  ' definice prohledavaneho bloku
  Set ZacBloku = Worksheets(List).Range("b7")
  ' definice bunky pro ulozeni vysledku souctu za sloupec b7:bxx
  Set Soucet = ZacBloku.Offset(-4, 0)
  ' ofset pro dalsi sloupce (E7:Exx, H7:Hxx,...)
  ofs = 3
  ' vykonna smycka projde vsechny sloupce pocinaje bunkou b7,c7 (e7,f7; h7,i7;...) az
  ' po posledni neprazdnou bunku ve sloupci
  For i = 0 To 51  ' pocet sloupcu
    '************ radky mezi "***" lze vypustit, dle potreby vloz "'" (apostrof) na zacatky radku *****
    ' vlozeni hlavicky do a2 (d2,g2,...)
    Soucet.Offset(-1, (ofs * i) - 1).Value = "Týždeò: " & i + 1
    ' vlozeni hlavicky do a3 (d3,g3,...) pro prijmy
    Soucet.Offset(0, (ofs * i) - 1).Value = "Príjmy:"
    ' vlozeni hlavicky do a4 (d4,g4,...) pro vydani
    Soucet.Offset(1, (ofs * i) - 1).Value = "Vydavky:"
    '********************************************************************************************
    ' hledani ve sloupci prijmu b7:bxx (e7:exx, h7:hxx,...)
    ' vynulovani promenne pro ulozeni mezisouctu prijmy
    Sum = 0
    ' nalezeni posledni neprazdne bunky ve sloupci b7:bxx (e7:exx, h7:hxx,...)
    PoslRadek = Worksheets(List).Cells(Rows.Count, 2 + (ofs * i)).End(xlUp).Row
    If PoslRadek > 6 Then
      Set Blok = ZacBloku.Resize(PoslRadek - 6, 1).Offset(0, ofs * i)
      For Each c In Blok.Cells
        ' testovani bunky ve sloupci prijmu b7:bxx (e7:exx, h7:hxx,...)
        If IsNumeric(c.Value) And _
          c.Font.Color = 0 Then Sum = Sum + c.Value  ' je cislo a cerna, pricist
      Next c
    End If
    ' vlozeni souctu do bunky b3 (e3, h3,...) pro prijmy
    Soucet.Offset(0, ofs * i).Value = Sum
    ' hledani ve sloupci vydani c7:cxx (f7:fxx, i7:ixx,...)
    ' vynulovani promenne pro ulozeni mezisouctu vydani
    Sum = 0
    ' nalezeni posledni neprazdne bunky ve sloupci c7:cxx (f7:fxx, i7:ixx,...)
    PoslRadek = Worksheets(List).Cells(Rows.Count, 3 + (ofs * i)).End(xlUp).Row
    If PoslRadek > 6 Then
      Set Blok = ZacBloku.Resize(PoslRadek - 6, 1).Offset(0, (ofs * i) + 1)
      For Each c In Blok.Cells
        ' testovani bunky ve sloupci vydani c7:cxx (f7:fxx, i7:ixx,...)
        If IsNumeric(c.Value) And _
          c.Font.Color = 0 Then Sum = Sum + c.Value  ' je cislo a cerna, pricist
      Next c
    End If
    ' vlozeni souctu do bunky b4 (e4, h4,...) pro vydani
    Soucet.Offset(1, ofs * i).Value = Sum
  Next i
End Sub

Zpět do poradny Odpovědět na původní otázku Nahoru