pogojno seštevenje

Pomoč pri izdelavi makrov
Odgovori
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

pogojno seštevenje

Odgovor Napisal/-a rick »

pozdravljeni :)

kako bi seštel sledeče:

if celica list1("b1")= 100 then

list1("a1")+list2("a1")
list1("a2")+list2("a2")
list1("a3")+list2("a3")

sicer: if celica list1("b1")=200 then

list1("a4")+list2("a4")
list1("a5")+list2("a5")
list1("a5")+list2("a6")

sicer: if celica list1("b1")=200 then

list1("a6")+list2("a6")
list1("a7")+list2("a7")
list1("a8")+list2("a8")

itd... upam ,da ste me razumeli.teh pogojev je približno trideset.
ima kdo kakšno dobro idejo?
za odgovor se zahvaljujem.

lp rick :wink:
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

:? Nap; nič nisem razumel. Kaj ko bi vi z besedami opisali, kaj natančno želite.
lp,
Matjaž Prtenjak
Administrator
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Odgovor Napisal/-a rick »

pozdravljen :)

hm,kako naj povem :?:
kako sešteti celici a1 na prvem listu in a1 na drugem listu,pod pogojem,da je b1 v prvem listu 100. to je seveda preprosto,kako pa rešiti
zadevo,ki sem jo v prvem primeru zgoraj prikazal?
upam,da ste me razumeli.
za odgovor se zahvaljujem

lp rick
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Poglejte, programiranje ni nič drugega kot logično razmišljanje. Če med vašimi pogoji ne morete najti logične povezave potem pač morate napisati toliko pogojnih stavkov, da pridete do rešitve. Če pa recimo velja, da pri vrednosti 100 seštejete vrstice 1,2 in 3, pri 200 4,5,6 pri 300 7,8,9... potem pa lahko to rešite preprosteje, tako da vrednost delite s 100 in dobite neko novo vrednost X nato pa seštejete vrstice 3x + 3x-1 + 3x-2.

Primer (400 : 100 = 4 ==> seštejem 12 + 11 + 10).
lp,
Matjaž Prtenjak
Administrator
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Odgovor Napisal/-a rick »

pozdravljen

no Matjaž,tisto je bil le primer,ko sem navedel števila 100 in 200

zanima me,kako bi napisal makro:
(to je seveda samo primer)

Koda: Izberi vse

=IF(A1=100;List2!A1+List2!B1;IF(A1=200;List2!A2+List2!B2;IF(A1=300;List2!A3+List2!B3;"")))
kolikor vem te formule ne moreš pisati v nedogled,jaz pa bi rabil najmanj trideset
takšnih pogojev.

za odgovor se najlepše zahvaljujem.

lp rick
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Saj ste pravilno začeli... Pač v tem duhu...

Koda: Izberi vse

if cells("b1") = 100 then
  cells("a1") = 2*cells("a1")
  cells("a2") = 2*cells("a2")
  cells("a3") = 2*cells("a3")
end if

if cells("b1") = 200 then
  cells("a4") = cells("a1") + cells("a4")
  cells("a5") = cells("a2") + cells("a5")
  cells("a6") = cells("a3") + cells("a6")
end if

' ... itd
lp,
Matjaž Prtenjak
Administrator
alan07
Prispevkov: 22
Pridružen: To Apr 17, 2007 4:44 am

Odgovor Napisal/-a alan07 »

Mogoče bi pa izbrali pogojne stavke "case"

Sub Izbira()

Select Case Range("b1")

Case Is = 100
ukazi
Case Is < 100
ukazi
Case 300 To 500
ukazi
Case 600, 602, 605
ukazi
End Select

End Sub
LP Alan
Odgovori