Stránka 1 z 1

Excel VBA - Uprava procedury

Napsal: 12 čer 2012 13:47
od MichalPleva
Ahojte,

Mám problém s procedúrou, ktorá má slúžiť na výpočet váženého aritmetického priemeru. Potreboval by som poradiť, kde môže byť chyba, keď v zdrojovom kóde :

Public Sub VAP()
Dim sucinkreditov As Single
Dim sucetkreditov As Single
Dim Vazpriemer As Single

sucinkreditov = (cboxPriemerZnamka1.Value * sbPriemerKredity1.Value) + (cboxPriemerZnamka2.Value * sbPriemerKredity2.Value) + (cboxPriemerZnamka3.Value * sbPriemerKredity3.Value) + (cboxPriemerZnamka4.Value * sbPriemerKredity4.Value) + (cboxPriemerZnamka5.Value * sbPriemerKredity5.Value) + (cboxPriemerZnamka6.Value * sbPriemerKredity6.Value) + (cboxPriemerZnamka7.Value * sbPriemerKredity7.Value)

sucetkreditov = (tbPriemerKredity1.Value * 1) + (tbPriemerKredity2.Value * 1) + (tbPriemerKredity3.Value * 1) + (tbPriemerKredity4.Value * 1) + (tbPriemerKredity5.Value * 1) + (tbPriemerKredity6.Value * 1) + (tbPriemerKredity7.Value * 1)

Vazpriemer = sucinkreditov / sucetkreditov
BodyPriemer = (4 - Vazpriemer) * 100
odpoved = MsgBox("Získaný poèet kreditov spolu: " & sucetkreditov & vbCrLf & "Vas vypoctany studijny VAP je: " & Vazpriemer & vbCrLf & "Ziskane body za priemer: " & BodyPriemer, vbInformation)

End Sub

Nefunguje výpočet priemeru : Runtime error '13' Type Mismatch. A pritom násobím len hodnoty combobox a spinbutton.

Nevedeli by ste mi poradiť inú alternatívu alebo úpravu v kóde, poprípade zmena formátovania ?

Ďakujem veľmi pekne za radu.

Prajem pekný deň.

Re: Excel VBA - Uprava procedury

Napsal: 12 čer 2012 15:42
od d1amond
Vítej na PC-HELP

Na začátku VBA procedury použij

Kód: Vybrat vše

Option Explicit

Pak nezapomeneš deklarovat proměnnou. Např. odpoved nebo BodyPriemer. Dále bych použil pro čísla Double namísto Single.
A pokud to nepomůže, dej sem do přílohy sešit s příkladem.

Re: Excel VBA - Uprava procedury

Napsal: 20 čer 2012 16:10
od MichalPleva
Ďakujem za radu :) Nakoniec som to vyriešil trošku inak.

Re: Excel VBA - Uprava procedury

Napsal: 20 čer 2012 16:10
od MichalPleva
Ďakujem za radu :) Nakoniec som to vyriešil trošku inak.