Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2009, 18:42   #1
.::pk::.
Новичок
Джуниор
 
Регистрация: 15.06.2009
Сообщений: 1
По умолчанию VBA Excel

Народ выручите,помогите дописать задачу..
задание такое:
Книжный магазин продал за 6 месяцев различное количество книг (15 наименований)
по цене, устанавливаемой в начале каждого месяца (т.е. каждый месяц цены на книги
менялись).
Написатьп рограмму на языке VBA, которая вводит исходные данные, выполняет рас-
четы и выводит на экран:
• исходные данные в виде таблицы, где указаны наименования книг, цена книг в
каждом месяце, количество проданных книг за каждый месяц;
• доход по каждой книге за 6 месяцев;
• доход за каждый месяц по всем книгам;
• общий доход по всем книгам за 6 месяцев;
• наименование книги, принесшей наибольший доход.

вот код программы

Код:
Sub kr_Click()

'объявляем переменные используемые в программе
Dim i As Integer, j As Integer, k As Integer 'счетчики циклов
Dim koll(15, 6) As Integer ' количество деталей каждого вида за каждый рабочий день
Dim sm(15) As Double 'заработок за каждый день
Dim amt(15) As Integer 'количество деталей каждого вида за истекший период
Dim itogi(8) As Double
Dim den As Integer 'порядковый номер дня с наибольшим заработком
Dim zarpl As Double 'сумма наибольшего заработка
Dim cena(15, 6) As Double 'стоимость одной изготовленной детали

For i = 1 To 15
    amt(i) = 0
    sm(i) = 0
Next i

Sheets("Нач_д").Select
Sheets("Нач_д").Range("A4:M20").Select
Selection.Copy
Sheets("Результат").Select
Sheets("Результат").Range("A1:A1").Select
ActiveSheet.Paste

'на листе "Результат" создаются ячейки с определенными названиями
Sheets("Результат").Cells(20, 1) = "Результат"
Sheets("Результат").Cells(21, 1) = "Название книги"
Sheets("Результат").Cells(21, 2) = "1-й месяц"
Sheets("Результат").Cells(21, 3) = "2-й месяц"
Sheets("Результат").Cells(21, 4) = "3-й месяц"
Sheets("Результат").Cells(21, 5) = "4-й месяц"
Sheets("Результат").Cells(21, 6) = "5-й месяц"
Sheets("Результат").Cells(21, 7) = "6-й месяц"
Sheets("Результат").Cells(21, 8) = "Всего продано штук"
Sheets("Результат").Cells(21, 9) = "На сумму"

Sheets("Результат").Cells(22, 1) = "книга1"
Sheets("Результат").Cells(23, 1) = "книга2"
Sheets("Результат").Cells(24, 1) = "книга3"
Sheets("Результат").Cells(25, 1) = "книга4"
Sheets("Результат").Cells(26, 1) = "книга5"
Sheets("Результат").Cells(27, 1) = "книга6"
Sheets("Результат").Cells(28, 1) = "книга7"
Sheets("Результат").Cells(29, 1) = "книга8"
Sheets("Результат").Cells(30, 1) = "книга9"
Sheets("Результат").Cells(31, 1) = "книга10"
Sheets("Результат").Cells(32, 1) = "книга11"
Sheets("Результат").Cells(33, 1) = "книга12"
Sheets("Результат").Cells(34, 1) = "книга13"
Sheets("Результат").Cells(35, 1) = "книга14"
Sheets("Результат").Cells(36, 1) = "книга15"

'во внешнем цикле происходит вывод стоимости одной детали и стоимости всех деталей, произведенных в данный период
For i = 1 To 15
'в этом цикле вычисляется сумма заработков по каждой детали за каждый день
'а также расчет заработной платы за каждый день
  For j = 2 To 12 Step 2
      k = j \ 2
      koll(i, k) = Sheets("Результат").Cells(i + 2, j).Value
      cena(i, k) = Sheets("Результат").Cells(i + 2, j + 1).Value
      Sheets("Результат").Cells(21 + i, k + 1) = koll(i, k) * cena(i, k)
      amt(i) = amt(i) + koll(i, k)
      sm(i) = sm(i) + Sheets("Результат").Cells(21 + i, 1 + k)
 Next j
    Sheets("Результат").Cells(21 + i, 8) = amt(i)
    Sheets("Результат").Cells(21 + i, 9) = sm(i)
Next i
'в данном цикле происходит выбор суммы наибольшего заработка и соответственно
'день с максимальным заработком становится день j (день, в который был получен максимальный доход)
'For j = 1 To 6
'      Sheets("Результат").Cells(22, 2 + j) = zar(j)
'If zar(j) > zarpl Then
'   zarpl = zar(j)
'   den = j
'End If
'Next

'в соответствующие ячейки выводятся заработок рабочего за неделю, день с максимальным доходом и размер дохода в этот день
'Sheets("Результат").Select
'Sheets("Результат").Cells(22, 8) = zar(6)
'Sheets("Результат").Cells(23, 1) = "Заработок за неделю"
'Sheets("Результат").Cells(23, 5) = zar(6)
'Sheets("Результат").Cells(24, 1) = "День с максимальным заработком"
'Sheets("Результат").Cells(24, 5) = den
'Sheets("Результат").Cells(24, 6) = "Заработано"
'Sheets("Результат").Cells(24, 8) = zarpl
End Sub
Заранее спасибо

Последний раз редактировалось .::pk::.; 15.06.2009 в 18:47.
.::pk::. вне форума Ответить с цитированием
Старый 15.06.2009, 19:25   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
вот код программы
А какое отношение к твоей задаче имеет эта программа?
В ней вычисляется что-то другое...

Поищи более подходящий код, или попробуй написать хоть что-то сам.

Цитата:
Написать программу на языке VBA, которая вводит исходные данные
А как программа должна вводить данные?
Запрашивать каждую цифру, что ли?
Или можно изначально записать исходные данные в таблицу на листе?

Если у тебя нет желания разбираться в решении, и ты готов заплатить, - обращайся.
Контакты в профиле.
EducatedFool вне форума Ответить с цитированием
Старый 14.05.2016, 09:54   #3
Stepan_888
 
Регистрация: 14.05.2016
Сообщений: 3
По умолчанию

В колонке "M" со временем добавляются записи "Срок истёк". При запуске приложения хотелось бы что бы программа уведомила один раз меня об этом, как только добавились новые записи. Над кодом весь день сижу, заранее спасибо.

Private Sub Workbook_Open()
p = "Срок истёк"
If Sheets("All").Range("M1:M") + p Then
MsgBox "Есть записи, у которых истек срок действия", vbOKOnly, "Информация"
End If
End Sub
Stepan_888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
VBA Excel Олька я Помощь студентам 0 09.05.2009 01:24
Excel VBA fidot Microsoft Office Excel 1 28.12.2008 19:20
VBA Excel Slicker Помощь студентам 4 04.11.2008 17:14
VBA i Excel corsarlt Microsoft Office Excel 3 03.04.2008 06:13