Sub Kehalndeks()
Dim kaal As Double
Dim pikkus_cm As Double
Dim pikkus_m As Double
Dim kmi As Double
Dim tagasiside As String
Dim vanus As Integer
Dim sugu As String
kaal = Application.InputBox(“Sisesta oma kaal kilogrammides:”, “Kehamassiindeks”, Type:=1)
If kaal <= 0 Then
MsgBox "Vale kaal! Proovi uuesti.", vbExclamation
Exit Sub
End If
pikkus_cm = Application.InputBox("Sisesta oma pikkus sentimeetrites:", "Kehamassiindeks", Type:=1)
If pikkus_cm <= 0 Then
MsgBox "Vale pikkus! Proovi uuesti.", vbExclamation
Exit Sub
End If
vanus = Application.InputBox("Sisesta oma vanus:", "Kehamassiindeks", Type:=1)
If vanus <= 0 Then
MsgBox "Vale vanus! Proovi uuesti.", vbExclamation
Exit Sub
End If
sugu = Application.InputBox("Sisesta oma sugu (M või N):", "Kehamassiindeks", Type:=2)
sugu = UCase(Trim(sugu))
If sugu <> “M” And sugu <> “N” Then
MsgBox “Vale sugu! Kasuta M või N.”, vbExclamation
Exit Sub
End If
pikkus_m = pikkus_cm / 100
kmi = kaal / (pikkus_m * pikkus_m)
kmi = Round(kmi, 1)
If kmi < 19 Then
tagasiside = "Alakaal. Teatud alakaal ei ole iseenesest ohtlik, kuid võib põhjustada terviseriske."
ElseIf kmi >= 19 And kmi <= 24.9 Then
tagasiside = "Normaalkaal. Soovitame hoida oma kaalu selles tervislikus vahemikus."
ElseIf kmi >= 25 And kmi <= 29.9 Then
tagasiside = "Ülekaal. Sul on oht haigestuda ülekaalust tingitud haigustesse nagu diabeet ja südamehaigused."
ElseIf kmi >= 30 Then
tagasiside = “Rasvumine. Suur risk südamehaigusteks ja diabeediks. Soovitame tõsiselt oma kaalu vähendada.”
End If
Dim indeks_min As Double, indeks_max As Double
Select Case vanus
Case 19 To 24
indeks_min = 19: indeks_max = 24
Case 25 To 34
indeks_min = 20: indeks_max = 25
Case 35 To 44
indeks_min = 21: indeks_max = 26
Case 45 To 54
indeks_min = 22: indeks_max = 27
Case 55 To 64
indeks_min = 23: indeks_max = 28
Case Is >= 65
indeks_min = 24: indeks_max = 29
Case Else
indeks_min = 19: indeks_max = 24
End Select
Dim sugukoef As Double
If sugu = “N” Then
sugukoef = 1
Else
sugukoef = 1
End If
Dim kokku As String
kokku = “Sinu kehamassiindeks (KMI) on ” & kmi & ” kg/m².” & vbCrLf & vbCrLf
kokku = kokku & “Üldine hinnang: ” & tagasiside & vbCrLf & vbCrLf
kokku = kokku & “Vanuse järgi on normiks ” & indeks_min & ” kuni ” & indeks_max & “.” & vbCrLf
If kmi < indeks_min Then
kokku = kokku & "Sinu KMI on vanuse järgi veidi madal."
ElseIf kmi > indeks_max Then
kokku = kokku & “Sinu KMI on vanuse järgi veidi kõrge.”
Else
kokku = kokku & “Sinu KMI on vanuse järgi normis.”
End If
MsgBox kokku, vbInformation, “Kehamassiindeks”
End Sub
BIoreiitmid
Function BioDay(birthDate As Date, cycleLength As Integer) As Integer
Dim today As Date
Dim ageInDays As Integer
today = Date
ageInDays = today – birthDate
BioDay = ageInDays Mod cycleLength
End Function
Sub ShowBioRhythms()
Dim birthInput As String
Dim birthDate As Date
Dim physDay As Integer
Dim emotDay As Integer
Dim intelDay As Integer
Dim msg As String
birthInput = InputBox(“Sisesta oma sünnikuupäev (nt 01.01.2000):”, “Sünnikuupäev”)
If IsDate(birthInput) Then
birthDate = CDate(birthInput)
physDay = BioDay(birthDate, 23)
emotDay = BioDay(birthDate, 28)
intelDay = BioDay(birthDate, 33)
msg = “Sinu tänased biortmide päevad:” & vbCrLf & vbCrLf
msg = msg & “Füüsiline tsükkel (23p): ” & physDay & IIf(physDay = 12, ” (KRIITILINE PÄEV HIHI!)”, “”) & vbCrLf
msg = msg & “Emotsionaalne tsükkel (28p): ” & emotDay & IIf(emotDay = 15, ” (KRIITILINE PÄEV HAHA!)”, “”) & vbCrLf
msg = msg & “Intellektuaalne tsükkel (33p): ” & intelDay & IIf(intelDay = 17, ” (KRIITILINE PÄEV HOHO!)”, “”) & vbCrLf
Dim negCount As Integer
negCount = 0
If physDay >= 12 Then negCount = negCount + 1
If emotDay >= 14 Then negCount = negCount + 1
If intelDay >= 16 Then negCount = negCount + 1
If negCount >= 2 Then
msg = msg & vbCrLf & “?? HOIATUS: Vähemalt kaks tsüklit on negatiivses faasis või kriitilised!” & vbCrLf & _
“Ole täna eriti ettevaatlik.”
End If
MsgBox msg, vbInformation, “Biortmide tulemused”
Else
MsgBox “Palun sisesta korrektne kuupäev!”, vbExclamation, “Vigane sisend”
End If
End Sub