Stránka 1 z 1

Problém s řešením úlohy ve VBA

Napsal: 27 bře 2014 11:10
od samsam
Ahoj, potřeboval bych poradit s řešením této úlohy, protože si s ní naprosto vůbec nevím rady...:

Do buňky A1 napiš slovo číslo.
Udělej makro s následujícími podmínkami:
1.Při spuštění se ukáže formulář "Zadej počet čísel:"
2.Po té pomocí formuláře zadáte jednotlivá čísla pod buňku A1. Text ve formuláři bude: "Zadej 1. číslo:", "Zadej 2. číslo:", atd. Čísla se zadávají jak kladná tak záporná.
3.Po zadání čísla se vynechá jeden řádek a pak do prvního sloupce se postupně vypíše Minimum, Maximum, Průměr a vedle jednotlivé hodnoty.
4.Průměr musí být vložen jako funkce Průměr(vzorec).
5.porovná všechny zadané buňky s průměrem a provede následující formátování:
◦Buňky menší než průměr budou mít červené pozadí, modré písmo, kurzívu a přeškrtnutí
◦Buňky větší než průměr budou mít zelené pozadí, žluté písmo, tučné a podtrhnutí jednoduché
◦Buňky rovnající se průměru budou mít černé pozadí, bílé písmo, velikost 20 a dvojité podtrhnutí
◦Buňky s textem průměr a se vzorcem průměru budou mít horní silné ohraničení a buňka se vzorce bude mít zelené pozadí.

Předem moc díky za odpověď

Re: Problém s řešením úlohy ve VBA

Napsal: 27 bře 2014 13:33
od cmuch
Zde je nástin toho zadávání čísla,
zbytek je už jen použití vzorců a podmíněného formátování.

Kód: Vybrat vše

Sub ZadaniCisel()
 Dim Cislo As Byte
 
  For Cislo = 1 To InputBox("Zadejte pocet cisel", "Formuláø")
    Cells(Cislo, 1) = InputBox("Zadejte císlo " & Cislo, "Formuláø")
  Next

End Sub

Re: Problém s řešením úlohy ve VBA

Napsal: 27 bře 2014 16:13
od samsam
Díky, ještě bych potřeboval vědět, co s tou minimální hodnotou, maximální hodnotou a průměrem, teda konkrétně, jak napsat ten příkaz, aby se ty hodnoty vypsaly do nějakého sloupce. :)

Re: Problém s řešením úlohy ve VBA

Napsal: 02 dub 2014 07:38
od cmuch
Třeba

Kód: Vybrat vše

Sub ZadaniCisel()
  Dim Cislo As Byte
  Dim PocetCisel As Byte
 
  PocetCisel = InputBox("Zadejte pocet cisel", "Formulá?")
 
  For Cislo = 1 To PocetCisel
    Cells(Cislo, 1) = InputBox("Zadejte císlo " & Cislo, "Formulá?")
  Next
 
  Cells(1, 2) = WorksheetFunction.Min(Range(Cells(1, 1), Cells(PocetCisel, 1)))
  Cells(1, 3) = WorksheetFunction.Max(Range(Cells(1, 1), Cells(PocetCisel, 1)))
  Cells(1, 4) = WorksheetFunction.Average(Range(Cells(1, 1), Cells(PocetCisel, 1)))

End Sub