Программирование на VBA Exel

Узнай цену своей работы

Формулировка задачи:

Добрый всем вечер. Просьба помочь с задачей, если у кого есть свободное время.
Суть: написание программы на VBA
Задача:Магазин ткани продал за 9 месяцев различное количество ткани (20 наименований) по цене, устанавливаемой в начале каждого месяца (каждый месяц цены на ткани не менялись).
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
- исходные данные в виде таблицы, где указаны наименования ткани, цена ткани в каждом месяце, количество проданной ткани в течение каждого месяца;
- доход по каждому виду ткани за первый месяц;
- доход за каждый месяц по всем видам ткани;
- общий доход по всем видам ткани за 9 месяцев;
- наименование ткани, принесшей наибольший доход в седьмом месяце.

Решение задачи: «Программирование на VBA Exel»

textual
Листинг программы
Sub kr_Click()
'объявляем переменные используемые в программе
Dim i As Integer, j As Integer 'счетчики циклов
Dim koll(20, 9) As Integer ' количество ткани каждого вида за каждый месяц
Dim zar(10) As Double 'доход за каждый месяц
Dim koll_n(20) As Integer 'количество ткани каждого вида за истекший период
Dim den As Integer 'порядковый номер ткани с наибольшим заработком
Dim zarpl As Double 'сумма наибольшего дохода
Dim cena(20) As Double 'стоимость одной проданной ткани

'в начале программы все переменные равны нулям
'создаем цикл, который считает количество проданой ткани за 9 месяцев
For i = 1 To 20
koll_n(i) = 0
Next

'создаем цикл, который считает доход за истекшей период
For j = 1 To 10
zar(j) = 0
Next

zarpl = 0
den = 0

'считываем начальные данные
Sheets("Нач_д").Select
'в каждую ячейку массива cena(i) записывается стоимость каждой ткани
'для этого используем цикл
For i = 1 To 20
cena(i) = Cells(3 + i, 2)
Next

'в каждую ячейку массива koll(i, j) записывается количество ткани каждого вида, проданной в месяц
'так как массив двумерный, цикл проходит по двум счетчикам
For i = 1 To 20
For j = 1 To 9
koll(i, j) = Cells(3 + i, 2 + j)
         Next j
Next i

'на листе "Результат" создаются ячейки с определенными названиями
Sheets("Результат").Cells(1, 1) = "Количество проданной ткани"
Sheets("Результат").Cells(2, 1) = "Наименование ткани"
Sheets("Результат").Cells(2, 2) = "Стоимость 1 шт."
Sheets("Результат").Cells(2, 3) = "Продано"
Sheets("Результат").Cells(3, 3) = "1-й месяц"
Sheets("Результат").Cells(3, 4) = "2-й месяц"
Sheets("Результат").Cells(3, 5) = "3-й месяц"
Sheets("Результат").Cells(3, 6) = "4-й месяц"
Sheets("Результат").Cells(3, 7) = "5-й месяц"
Sheets("Результат").Cells(3, 8) = "6-й месяц"
Sheets("Результат").Cells(3, 9) = "7-й месяц"
Sheets("Результат").Cells(3, 10) = "8-й месяц"
Sheets("Результат").Cells(3, 11) = "9-й месяц"
Sheets("Результат").Cells(3, 12) = "Всего"
Sheets("Результат").Cells(4, 1) = "Ажур"
Sheets("Результат").Cells(5, 1) = "Атлас"
Sheets("Результат").Cells(6, 1) = "Бархат"
Sheets("Результат").Cells(7, 1) = "Велюр"
Sheets("Результат").Cells(8, 1) = "Войлок"
Sheets("Результат").Cells(9, 1) = "Дерматин"
Sheets("Результат").Cells(10, 1) = "Кашемир"
Sheets("Результат").Cells(11, 1) = "Лайкра"
Sheets("Результат").Cells(12, 1) = "Мохер"
Sheets("Результат").Cells(13, 1) = "Ситец"
Sheets("Результат").Cells(14, 1) = "Сукно"
Sheets("Результат").Cells(15, 1) = "Тюль"
Sheets("Результат").Cells(16, 1) = "Флис"
Sheets("Результат").Cells(17, 1) = "Хлопок"
Sheets("Результат").Cells(18, 1) = "Холст"
Sheets("Результат").Cells(19, 1) = "Шелк"
Sheets("Результат").Cells(20, 1) = "Шифон"
Sheets("Результат").Cells(21, 1) = "Штоф"
Sheets("Результат").Cells(22, 1) = "Фланель"
Sheets("Результат").Cells(23, 1) = "Фуляр"

'в соответсвующие ячейки записываются цены каждой ткани
For i = 1 To 20
Sheets("Результат").Cells(3 + i, 2) = cena(i)

