Function leiaProtsent(mis, millest) leiaProtsent = Round(100 * mis / millest, 1) End Function 'Koostage funktsioon kera ruumala leidmiseks Function keraRuumala(r) keraRuumala = (4# / 3#) * 3.14 * r * r * r End Function Function summa(plokk) s = 0 For Each lahter In plokk s = s + lahter Next lahter summa = s End Function ' looge funktsioon gemeetrilise keskmise leidmiesks Function lahtritearv(plokk) lahtritearv = plokk.Cells.Count End Function Function geomeetriline_keskmine(plokk) korrutis = 1# For Each lahter In plokk korrutis = korrutis * lahter Next lahter 'MsgBox korrutis geomeetriline_keskmine = korrutis ^ (1 / plokk.Cells.Count) Debug.Print "valmis" End Function Sub looJuhuarvud() Sheets("Sheet2").Cells.Clear kogus = InputBox("mitu?", "Juhuarvude loomine", 10) For i = 1 To kogus Sheets("Sheet2").Cells(i, 1) = Rnd() Next i End Sub Option Explicit Dim klassid As Workbook Dim opetajad As Workbook Sub paigutus1() Dim lehenr As Integer Dim rida As Integer Dim veerg As Integer Dim tekst As String Dim m() As String Dim opetajanimi As String Set klassid = ActiveWorkbook Set opetajad = Workbooks.Add ' MsgBox klassid.Sheets(1).Name lehenr = 1 rida = 3 veerg = 2 tekst = klassid.Sheets(lehenr).Cells(rida, veerg) m = Split(tekst, ";") opetajanimi = Trim(m(1)) 'tühikud otstest ära Dim opetajaleht As Worksheet Set opetajaleht = Nothing On Error Resume Next ' et ei hanguks veateate korral Set opetajaleht = opetajad(opetajanimi) On Error GoTo 0 ' et jälle näitaks veateateid If opetajaleht Is Nothing Then Set opetajaleht = opetajad.Sheets.Add opetajaleht.Name = opetajanimi End If opetajaleht.Cells(rida, veerg) = _ opetajaleht.Cells(rida, veerg) + "-" + m(0) + ";" + m(2) + _ ";" + klassid.Sheets(lehenr).Name ' Debug.Print (m(1)) End Sub ---------------------------------------- Option Explicit Dim klassid As Workbook Dim opetajad As Workbook Sub lisaOpetaja(rida As Integer, veerg As Integer, m() As String, klassitunnus As String) Dim opetajanimi As String opetajanimi = Trim(m(1)) 'tühikud otstest ära Dim opetajaleht As Worksheet Set opetajaleht = Nothing On Error Resume Next ' et ei hanguks veateate korral Set opetajaleht = opetajad(opetajanimi) On Error GoTo 0 ' et jälle näitaks veateateid If opetajaleht Is Nothing Then Set opetajaleht = opetajad.Sheets.Add opetajaleht.Name = opetajanimi End If opetajaleht.Cells(rida, veerg) = _ opetajaleht.Cells(rida, veerg) + "-" + m(0) + ";" + m(2) + _ ";" + klassitunnus End Sub Sub paigutus1() Dim lehenr As Integer Dim rida As Integer Dim veerg As Integer Dim tekst As String Dim m() As String Set klassid = ActiveWorkbook Set opetajad = Workbooks.Add lehenr = 1 rida = 3 veerg = 2 tekst = klassid.Sheets(lehenr).Cells(rida, veerg) m = Split(tekst, ";") lisaOpetaja rida, veerg, m, klassid.Sheets(lehenr).Name ' looge tsükkel ühe klassi kõikide õpetajate tunniplaani koostamiseks ' lisa ka teised klassid End Sub --------------------------- Option Explicit Dim klassid As Workbook Dim opetajad As Workbook Sub lisaOpetaja(rida As Integer, veerg As Integer, m() As String, klassitunnus As String) Dim opetajanimi As String If UBound(m) < 2 Then Exit Sub opetajanimi = Trim(m(1)) 'tühikud otstest ära Dim opetajaleht As Worksheet Set opetajaleht = Nothing On Error Resume Next ' et ei hanguks veateate korral Set opetajaleht = opetajad.Sheets(opetajanimi) On Error GoTo 0 ' et jälle näitaks veateateid If opetajaleht Is Nothing Then Set opetajaleht = opetajad.Sheets.Add opetajaleht.Name = opetajanimi End If opetajaleht.Cells(rida, veerg) = _ opetajaleht.Cells(rida, veerg) + "-" + m(0) + ";" + m(2) + _ ";" + klassitunnus End Sub Sub paigutus1() Dim lehenr As Integer Dim rida As Integer Dim veerg As Integer Dim tekst As String Dim m() As String Set klassid = ActiveWorkbook Set opetajad = Workbooks.Add lehenr = 1 veerg = 2 For rida = 3 To 10 tekst = klassid.Sheets(lehenr).Cells(rida, veerg) m = Split(tekst, ";") lisaOpetaja rida, veerg, m, klassid.Sheets(lehenr).Name Next rida ' looge tsükkel ühe klassi kõikide õpetajate tunniplaani koostamiseks ' lisa ka teised klassid End Sub ______________________________ Option Explicit Dim klassid As Workbook Dim opetajad As Workbook Sub lisaOpetaja(rida As Integer, veerg As Integer, m() As String, klassitunnus As String) Dim opetajanimi As String If UBound(m) < 2 Then Exit Sub opetajanimi = Trim(m(1)) 'tühikud otstest ära If UBound(Split(opetajanimi, "&")) > 0 Then Dim onimed() As String Dim onimi As Variant onimed = Split(opetajanimi, "&") For Each onimi In onimed Dim sisem(3) As String sisem(0) = m(0) sisem(1) = onimi sisem(2) = m(2) lisaOpetaja rida, veerg, sisem, klassitunnus Next onimi Else Dim opetajaleht As Worksheet Set opetajaleht = Nothing On Error Resume Next ' et ei hanguks veateate korral Set opetajaleht = opetajad.Sheets(opetajanimi) On Error GoTo 0 ' et jälle näitaks veateateid If opetajaleht Is Nothing Then Set opetajaleht = opetajad.Sheets.Add opetajaleht.Name = opetajanimi End If opetajaleht.Cells(rida, veerg) = _ opetajaleht.Cells(rida, veerg) + "-" + m(0) + ";" + m(2) + _ ";" + klassitunnus End If End Sub Sub paigutus1() Dim lehenr As Integer Dim rida As Integer Dim veerg As Integer Dim tekst As String Dim m() As String Set klassid = ActiveWorkbook Set opetajad = Workbooks.Add For lehenr = 1 To 14 For rida = 3 To 10 For veerg = 2 To 6 tekst = klassid.Sheets(lehenr).Cells(rida, veerg) m = Split(tekst, ";") lisaOpetaja rida, veerg, m, klassid.Sheets(lehenr).Name Next veerg Next rida Next lehenr ' looge tsükkel ühe klassi kõikide õpetajate tunniplaani koostamiseks ' lisa ka teised klassid End Sub ______________________________ Option Explicit Dim klassid As Workbook Dim opetajad As Workbook Function lisaLeht(raamat As Workbook, lehenimi As String) Dim uusleht As Worksheet Set uusleht = Nothing On Error Resume Next ' et ei hanguks veateate korral Set uusleht = raamat.Sheets(lehenimi) On Error GoTo 0 ' et jälle näitaks veateateid If uusleht Is Nothing Then Set uusleht = raamat.Sheets.Add uusleht.Name = lehenimi klassid.Sheets(1).Range("A1:F10").Copy uusleht.Select uusleht.Paste uusleht.Range("B3:F10").Clear uusleht.Range("A1") = lehenimi uusleht.Columns("A:F").ColumnWidth = 40 End If Set lisaLeht = uusleht End Function Sub lisaOpetaja(rida As Integer, veerg As Integer, m() As String, klassitunnus As String) Dim opetajanimi As String If UBound(m) < 2 Then Exit Sub opetajanimi = Trim(m(1)) 'tühikud otstest ära If UBound(Split(opetajanimi, "&")) > 0 Then Dim onimed() As String Dim onimi As Variant onimed = Split(opetajanimi, "&") For Each onimi In onimed Dim sisem(3) As String sisem(0) = m(0) sisem(1) = onimi sisem(2) = m(2) lisaOpetaja rida, veerg, sisem, klassitunnus Next onimi Else Dim opetajaleht As Worksheet Set opetajaleht = lisaLeht(opetajad, opetajanimi) opetajaleht.Cells(rida, veerg) = _ opetajaleht.Cells(rida, veerg) + "-" + m(0) + ";" + m(2) + _ ";" + klassitunnus End If End Sub Sub paigutus1() Dim lehenr As Integer Dim rida As Integer Dim veerg As Integer Dim tekst As String Dim m() As String Set klassid = ActiveWorkbook Set opetajad = Workbooks.Add For lehenr = 1 To 14 For rida = 3 To 10 For veerg = 2 To 6 tekst = klassid.Sheets(lehenr).Cells(rida, veerg) m = Split(tekst, ";") lisaOpetaja rida, veerg, m, klassid.Sheets(lehenr).Name Next veerg Next rida Next lehenr End Sub