Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / программирование на VBA Exel / 10 сообщений из 10, страница 1 из 1
21.01.2012, 19:55
    #37625314
AntonStr1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программирование на VBA Exel
Добрый всем вечер. Просьба помочь с задачей, если у кого есть свободное время.

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

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

Код: 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
23.01.2012, 09:41
    #37626404
Артем3101
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программирование на VBA Exel
Парни помогите с решением задачки на VBA, не бесплатно. и еще блок-схему составить. образец есть
...
Рейтинг: 0 / 0
23.01.2012, 09:42
    #37626408
Артем3101
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
программирование на VBA Exel
alex77755, мне тоже помоги решить задачу
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.03.2014, 08:28
    #38592536
программирование на VBA Exel
alex77755Тебе надо сделать задание за тебя?
Обращайся. делал много таких заданий

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

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


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