48140 (Почта), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Почта", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48140"

Текст 2 страницы из документа "48140"

3) Отчёт о невыданной корреспонденции. Этот отчёт отображается не на ячейках книги Excel, а на компоненте ListBox формы (см. рис. 8). Список обновляется при каждом нажатии кнопки «Получить» (то есть при получении корреспонденции). При каждом нажатии кнопки «Выдать» выбранная строка удаляется из отчёта, так как выбранная корреспонденция выдаётся получателю. При разработке этого отчёта использовался механизм встроенного в Excel расширенного фильтра, а ячейки - результат этого расширенного фильтра использовались как RowSource для компоненты ListBox. Пример отчёта о невыданной корреспонденции находится на рис. 8.


Заключение

В ходе работы было разработано полноценное приложение с использованием Microsoft Excel на языке VBA, позволяющее автоматизировать деятельность почты по учёту полученных и отправленных посылок, бандеролей и писем без приобретения дополнительных специализированных программных продуктов. Разработанное приложение полностью удовлетворяет требованиям, поставленным в задаче: производится учёт корреспонденции, формируются бланки извещения и необходимые для работы почты отчёты. В ходе работы были изучены средства языка VBA, позволяющие скрывать и отображать отдельные листы и всё приложение целиком; методы и средства работы как с отдельными ячейками, так и с их диапазонами.

Дальнейшее развитие программного продукта возможно в следующих направлениях:

  • расширение исходных данных и обрабатываемой корреспонденции (наложенный платёж, денежные переводы и пр.)

  • добавление новых отчётов на базе уже имеющихся исходных данных (например, формирование списка корреспонденции, которая не была выдана получателю в течение месяца, а потому подлежит возврату отправителю и т.д.)


Список использованной литературы

1) Встроенная справочная система Microsoft Office Excel.

2) Тематический раздел форума city.is74.ru по программированию на VBA.

3) Справочная система MSDN


Приложение А

Схема связи форм приложения.

Вызов формы «Справка» осуществляется по нажатию кнопки «Справка» на главной форме «Почта».

В

Почта

Справка

ызов главной формы «Почта производится автоматически при открытии рабочей книги.


Приложение Б

Ниже представлены основные смысловые фрагменты кода программы.

Дублирующиеся фрагменты кода (например, сопроводительной ведомости полученной и отправленной корреспонденции) приводятся 1 раз.

'Обработка нажатия кнопки «Отправить». Добавление данных в исходную таблицу

Private Sub CommandButton11_Click()

Dim Flag As Boolean

Flag = True

If IsNumeric(TextBox6.Text) = False Or IsDate(TextBox1.Text) = False Or ComboBox1.Value = "" Or _

ComboBox1.Value = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _

TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then Flag = False

If Flag = False Then

a = MsgBox("Данные введены неверно или не полностью", vbCritical, "Ошибка")

Exit Sub

End If

Sheets("Отправленная корреспонденция").Select

Range("A3").Select

Selection.CurrentRegion.Select

i = Selection.Rows.Count

j = i + 3

Range("A" & j).Value = i

Range("B" & j).Value = TextBox1.Text

Range("C" & j).Value = ComboBox1.Value

Range("D" & j).Value = ComboBox2.Value

Range("E" & j).Value = TextBox2.Text

Range("F" & j).Value = TextBox3.Text

Range("G" & j).Value = TextBox5.Text

Range("H" & j).Value = TextBox4.Text

Range("I" & j).Value = TextBox6.Text

Range("J" & j).Value = Label10.Caption

End Sub

'Обработка нажатия кнопки печати квитанции об оплате отправки корреспонденции

Private Sub CommandButton4_Click()

If IsNumeric(TextBox6.Text) = False Or IsDate(TextBox1.Text) = False Or ComboBox1.Value = "" Or _

ComboBox1.Value = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _

TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then

a = MsgBox("Данные введены неверно или не полностью", vbCritical, "Ошибка")

Exit Sub

End If

Sheets("Отправленная корреспонденция").Select

Range("A3").Select

Selection.CurrentRegion.Select

i = Selection.Rows.Count - 1

Sheets("Бланки").Select

Range("Q18").Value = TextBox1.Text

Range("P19").Value = i

Range("M23").Value = TextBox2.Text

Range("M24").Value = TextBox3.Text

Range("M25").Value = TextBox5.Text

Range("M26").Value = TextBox4.Text

Range("N27").Value = ComboBox1.Value

Range("L28").Value = TextBox6.Text

Range("M29").Value = Label10.Caption

Application.Visible = True

For Each m In Sheets

If m.Name <> "Бланки" Then m.Visible = False

Next m

Application.Visible = True

Почта.Hide

End Sub

'функция, рассчитывающая стоимость отправки

Private Function DispatchCost(City As String, Kind As String, Optional weight As Double)

