powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / программирование на VBA Exel
10 сообщений из 10, страница 1 из 1
программирование на VBA Exel
    #37625314
AntonStr1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый всем вечер. Просьба помочь с задачей, если у кого есть свободное время.

Суть: написание программы на VBA

Задача:Магазин ткани продал за 9 месяцев различное количество ткани (20 наименований) по цене, устанавливаемой в начале каждого месяца (каждый месяц цены на ткани не менялись).
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
- исходные данные в виде таблицы, где указаны наименования ткани, цена ткани в каждом месяце, количество проданной ткани в течение каждого месяца;
- доход по каждому виду ткани за первый месяц;
- доход за каждый месяц по всем видам ткани;
- общий доход по всем видам ткани за 9 месяцев;
- наименование ткани, принесшей наибольший доход в седьмом месяце.
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #37625562
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonStr1Просьба помочьПомочь - пожалуйста. Что именно не получается? Ответ "всё" не подойдет.
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #37625660
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе надо сделать задание за тебя?
Обращайся. делал много таких заданий
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #37626008
AntonStr1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все что у меня получилось. Но не могу разобраться с вопросами "наименование ткани, принесшей наибольший доход в седьмом месяце" и "доход по каждому виду ткани за первый месяц"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
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
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #37626404
Артем3101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Парни помогите с решением задачки на VBA, не бесплатно. и еще блок-схему составить. образец есть
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #37626408
Артем3101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755, мне тоже помоги решить задачу
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
программирование на VBA Exel
    #38592536
alex77755Тебе надо сделать задание за тебя?
Обращайся. делал много таких заданий

А можно мне тоже помочь. Только нужно найти наименьший доход и наименование вывести. Смена знака на < не помогает. Вводит 0.
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #38592586
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стучитесь в мыло (есть в профиле)
Делаю полностью с отчётом в ворде и блок-схемой
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #38592594
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпринесшей наибольший доход в седьмом месяце
Не знаешь как найти максимум?
Присваиваешь переменной значение дохода первой ткани и другой переменной название.
Потом в цикле проверяешь и сравниваешь с дозодом остальных тканей.
Если очередной доход окажется больше - запоминаешь максимум и наименование ткани
После перебора всех тканей в переменных максимальный доход и наименование ткани
...
Рейтинг: 0 / 0
программирование на VBA Exel
    #38592619
alex77755,

мне столько не надо, спасибо.
только самый конец - найти минимум. причем по столбцу пробег получился и минимум нашелся, а вот по столбцам в итоговой стоке - засада
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / программирование на VBA Exel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]