Makra- for, if

Od: Datum: 10.12.12 18:17 odpovědí: 3 změna: 11.12.12 13:07
avatar

Dobrý den, prosím vás, potřebovala bych pomocí maker projít tabulku a sloupec pod názvem Známka sečíst, spočítat a vydělit mezi sebou, aby mi vznikl průměr...Vím, že projít list můžu pomocí funkce For, např. For i=1 To 500, potom bych použila funkci If, ale zbytek mi už není jasný, jak můžu napsat- když se obsah buňky rovná "Známka" tak sečti hodnoty (příp. spočítej) a zastav se u prázdné buňky? Děkuju za rady


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 10.12.12 18:58
avatar

Není na to funkce =PRŮMĚR()?

No jinak například takto

doplněno 10.12.12 18:59:

Aha, ještě bych k tomu moh asi něco napsat. Bere to hodnoty ze sloupce F, první známku z F3, pak to pokračuje po řádcích dolů, než to narazí na první prázdnou buňku. Pak to napíše výsledek do G3.

Ohodnoceno: 2x
 
Datum: 10.12.12 19:12
avatar

jo, to je, ale musim to udělat v makru a potřebuju aby to vypadalo trochu složitě :D ale jinak mi šlo hlavně o to jak najít cyklem buňku, která obsahuje určitou hodnotu, resp. text

doplněno 10.12.12 19:14:

ale jinak díky :) takhle to taky můžu udělat

Datum: 11.12.12 13:07
avatar

Asi vám dost zkomplikuje život ten váš požadavek, že celý výpočet má proběhnout v rozsahu Známka sečíst. Pak potřebujete několik maker seřadit za sebe. Jedno vám najde první buňku z range Známka sečíst, druhé spočítá počet buněk v range Známka sečíst, třetí makro provede výpočet cyklem FOR a projede celý range Známka sečíst a nakonec do nějaké buňky vypíše vypočítanou hodnotu.

Vy ale chcete spíš jen sečíst a zobrazit průměr, ne?

*

Sub makroZnamky()
Dim SoucetZnamek As Byte, PrumerZnamek As Single, a As Byte
SoucetZnamek = 0
PrumerZnamek = 0
a = 0
Do
SoucetZnamek = SoucetZnamek + Range("A1").Offset(a, 0)
a = a + 1
Loop While Range("A1").Offset(a, 0) <> ""
PrumerZnamek = SoucetZnamek / a
MsgBox PrumerZnamek
Range("B1").Value = PrumerZnamek
End Sub

doplněno 11.12.12 13:26:

cyklus je typu Do Loop-While, zarážka o prázdnou buňku je na posledním řádku cyklu

Loop While Range("A1").Offset(a, 0) <> ""

česky bychom řekli : Dělej cyklus, pokud není v buňce odsazené o proměnnou a pusto a prázdno.

Je taky jasné, že v buňkách prvního sloupce musíte mít jen čísla. Jestli do některé vložíte písmeno, cyklus vám kixne.

Ohodnoceno: 0x
 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.