Задумка была такова, что пользователь после открытия Книги2 продолжает работать в ней, а Книга1 будет доступна для открытия другим пользователем.
В Книге1 содержится шаблон некоего бланка и список ранее созданных файлов. В форме Main пользователь либо создает новую рабочую книгу куда копируется этот шаблон и форма для его заполнения (Common) и пополняет список ранее созданных
Код |
---|
Private Sub OK_Click()
Filename = Fam & "_" & Nam & "_" & Otch & "_" & Date
FilePath = ThisWorkbook.Path & "\" & Filename & ".xls"
Sheets("Napravlenie").Cells.Copy
Workbooks.Add
Cells.Paste
ActiveWorkbook.SaveAs Filename:=FilePath
ThisWorkbook.Worksheets("Files").Activate
Columns("A:A").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Select
ActiveCell.Value = Filename
Modname = ThisWorkbook.Path & "\tempcommon.bas"
ThisWorkbook.VBProject.VBComponents("Common").Export Modname
Workbooks(Filename & ".xls").Activate
Set VBP = ActiveWorkbook.VBProject
VBP.VBComponents.Import Modname
Kill Modname
s = s & "Private Sub Workbook_Open()" & vbNewLine
s = s & " Common.Show" & vbNewLine
s = s & "End Sub"
Workbooks(Filename & ".xls").Activate
Set vbComp = ActiveWorkbook.VBProject.VBComponents("ЭтаКнига")
With vbComp.CodeModule
.InsertLines .CountOfLines + 1, s
End With
Set vbComp = Nothing
Workbooks(Filename & ".xls").Save
Workbooks(Filename & ".xls").Close
Application.Workbooks.Open (FilePath)
End Sub
|
либо открывает для редактирования ранее созданный
Код |
---|
Private Sub SelectFile_Click()
If FileName.Value = "" Then
MsgBox ("Не выбран файл")
Else
Main.Hide
ThisWorkbook.Save
FilePath = ThisWorkbook.Path & "\" & FileName.Value & ".xls"
Application.Workbooks.Open (FilePath)
End If
End Sub |
Нужно, чтобы пока один пользователь работает с одним из файлов из списка, второй, третий и т.д. пользователи могли создать или открыть для редактирования другие файлы. Т.е. нужно закрыть Книгу1 без прекращения работы открытых ею файлов.