Сбор данных по детским садам по форме 85-К

Автор: | 03.02.2015

23.01.2020

Ниже находится описание работы с формой. Сразу отмечу, что нынешняя форма за 2019 год могла измениться. Я в 2015 году просто решил помочь обработать данные. Для этого я фактически сначала создал файл Excel с листами соответствующими страницам присылаемого  файла Ворд. Детсады заполнили оба файла. Файлы Excel я обработал программно, т.е фактически собрал данные в нужном формате для присылаемого также отчета по району в формате Excel. Будет ли кто-то у Вас этим заниматься  – это вопрос.

Сейчас эта же работа проводится кем-то вручную. Так что флаг Вам в руки. Бумажная деятельность создаёт видимость бурной работы. Вы будете просто перегружены, и все это будут видеть. И это действительно будет так. Вы будете вызывать заведующих, назначать им время для ввода данных и их проверки. Все будут при деле. Тот человек, кому я готовил программу, уволился. И всё осталось как есть.

А ниже, что было сделано в 2015 году.

В 2015 году в очередной раз сбор данных по форме 85-К проводился в двух видах:

1) Стандартный статотчет в формате Word;

2) Итоговый файл в формате Excel в разрезе муниципальных ДОУ, школ с дошкольными отделениями и частных ДОУ.

Все ДОУ были вынуждены заполнять фактически 2 документа – стандартный стат отчет и многостраничный документ Excel, дублирующий фактически сведения статотчета.

Файл Excel содержал 11 листов с именами стр.1 – стр.11

Первый лист содержал наименование ДОУ и его адрес.

Последний лист содержал данные о финансовых расходах ДОУ и среднесписочной численности работающих.

Итоговый отчет состоял из 6 основных приложений, содержащих сведения по каждому ДОУ в различных разрезах деятельности

Приложение 1 – Приложение ¦ 1 Cведения о деятельности ДОУ.xls должно было отражать следующие данные

  • Общее количество организаций
  • Количество организаций (филиалов, групп), единиц с разбивкой по городу и селу
  • Режим работы организаций пяти или шестидневный
  • Находится на капитальном ремонте, единиц
  • Деятельность приостановлена, единиц
  • Численность воспитанников, человек по городу и селу и с возрастом 3 и более лет
  • Численность воспитанников, в том числе в возрасте, лет (число полных лет на 31.12.2014)
  • всего и с разбивкой по полному числу лет возраста от 0 до 7
  • Число групп, единиц всего и с возрастом 3 и более лет
  • Число мест
  • Число кружков, секций
  • Отклонение количества организаций
  • Отклонение численности воспитанников

Последние две колонки нужны были для проверки правильности внесенных данных

Какие возникли проблемы при сборе данных?

Формы в Excel были реализованы методом создания множества мелких столбцов, в которых создавались таблицы с ячейками заданного размера для внесения данных путем их объединения;

  • Адрес каждой ячейки определить из самой таблицы было невозможно, а это самое главное для переноса данных
  • Требовалось учитывать тип ОУ как городской или сельский

Адрес нужной ячейки легко найти с помощью хотя бы такого макроса

Sub Adr_cell()

Dim adr As String

adr = ActiveCell.Address

row1 = ActiveCell.Row

col1 = ActiveCell.Column

MsgBox adr + vbCr + Str(row1) + vbCr + Str(col1)

End Sub

Тогда для переноса данных из открытой книги по ДОУ с нужного листа на лист сбора данных в другую (общую) книгу можно осуществить с помощью приблизительно таких строк

Sheets(“стр.4”).Activate

‘ Численность воспитанников по годам

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 14) = Cells(8, 38)  ‘Всего воспитанников

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 15) = Cells(8, 52) ‘0 год

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 16) = Cells(8, 65) ‘1 год

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 17) = Cells(8, 78) ‘2 год

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 18) = Cells(8, 91) ‘3 год

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 19) = Cells(8, 104) ‘4 год

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 20) = Cells(8, 117) ‘5 год

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 21) = Cells(8, 130) ‘6 год

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 22) = Cells(8, 143) ‘7 год

 Ввод номера ДОУ по порядку и наименования

 ‘Ввод наименования

Sheets(“стр.1”).Activate

Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 1) = iStr_List – 6

 Workbooks(Kniga).Sheets(“Сбор”).Cells(iStr_List, 2) = Replace(Cells(22, 48), “_”, “”)

Значение iStr_List в начале равно 7, а затем изменяется после открытия каждой новой книги, содержащей сведения по новому ДОУ на 1.

Самый простой способ форматирования результата на листе Сбор можно провести с помощью такого макроса

Sub Format_Stroka()

 If ActiveSheet.Name <> “Сбор” Then

    Sheets(“Сбор”).Activate

End If

     Rows(“7:7”).Select

    Selection.Copy

    Rows(“7:47”).Select

    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

        SkipBlanks:=False, Transpose:=False

    Application.CutCopyMode = False

End Sub

Хотя можно использовать и более изощренные способа определения размеров таблицы и числа строк и столбцов в ней для форматирования, например CurrentRegion

Загрузка файлов ДОУ из папки и его обработка ведётся последовательно с применением стандартного модуля, используемого мной постоянно.

Макрос определяет имена файлов в папке и заносит их в форму типа ListBox с возможностью выделения CheckBox.

Выделенные файлы (обычно все) последовательно загружаются и обрабатываются.

Сейчас Сбор по приложению 1 настроен на конкретную папку на диске С.

C:/Форма 85-К/Прислано

В этой папке находятся файлы для обработки.

Файл для сбора данных лучше держать в папке C:/Форма 85-К

Приложение 1 для сбора защищено паролем, но Вы всегда можете его снять известными средствами. Файлы подготовлены в формате Excel 2003.

Ссылка указывает на архив Zip. Скачайте архив, разархивируйте его и скопируйте на диск С.

Не забудьте настроить Excel для запуска макросов в среднем режиме безопасности.