Среда, 18.07.2018, 15:04
Поиск
Никнэйм
Сертификат на никнейм Olelucoye, зарегистрирован на Тимофеев Константин Михайлович
Зарегистрируй свой никнейм
Обратная связь
olelucoye.tk@yandex.ru
Реклама AdSense
Реклама
Друзья сайта
  • Лига медицинского права
  • Гостиница "Зай"
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Excel

    Многопользовательский режим работы в Excel

    По умолчанию в Excel многопользовательский режим отключен. Т.е. если попробовать открыть файл открытый другим пользователем, он запустится в режиме "Только для чтения". Что бы вносить изменения в файл могли вносить несколько пользователей нужно в меню Сервис->Доступ к книге поставить галку "разрешить изменять файл нескольким пользователям". Но, вообще, Excel не предназначен для такой работы - могут возникать конфликтные ситуации при внесении изменений в одну ячейку несколькими пользователями одновременно.

    При составлении одной программы, мне понадобилось, чтобы с базой данных могли работать несколько пользователей. Вот как я решил проблему общего доступа: на каждую запись в базе данных создается отдельный файл Excel, а в главном файле содержатся только имена файлов для каждой записи. Пользователь открывает главный файл, выбирает нужную запись, главный файл закрывается и становится доступен для работы для других пользователь. Так каждый пользователь работает со своей записью, не мешая работе другим. Это, конечно, не многопользовательский режим, но проблему общего доступа частично снимает.

    Как это выглядит в коде.

    Модуль "Эта книга"

    Private Sub Workbook_Open()
    Application.WindowState = xlNormal
    Application.Left = 70
    Application.Top = 70
    Application.Height = 100
    Application.Width = 100
    If ThisWorkbook.Name Like "Header*" Then
    'Если файл называется Header запускаем форму выбора записи
    Main.Show
    Else
    'Иначе вызываем подпрограмму showcom с задержкой
    Application.OnTime Now, "showcom"
    End If
    End Sub

     

    Подпрограмма showcom

    Sub showcom()
    'Открываем форму заполнения записи
    Common.Show
    End Sub

    Окно выбора записи

     

    Обработчик нажатия кнопки "Выбрать направление"

    Private Sub SelectNap_Click()
    Dim FilePath As String
    If OtNapr.Value = "" Then
    MsgBox ("Не выбран файл")
    Else
    ThisWorkbook.Save
    'Формируем путь к файлу записи
    FilePath = ThisWorkbook.Path & "\" & OtNapr.Value & ".xls"
    Select Case IsOpenable(FilePath)
    'Проверяем доступность файла для редактирования
    Case 70: MsgBox "Файл открыт другим пользователем"
    Case 53, 76: MsgBox "Файл не существует, возможно он был удален или переименован"
    Case 0: 'Если файл доступен открываем его и закрываем файл выбора записи
    Application.Workbooks.Open (FilePath)
    ThisWorkbook.Close
    Case Else: MsgBox "Файл заблокирован другим процессом"
    End Select
    End If
    End Sub

    При нажатии кнопки "Новое направление" открывается форма создания новой записи.

    Обработчик нажатия кнопки "ОК". Создается новая запись. Файл сохраняется с новым именем и окрывается форма редактирования записи.

    Private Sub OK_Click()
    If Fam = "" Or Nam = "" Or Otch = "" Then
    MsgBox ("Не заполнено")
    Else
    Filename = Fam & "_" & Nam & "_" & Otch & "_" & Date
    FilePath = ThisWorkbook.Path & "\" & Filename & ".xls"
    If Dir(FilePath) <> "" Then
    MsgBox ("Файл с таким именем уже существует")
    Else
    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
    ThisWorkbook.Save
    ActiveWorkbook.SaveAs Filename:=FilePath
    FIOfile.Hide
    Common.Show
    End If
    End If
    End Sub

    Кто хочет посмотреть код в действии вот файл.

    Делаем полноценное приложение на VBA часть1

    Делаем полноценное приложение на VBA часть2

    Делаем полноценное приложение на VBA часть3

    Параметры безопасности макросов

    Интерфейс VBA редактора

    Категория: Excel | Добавил: Olelucoye (09.11.2013)
    Просмотров: 6535
    | Теги: многопользовательский режим, vba, Excel | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Меню сайта
    Категории раздела
    Андроид разработка [23]
    libGDX [24]
    Мои андроид проекты [6]
    Excel [7]
    Железяки [5]
    Скрипты в блокноте [4]
    Разное [1]
    Форма входа
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Яндекс Метрика
    Яндекс.Метрика