Решение задачи по хранению документов в формате Excel. Не нужно никакой дополнительной установки специальных программ. Нужна лишь папка, в которой будет хранится вся ваша база документов.
В одной из статей, я описывал способ сохранения документов Word (ссылка на видео) с помощью кнопки на панели быстрого доступа.
Эта статья ее логическое продолжение, только самое основное отличие в том, что вы можете видеть перечень тех документов, которые сохранили в базе.
Сама база документов представляет собой документ Excel, в котором находится таблица, в которую пользователь вносит данные о созданных документах, причем новую строку и дату создания документа программа вставляет сама. У пользователя же она спрашивает только имя файла. Затем программа автоматически создает папку и сохраняет в нее нужный документ.
В нашем примере, открыто два документа Excel. Один из которых непосредственно база документов, второй документ - создаваемый (или новый) документ.
Основным условием для успешного сохранения в нашем случае является то, что должно быть открыто только два документа в программе Excel. Если есть необходимость для выбора из большего количества документо, то придется создавать специальную форму, в которую будут выводится все открытые документы и пользователю нужно будет только выбрать один из них.
Вот порядок Ваших действий, для создания базы данных:
- Создайте где-нибудь, на свое усмотрение новую папку и назовите ее, например "База документов Excel".
2. Создайте в новой папке документ Excel и сохраните ее под любым именем в формате с поддержкой макросов. Создайте в документе таблицу, указанную на рисунке
3. Откройте редактор VBA (сочетание клавиш Alt+F11), создайте новый модуль для кода и скопируйте в нее следующий текст.
Sub ввод_нового_документа()
Dim wb As Workbook, wS As Worksheet, r As Range
Dim wbN As Workbook, wsN As Worksheet, wN As Workbook
Dim rN As Range
Dim i As Long
Dim Nr As Long
Dim strP As String, strN As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set wb = ThisWorkbook
For Each wN In Application.Workbooks
If wN.Name <> wb.Name Then
Set wbN = wN
End If
Next
Set wS = wb.Worksheets(1)
Set r = wS.Cells(4, 1).CurrentRegion
Set rN = r.Offset(r.Rows.Count).Resize(1)
With rN
.Cells(1, 1) = r.Rows.Count
.Cells(1, 2) = Format(Now, "dd.mm.yyyy")
.Cells(1, 3) = InputBox("Введите имя документа")
End With
strP = ThisWorkbook.Path
strN = strP & "\Каталоги\" & rN.Cells(1, 1) & "_" & rN.Cells(1, 2)
If fso.folderexists(strN) = False Then
MkDir strN
End If
wbN.SaveAs strN & "\" & rN.Cells(1, 3) & ".xlsx"
wbN.Close
rN.Cells(1, 6) = "\Каталоги\" & rN.Cells(1, 1) & "_" & rN.Cells(1, 2) & "\" & rN.Cells(1, 3) & ".xlsx"
End Sub
4. В редакторе VBA перейдите в модуль рабочего листа
5. У вас появится чисто поле ввода кода, в котором будет две строки
6. Выделите две строки команды и вместо них вставьте следующие строки
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 3 Then ' в этой строке программа проверяет, чтобы двойной щелчок был по ячейке в третьем столбце
Application.Workbooks.Open ThisWorkbook.Path & ActiveSheet.Cells(Target.Row, 6)
End If
End Sub
После ввода этой части кода, при двойном нажатии на ячейке с именем слайда в таблице с перечнем документов, у вас будет открываться нужный вам файл.
4. С помощью вкладки "Разработчик" на ленте приложения Excel создайте сверху над таблицей кнопку и назовите ее "Новый документ"
Вот и все. Теперь можно пользоваться.
Если Вам понравилась статья, ставьте лайки и подписывайтесь на канал. Дальше будет интересно.
PS: создание аналогичного инструмента ведения делопроизводства, но в программе Access описано в статье по этой ссылке