For j = 1 To 9
'в соответсвующие ячейки записываются количество ткани проданной за каждый месяц
    Sheets("Результат").Cells(3 + i, 2 + j) = koll(i, j)

'рассчитывается количество ткани каждого вида проданных за 9 месяцев
    koll_n(i) = koll_n(i) + koll(i, j)
Next j
'результат записывается в соответствующие ячейки
    Sheets("Результат").Cells(3 + i, 12) = koll_n(i)

Next i
'на листе "Результат" создаются ячейки с определенными названиями

'на листе "Результат" создаются ячейки с определенными названиями
Sheets("Результат").Select
Sheets("Результат").Cells(25, 1) = "Результат в денежном эквиваленте"
Sheets("Результат").Cells(26, 1) = "Наименование изделия"
Sheets("Результат").Cells(26, 2) = "Стоимость 1 шт."
Sheets("Результат").Cells(25, 3) = "Продано"
Sheets("Результат").Cells(26, 3) = "1-й месяц"
Sheets("Результат").Cells(26, 4) = "2-й месяц"
Sheets("Результат").Cells(26, 5) = "3-й месяц"
Sheets("Результат").Cells(26, 6) = "4-й месяц"
Sheets("Результат").Cells(26, 7) = "5-й месяц"
Sheets("Результат").Cells(26, 8) = "6-й месяц"
Sheets("Результат").Cells(26, 9) = "7-й месяц"
Sheets("Результат").Cells(26, 10) = "8-й месяц"
Sheets("Результат").Cells(26, 11) = "9-й месяц"
Sheets("Результат").Cells(26, 12) = "Всего"
Sheets("Результат").Cells(27, 1) = "Ажур"
Sheets("Результат").Cells(28, 1) = "Атлас"
Sheets("Результат").Cells(29, 1) = "Бархат"
Sheets("Результат").Cells(30, 1) = "Велюр"
Sheets("Результат").Cells(31, 1) = "Войлок"
Sheets("Результат").Cells(32, 1) = "Дерматин"
Sheets("Результат").Cells(33, 1) = "Кашемир"
Sheets("Результат").Cells(34, 1) = "Лайкра"
Sheets("Результат").Cells(35, 1) = "Мохер"
Sheets("Результат").Cells(36, 1) = "Ситец"
Sheets("Результат").Cells(37, 1) = "Сукно"
Sheets("Результат").Cells(38, 1) = "Тюль"
Sheets("Результат").Cells(39, 1) = "Флис"
Sheets("Результат").Cells(40, 1) = "Хлопок"
Sheets("Результат").Cells(41, 1) = "Холст"
Sheets("Результат").Cells(42, 1) = "Шелк"
Sheets("Результат").Cells(43, 1) = "Шифон"
Sheets("Результат").Cells(44, 1) = "Штоф"
Sheets("Результат").Cells(45, 1) = "Фланель"
Sheets("Результат").Cells(46, 1) = "Фуляр"
Sheets("Результат").Cells(47, 1) = "ИТОГО"

'во внешнем цикле происходит вывод стоимости одной ткани и стоимости всех тканей, произведенных в данный период
For i = 1 To 20
'в этом цикле вычисляется сумма доходов по каждой ткани за каждый месяц
'а также расчет ткани за каждый месяц
  For j = 1 To 9
      Sheets("Результат").Cells(26 + i, 2 + j) = koll(i, j) * cena(i)
      zar(j) = zar(j) + koll(i, j) * cena(i)
zar(10) = zar(10) + koll(i, j) * cena(i)
 Next j
    Sheets("Результат").Cells(26 + i, 2) = cena(i)
    Sheets("Результат").Cells(26 + i, 12) = cena(i) * koll_n(i)
Next i

'в данном цикле происходит выбор суммы наибольшего дохода и соответственно
'месяц с максимальным доходом становится месяц j (месяц, в который был получен максимальный доход)
For j = 1 To 9
      Sheets("Результат").Cells(47, 2 + j) = zar(j)
If zar(j) > zarpl Then
   zarpl = zar(j)
   den = j
End If
Next

'в соответствующие ячейки выводятся доход за 9 месяцев, месяц с максимальным доходом и размер дохода в этот месяц
Sheets("Результат").Select
Sheets("Результат").Cells(47, 12) = zar(10)
Sheets("Результат").Cells(48, 1) = "Заработок за 9 месяцев"
Sheets("Результат").Cells(48, 5) = zar(10)
Sheets("Результат").Cells(49, 1) = "Месяц с максимальным заработком"
Sheets("Результат").Cells(49, 5) = den
Sheets("Результат").Cells(49, 7) = "Заработано"
Sheets("Результат").Cells(49, 12) = zarpl
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5