Sheets("Стоимость отправки").Select

Range("A2").Select

Selection.CurrentRegion.Select

n = Selection.Rows.Count

For i = 3 To n Step 1

If InStr(1, Sheets("Стоимость отправки").Range("A" & i).Value, City, vbTextCompare) > 0 Then

If Kind = "посылка" Then DispatchCost = weight * Range("B" & i).Value

If Kind = "бандероль" Then DispatchCost = weight * Range("E" & i).Value

If Kind = "заказное письмо" Then DispatchCost = weight * Range("H" & i).Value

End If

Next i

End Function

'Пересчёт стоимости отправки корреспонденции при изменении города. Аналогичный код обрабатывает изменение веса и типа корреспонденции

Private Sub ComboBox2_Change()

If IsNumeric(TextBox6.Text) And ComboBox1.Value <> "" And ComboBox2.Value <> "" And TextBox6.Text <> "" _

Then Label10.Caption = DispatchCost(ComboBox2.Value, ComboBox1.Value, CDbl(TextBox6.Text)) _

Else Label10.Caption = ""

End Sub

'Отчёт по направлениям (отправка)

Private Sub CommandButton5_Click()

Worksheets("Отчёты").Activate

Cells(3, 1).Select

Selection.CurrentRegion.Select

n = Selection.Rows.Count + 2

Worksheets("Отправленная корреспонденция").Select

Cells(3, 1).Select

Selection.CurrentRegion.Select

n2 = Selection.Rows.Count + 2

For i = 4 To n Step 1

Sheets("Отчёты").Select

CurrentCity = Range("A" & i).Value 'перебор городов

Count1 = 0

Count2 = 0

Count3 = 0

Sum1 = 0

Sum2 = 0

Sum3 = 0

Sheets("Отправленная корреспонденция").Select

For j = 4 To n2 Step 1 'перебор отправленной корреспонденции

If Range("D" & j).Value = CurrentCity Then

If Range("C" & j).Value = "посылка" Then

Count1 = Count1 + 1

Sum1 = Sum1 + Range("I" & j).Value

End If

If Range("C" & j).Value = "бандероль" Then

Count2 = Count2 + 1

Sum2 = Sum2 + Range("I" & j).Value

End If

If Range("C" & j).Value = "заказное письмо" Then

Count3 = Count3 + 1

Sum3 = Sum3 + Range("I" & j).Value

End If

End If

Next j

Sheets("Отчёты").Select

Range("B" & i).Value = Count1

Range("C" & i).Value = Sum1

Range("D" & i).Value = Count2

Range("E" & i).Value = Sum2

Range("F" & i).Value = Count3

Range("G" & i).Value = Sum3

Next i

For Each m In Sheets

If m.Name <> "Отчёты" Then m.Visible = False

Next m

Application.Visible = True

Почта.Hide

End Sub

'формирование сопроводительной ведомости (получение)

Private Sub CommandButton8_Click()

data = InputBox("Укажите дату", "Сопроводительная ведомость (получение)")

While IsDate(data) = False

data = InputBox("Укажите дату", "Сопроводительная ведомость (получение)")

Wend

Sheets("Сопроводительная ведомость").Select

Range("K4").Select

Selection.CurrentRegion.Select

n = Selection.Rows.Count + 4

If n > 4 Then Range("K5:S" & n).Clear

Sheets("Полученная корреспонденция").Select

Range("A3").Select

Selection.CurrentRegion.Select

n = Selection.Rows.Count + 2

c = 5

For i = 4 To n Step 1

Sheets("Полученная корреспонденция").Activate

If Range("B" & i).Value = data Then

Range("A" & i & ":I" & i).Copy

Sheets("Сопроводительная ведомость").Activate

Range("K" & c).Select

ActiveSheet.Paste

c = c + 1

End If

Next i

For Each m In Sheets

If m.Name <> "Сопроводительная ведомость" Then m.Visible = False

Next m

Application.Visible = True

Почта.Hide

End Sub

'обработка нажатия кнопки «Выдать»

Private Sub CommandButton13_Click()

i = ListBox1.ListIndex

j = ListBox1.List(i, 0) + 3

Sheets("Полученная корреспонденция").Select

Range("J" & j).Value = "ВЫДАНО"

Range("A3").Select

Selection.CurrentRegion.Select

n = Selection.Rows.Count + 2

Range("N3").Select

Selection.CurrentRegion.Select

Selection.Clear

Range("A3:J" & n).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _

"L3:L4"), CopyToRange:=Range("N3"), Unique:=False

Range("N3").Select

Selection.CurrentRegion.Select

n = Selection.Rows.Count + 3

ListBox1.RowSource = "N4:V" & n

End Sub

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5211
Авторов
на СтудИзбе
429
Средний доход
с одного платного файла
Обучение Подробнее