Загрузка данных


Sub CreateAllInOneFile()
    Dim wb As Workbook
    Set wb = ActiveWorkbook
    Application.ScreenUpdating = False
    
    ' Создаем 5 листов в одном файле (Лаб 7 + 4 задания Практической 6)
    Do While wb.Worksheets.Count < 5
        wb.Worksheets.Add After:=wb.Worksheets(wb.Worksheets.Count)
    Loop
    
    Dim ws0 As Worksheet, ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, ws4 As Worksheet
    Set ws0 = wb.Worksheets(1)
    Set ws1 = wb.Worksheets(2)
    Set ws2 = wb.Worksheets(3)
    Set ws3 = wb.Worksheets(4)
    Set ws4 = wb.Worksheets(5)
    
    On Error Resume Next
    ws0.Name = "Лаб. работа 7"
    ws1.Name = "Задание 1"
    ws2.Name = "Задание 2"
    ws3.Name = "Задание 3"
    ws4.Name = "Задание 4"
    On Error GoTo 0
    
    Dim i As Integer, j As Integer, r As Integer
    
    ' ==========================================
    ' 1. ЛАБОРАТОРНАЯ РАБОТА 7 (Товары)
    ' ==========================================
    ws0.Cells.Clear
    ws0.Cells.Font.Name = "Times New Roman"
    ws0.Cells.Font.Size = 11
    
    ws0.Range("A1").Value = "Номер"
    ws0.Range("B1").Value = "Наименование" & vbLf & "товара"
    ws0.Range("C1").Value = "Цена"
    ws0.Range("D1").Value = "Цена"
    With ws0.Range("A1:D1")
        .Font.Bold = True
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    ws0.Range("B1").WrapText = True
    
    Dim items7 As Variant
    items7 = Array( _
        Array(101, "Компьютер Р5-66", 999), Array(102, "КомпьютерР5-100", 1500), _
        Array(103, "Компьютер 486-66", 780), Array(104, "Компьютер 486-75", 819), _
        Array(201, "Принтер лазерный ОХ", 1300), Array(202, "Принтер лазерный ПХ", 740), _
        Array(203, "Принтер струйный ЧБ", 299), Array(204, "Принтер струйный Ц", 460), _
        Array(301, "Монитор 14”", 220), Array(302, "Монитор 15”", 337), Array(304, "Монитор 17”", 518))
    
    For i = 0 To 10
        ws0.Cells(i + 2, 1).Value = items7(i)(0)
        ws0.Cells(i + 2, 1).HorizontalAlignment = xlLeft
        ws0.Cells(i + 2, 2).Value = items7(i)(1)
        ws0.Cells(i + 2, 3).Value = items7(i)(2)
    Next i
    
    ws0.Range("A13:B13").Merge
    ws0.Range("A13").Value = "Курс доллара"
    ws0.Range("A13").HorizontalAlignment = xlCenter
    ws0.Range("C13").Value = 13
    ws0.Range("C13").NumberFormat = "0""р."""
    ws0.Range("C13").HorizontalAlignment = xlLeft
    
    ws0.Range("D2:D12").Formula = "=C2*$C$13"
    ws0.Range("C2:C12").NumberFormat = "[$$-409] #,##0.00"
    ws0.Range("D2:D12").NumberFormat = "#,##0.00 ""р."""
    
    ws0.Range("A1:D13").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
    ws0.Range("A1:D1").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
    ws0.Range("A13:D13").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
    ws0.Range("A1:D12").Borders(xlInsideVertical).LineStyle = xlContinuous
    ws0.Columns("B").AutoFit
    ws0.Columns("A").ColumnWidth = 9
    ws0.Columns("C").ColumnWidth = 14
    ws0.Columns("D").ColumnWidth = 16
    
    ' ==========================================
    ' 2. ПРАКТИЧЕСКАЯ 6 - ЗАДАНИЕ 1 (Мебель)
    ' ==========================================
    ws1.Cells.Clear
    ws1.Cells.Font.Name = "Calibri"
    ws1.Cells.Font.Size = 11
    ws1.Range("A1:E1").Merge
    ws1.Range("A1").Value = "Заказ на мягкую мебель"
    ws1.Range("A1").Font.Size = 14
    ws1.Range("A1").HorizontalAlignment = xlCenter
    
    ws1.Range("A3").Value = "№"
    ws1.Range("B3").Value = "ТИП"
    ws1.Range("C3").Value = "Цена за 1" & vbLf & "комплект"
    ws1.Range("D3").Value = "Кол-во" & vbLf & "комплектов"
    ws1.Range("E3").Value = "ВСЕГО"
    ws1.Range("A3:E3").HorizontalAlignment = xlCenter
    ws1.Range("A3:E3").VerticalAlignment = xlCenter
    ws1.Range("A3:E3").WrapText = True
    
    Dim t1 As Variant
    t1 = Array( _
        Array(1, """НАДЕЖДА""", 20000, 2), Array(2, """СВЕТЛАНА""", 15000, 4), _
        Array(3, """РОЗА""", 24500, 3), Array(4, """АННА""", 45000, 4), _
        Array(5, """НЕЗАБУДКА""", 13800, 5), Array(6, """СОЛНЦЕ""", 34900, 4), _
        Array(7, """ДЕТСКАЯ""", 21870, 6), Array(8, """ОЛЬГА""", 15000, 10))
    
    For i = 0 To 7
        ws1.Cells(i + 4, 1).Value = t1(i)(0)
        ws1.Cells(i + 4, 1).HorizontalAlignment = xlCenter
        ws1.Cells(i + 4, 2).Value = t1(i)(1)
        ws1.Cells(i + 4, 3).Value = t1(i)(2)
        ws1.Cells(i + 4, 4).Value = t1(i)(3)
        ws1.Cells(i + 4, 4).HorizontalAlignment = xlCenter
        ws1.Cells(i + 4, 5).Formula = "=C" & (i + 4) & "*D" & (i + 4)
    Next i
    
    ws1.Range("B12").Value = "ИТОГО:"
    ws1.Range("B12").Font.Bold = True
    ws1.Range("C12").Formula = "=SUM(C4:C11)"
    ws1.Range("D12").Formula = "=SUM(D4:D11)"
    ws1.Range("D12").HorizontalAlignment = xlCenter
    ws1.Range("E12").Formula = "=SUM(E4:E11)"
    ws1.Range("E4:E12, C12:D12").Interior.Color = RGB(0, 255, 0)
    ws1.Range("C4:C12, E4:E12").NumberFormat = "#,##0.00""р."""
    ws1.Range("A3:E12").Borders.LineStyle = xlContinuous
    
    ws1.Range("B14:D14").Merge: ws1.Range("B14").Value = "минимальная стоимость заказа": ws1.Range("E14").Formula = "=MIN(E4:E11)"
    ws1.Range("B15:D15").Merge: ws1.Range("B15").Value = "максимальная стоимость заказа": ws1.Range("E15").Formula = "=MAX(E4:E11)"
    ws1.Range("B16:D16").Merge: ws1.Range("B16").Value = "средняя стоимость заказ": ws1.Range("E16").Formula = "=AVERAGE(E4:E11)"
    ws1.Range("B14:D16").Font.Bold = True
    ws1.Range("E14:E16").Interior.Color = RGB(255, 192, 0)
    ws1.Range("E14:E16").NumberFormat = "#,##0.00""р."""
    ws1.Range("B14:E16").Borders.LineStyle = xlContinuous
    ws1.Columns("A:E").AutoFit
    
    ' ==========================================
    ' 3. ПРАКТИЧЕСКАЯ 6 - ЗАДАНИЕ 2 (Зарплата)
    ' ==========================================
    ws2.Cells.Clear
    ws2.Range("A1:F1").Merge
    ws2.Range("A1").Value = "Расчёт заработной платы за сентябрь 2011 г."
    ws2.Range("A1").Font.Bold = True
    ws2.Range("A1").HorizontalAlignment = xlCenter
    
    ws2.Range("A2").Value = "№": ws2.Range("B2").Value = "ФИО"
    ws2.Range("C2").Value = "Начисленная" & vbLf & "заработная плата руб."
    ws2.Range("D2").Value = "НДФЛ (13%) руб.": ws2.Range("E2").Value = "ЗП к выдаче руб.": ws2.Range("F2").Value = "РАНГ"
    ws2.Range("A2:F2").HorizontalAlignment = xlCenter
    ws2.Range("A2:F2").WrapText = True
    
    Dim t2 As Variant
    t2 = Array( _
        Array(1, "Иванов Александр Иванович", 5699.89), Array(2, "Петров Олег Яковлевич", 10250.15), _
        Array(3, "Сидорова  Ольга Ивановна", 6100.3), Array(4, "Федорова Марина Игоревна", 4370.6), _
        Array(5, "Яковлева Елена Петровна", 6700.03))
    
    For i = 0 To 4
        ws2.Cells(i + 3, 1).Value = t2(i)(0)
        ws2.Cells(i + 3, 2).Value = t2(i)(1)
        ws2.Cells(i + 3, 3).Value = t2(i)(2)
        ws2.Cells(i + 3, 4).Formula = "=C" & (i + 3) & "*13%"
        ws2.Cells(i + 3, 5).Formula = "=C" & (i + 3) & "-D" & (i + 3)
        ws2.Cells(i + 3, 6).Formula = "=RANK(C" & (i + 3) & ",$C$3:$C$7,1)"
    Next i
    
    ws2.Range("B8").Value = "ИТОГО:": ws2.Range("B8").Font.Bold = True: ws2.Range("B8").HorizontalAlignment = xlRight
    ws2.Range("C8").Formula = "=SUM(C3:C7)": ws2.Range("D8").Formula = "=SUM(D3:D7)": ws2.Range("E8").Formula = "=SUM(E3:E7)"
    ws2.Range("C3:E8").NumberFormat = "#,##0.00"
    ws2.Range("D3:F7, E8").Interior.Color = RGB(191, 191, 191)
    ws2.Range("A2:F8").Borders.LineStyle = xlContinuous
    
    ws2.Range("B10").Value = "Максимально начисленная ЗП": ws2.Range("C10").Formula = "=MAX(C3:C7)"
    ws2.Range("B11").Value = "Минимально начисленная  ЗП": ws2.Range("C11").Formula = "=MIN(C3:C7)"
    ws2.Range("B12").Value = "Средняя начисленная ЗП": ws2.Range("C12").Formula = "=AVERAGE(C3:C7)"
    ws2.Range("C10:C12").NumberFormat = "#,##0.00"
    ws2.Range("C10:C12").Interior.Color = RGB(191, 191, 191)
    ws2.Range("C10:C12").Borders.LineStyle = xlContinuous
    ws2.Columns("A:F").AutoFit
    
    ' ==========================================
    ' 4. ПРАКТИЧЕСКАЯ 6 - ЗАДАНИЕ 3 (Кондитерские)
    ' ==========================================
    ws3.Cells.Clear
    ws3.Range("A1:G1").Merge
    ws3.Range("A1").Value = "Отчет о продажах в сети кондитерских за 01.09.11 и 02.09.11"
    ws3.Range("A1").Font.Bold = True: ws3.Range("A1").HorizontalAlignment = xlCenter
    
    ws3.Range("A3").Value = "№": ws3.Range("B3").Value = "Магазин": ws3.Range("C3").Value = "Продукция" & vbLf & "(торты)"
    ws3.Range("D3").Value = "Дата": ws3.Range("E3").Value = "Объём ( в шт.)": ws3.Range("F3").Value = "Цена (за 1 шт.)": ws3.Range("G3").Value = "Продажа в день"
    ws3.Range("A3:G3").Font.Bold = True: ws3.Range("A3:G3").Interior.Color = RGB(191, 191, 191): ws3.Range("A3:G3").HorizontalAlignment = xlCenter
    
    Dim prods As Variant, prc As Variant, vols As Variant
    prods = Array("Птичье молоко", "Черничный торт", "Яблочный торт", "Киевский", "Слоенный", "Прага")
    prc = Array(350, 220, 200, 300, 280, 320)
    vols = Array(42, 28, 43, 16, 12, 32, 45, 11, 38, 26, 17, 21, 35, 28, 43, 16, 12, 32, 45, 11, 38, 26, 20, 14)
    
    For i = 0 To 23
        r = i + 4
        ws3.Cells(r, 1).Value = i + 1
        ws3.Cells(r, 2).Value = IIf(i < 12, "ул. Чехова", "ул. Зеленоградская")
        ws3.Cells(r, 3).Value = prods(i Mod 6)
        ws3.Cells(r, 4).NumberFormat = "@"
        ws3.Cells(r, 4).Value = IIf((i Mod 12) < 6, "01.09.2011", "02.09.2011")
        ws3.Cells(r, 5).Value = vols(i)
        ws3.Cells(r, 6).Value = prc(i Mod 6)
        ws3.Cells(r, 7).Formula = "=E" & r & "*F" & r
    Next i
    ws3.Range("F4:G27").NumberFormat = "#,##0.00""р."""
    ws3.Range("A3:G27").Borders.LineStyle = xlContinuous
    
    ws3.Range("A29:C29").Merge: ws3.Range("A29").Value = "Объём продаж продукции болеее 40 шт.": ws3.Range("D29").Formula = "=COUNTIF(E4:E27,"">40"")"
    ws3.Range("A30:C30").Merge: ws3.Range("A30").Value = "Объём продаж продукции менее 20 шт.": ws3.Range("D30").Formula = "=COUNTIF(E4:E27,""<20"")"
    ws3.Range("A31:C31").Merge: ws3.Range("A31").Value = "Продажи  более12 000 руб. в день": ws3.Range("D31").Formula = "=COUNTIF(G4:G27,"">12000"")"
    ws3.Range("A32:C32").Merge: ws3.Range("A32").Value = "Продажи менее 6 000 руб. в день": ws3.Range("D32").Formula = "=COUNTIF(G4:G27,""<6000"")"
    ws3.Range("D29:D32").Interior.Color = RGB(255, 192, 0)
    ws3.Range("A29:D32").Borders.LineStyle = xlContinuous
    ws3.Columns("A:G").AutoFit
    
    ' ==========================================
    ' 5. ПРАКТИЧЕСКАЯ 6 - ЗАДАНИЕ 4 (Расходы)
    ' ==========================================
    ws4.Cells.Clear
    ws4.Range("A1:I1").Merge: ws4.Range("A1").Value = "Расходы": ws4.Range("A1").Font.Bold = True: ws4.Range("A1").HorizontalAlignment = xlCenter
    Dim h4 As Variant
    h4 = Array("Месяц", "Кварплата", "Телефон", "Транспорт", "Питание", "Хоз. нужды", "Прочее", "Итого", "Ранжирование")
    For i = 0 To 8: ws4.Cells(3, i + 1).Value = h4(i): Next i
    ws4.Range("A3:I3").Font.Bold = True: ws4.Range("A3:I3").HorizontalAlignment = xlCenter
    
    Dim t4 As Variant
    t4 = Array( _
        Array("Январь", 2200, 500, 1500, 6000, 450, 3000), Array("Февраль", 2400, 600, 1600, 4000, 360, 2470), _
        Array("Март", 1900, 500, 1200, 5000, 460, 1900), Array("Апрель", 2300, 420, 1000, 4000, 540, 2200), _
        Array("Май", 2400, 500, 1100, 6000, 540, 3200), Array("Июнь", 1250, 600, 2000, 3000, 640, 2900), _
        Array("Июль", 1500, 800, 2000, 4000, 600, 2850), Array("Август", 1600, 900, 2000, 3000, 610, 2850), _
        Array("Сентябрь", 2500, 900, 3000, 4000, 630, 3660), Array("Октябрь", 2300, 600, 1200, 6000, 620, 1650), _
        Array("Ноябрь", 2600, 600, 1300, 5000, 610, 2670), Array("Декабрь", 2200, 700, 1500, 7000, 700, 1781))
    
    For i = 0 To 11
        r = i + 4
        For j = 0 To 6: ws4.Cells(r, j + 1).Value = t4(i)(j): Next j
        ws4.Cells(r, 8).Formula = "=SUM(B" & r & ":G" & r & ")"
        ws4.Cells(r, 9).Formula = "=RANK(H" & r & ",$H$4:$H$15,0)"
    Next i
    
    ws4.Range("A16").Value = "Итого": ws4.Range("A17").Value = "Сред.  значение"
    ws4.Range("A18").Value = "Миним. расходы": ws4.Range("A19").Value = "Максим. расходы"
    ws4.Range("A16:A19").Font.Bold = True
    
    Dim cLet As Variant
    cLet = Array("B", "C", "D", "E", "F", "G")
    For i = 0 To 5
        ws4.Range(cLet(i) & "16").Formula = "=SUM(" & cLet(i) & "4:" & cLet(i) & "15)"
        ws4.Range(cLet(i) & "17").Formula = "=AVERAGE(" & cLet(i) & "4:" & cLet(i) & "15)"
        ws4.Range(cLet(i) & "18").Formula = "=MIN(" & cLet(i) & "4:" & cLet(i) & "15)"
        ws4.Range(cLet(i) & "19").Formula = "=MAX(" & cLet(i) & "4:" & cLet(i) & "15)"
    Next i
    
    ws4.Range("B4:H15, B16:G19").NumberFormat = "#,##0.00""р."""
    ws4.Range("H4:I15, B16:G19").Interior.Color = RGB(191, 191, 191)
    ws4.Range("A3:I19").Borders.LineStyle = xlContinuous
    
    ws4.Range("A21:C21").Merge: ws4.Range("A21").Value = "Сумма за год": ws4.Range("D21").Formula = "=SUM(H4:H15)": ws4.Range("D21").NumberFormat = "#,##0.00""р."""
    ws4.Range("A22:C22").Merge: ws4.Range("A22").Value = "Кол-во месяцев сумма которых более 12 000": ws4.Range("D22").Formula = "=COUNTIF(H4:H15,"">12000"")"
    ws4.Range("A21:A22").Font.Bold = True: ws4.Range("D21:D22").Interior.Color = RGB(191, 191, 191): ws4.Range("A21:D22").Borders.LineStyle = xlContinuous
    ws4.Columns("A:I").AutoFit
    
    Application.ScreenUpdating = True
    MsgBox "Все работы собраны в этом файле!", vbInformation, "Готово"
End Sub