Взаимодействие excel с пользователя

Предоставление доступа к книге другим пользователям  

  1. Выберите Excel кнопка "Поделиться"поделиться на ленте.

    Можно также выбрать элементы Файл > Общий доступ.

    Примечание: Если файл еще не сохранен в OneDrive, вам будет предложено сделать это, чтобы предоставить общий доступ.

  2. Выберите пользователя, которому вы хотите предоставить общий доступ, в раскрывающемся списке или введите его имя либо адрес электронной почты.

  3. Добавьте сообщение (необязательно) и нажмите кнопку Отправить.

Excel "Поделиться"

Далее:    
Настройка мобильного приложения Excel

Нужна дополнительная помощь?

Совместный доступ в Microsoft Excel дает возможность работать с одним файлом сразу нескольким пользователям. Десять-двадцать человек на разных компьютерах одновременно вносят какие-то данные в один документ. Где находится определенная информация, работают определенные формулы.

«Главный пользователь» имеет возможность отслеживать действия рабочей группы, добавлять/удалять участников, редактировать противоречивые изменения. Как настроить совместную работу в Excel.

Особенности работы с общим файлом

В книге Excel со совместным доступом не все задачи можно выполнять.

Нельзя:

  • Создавать таблицы Excel.
  • Создавать, менять или просматривать сценарии.
  • Удалять листы.
  • Объединять либо разделять ячейки.
  • Работать с XML-данными (импортировать, добавлять, обновлять, удалять и т.д.).

Выход: отключить общий доступ – выполнить запрещенную задачу – снова включить доступ.

Совместное пользование ограничивает для участников еще ряд задач:

Недопустимо Реально
Вставлять либо удалять группу ячеек Добавлять строку или столбец
Добавлять либо изменять условные форматы Работать с существующими форматами
Включать или изменять инструмент «Проверка данных» Работать с существующими настройками проверки
Создавать или редактировать диаграммы, сводные отчеты Работать с имеющимися диаграммами и сводными таблицами
Вставлять или редактировать рисунки и графические объекты Просматривать имеющиеся рисунки и графические объекты
Вставлять или менять гиперссылки Переходить по имеющимся гиперссылкам
Назначать, редактировать либо удалять пароли Существующие пароли функционируют
Ставить либо снимать защиту листов и книг Существующая защита работает
Группировать, структурировать данные; вставлять подуровни Работать с имеющимися группами, структурами и подуровнями
Записывать, изменять или просматривать макросы Запускать имеющиеся макросы, которые не связаны с недоступными задачами
Изменять или удалять формулы массива Пользоваться существующими формулами
Добавлять в форму данных новую информацию Искать информацию в форме данных



Как сделать совместный доступ к файлу Excel?

Сначала определяемся, какую книгу мы «откроем» для редактирования сразу несколькими участниками. Создаем новый файл и наполняем его информацией. Либо открываем существующий.

  1. Переходим на вкладку «Рецензирование». Диалоговое окно «Доступ к книге».
  2. Рецензирование-Доступ к книге.

  3. Управление доступом к файлу – правка. Ставим галочку напротив «Разрешить изменять файл нескольким пользователям одновременно».
  4. Управление доступом к файлу.

  5. Переходим к инструменту «Подробнее», чтобы настроить параметры многопользовательского редактирования.
  6. Настройки в Подробнее.

  7. Нажимаем ОК. Если мы открываем общий доступ к новой книге, то выбираем ей название. Если совместное пользование предполагается для существующего файла – жмем ОК.
  8. Открываем меню Microsoft Office. Выбираем команду «Сохранить как». Выбираем тот формат файла сохранения, который «пойдет» на всех пользовательских компьютерах.
  9. Местом сохранения выбираем сетевой ресурс / сетевую папку, которую откроют предполагаемые участники. Нажимаем «Сохранить».

Внимание! Нельзя использовать для сохранения общего файла веб-сервер.

Теперь проверим и обновим ссылки:

  1. Вкладка «Данные». «Подключения».
  2. Данные-Подключения.

  3. Изменить ссылки / изменить связи. Если такая кнопка отсутствует, в листе нет связанных файлов.
  4. Переходим на вкладку «Состояние», чтобы проверить имеющиеся связи. На работоспособность связей указывает кнопка ОК.

Открытие книги с совместным доступом

  1. Открываем меню Microsoft Office.
  2. Нажимаем «Открыть».
  3. Выбираем общую книгу.
  4. Когда книга открыта, нажимаем на кнопку Microsoft Office. Переходим на вкладку «Параметры Excel» (в нижней части меню).
  5. «Общие» — «Личная настройка» — «Имя пользователя». Вводим опознавательную информацию (имя, ник-нейм).
  6. Имя пользователя.

Все. Можно редактировать информацию, вводить новую. После работы – сохранить.

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

  1. Одну и ту же часть документа редактируют несколько пользователей. К примеру, вбивают разные данные в одну ячейку. Возникает блокировка.
  2. Во время пользования совместным файлом ведется журнал изменений (кто входил, когда, что делал). Книга увеличивается. Начинает «глючить».
  3. Удалили кого-то из пользователей, но пока ему не сказали об этом. Тогда блокировка может появиться только на его компьютере.
  4. Большая нагрузка на сетевой ресурс.

Что можно сделать, если совместный доступ к файлу файл заблокирован:

  1. Почистить либо удалить журнал изменений.
  2. Почистить содержимое файла.
  3. Отменить, а потом снова активировать совместный доступ.
  4. Открыть книгу xls в OpenOffice. И снова сохранить ее в xls.

Замечено, что запись «Файл заблокирован» реже появляется в новейших версиях Excel.

Как удалить пользователя

  1. На вкладке «Рецензирование» открываем меню «Доступ к книге».
  2. Доступ к книге.

  3. В разделе «Правка» мы видим перечень пользователей.
  4. Список пользователей.

  5. Выбираем имя – нажимаем «Удалить».

Перед удалением проверьте, что пользователи закончили работу с файлом.

Как отключить режим совместного доступа в Excel

Все пользователи должны сохранить информацию и закрыть общий файл. Если необходимо оставить журнал, соблюдаем инструкцию:

  1. Вкладка «Рецензирование» — «Исправления» — «Выделить исправления».
  2. Выделить исправления.

  3. Устанавливаем параметры «Исправлений». По времени – «все». Галочки напротив «Пользователем» и «В диапазоне» сняты. Напротив «вносить изменения на отдельный лист» — стоит. Жмем ОК.
  4. Вносить изменения на отдельный лист.

  5. Откроется Журнал изменений. Его можно сохранить либо распечатать.

Чтобы отключить совместный доступ к файлу Excel, на вкладке «Рецензирование» нажать «Доступ к книге» и снять галочку напротив «Разрешить изменять файл нескольким пользователям».

Разрешить изменять файл нескольким пользователям.

В списке должен остаться один пользователь – Вы.

Хитрости »

19 Октябрь 2014              101514 просмотров


Работа с диалогами

Несомненно каждый разработчик делает работу простого пользователя хоть немного, но проще. И конечно, порой просто необходима обратная связь от пользователя при выполнении некоторых программ. О ней и хочу сегодня рассказать.
Что я имею ввиду: есть ситуации, когда необходимо:

  • сообщить пользователю о выполнении кода;
  • получить от пользователя подтверждение на выполнение того или иного действия;
  • запросить какие-то данные(число, текст для поиска, диапазон поиска и т.п.).

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

Из основных можно выделить три типа:
MsgBox — окно информирования пользователя с возможностью запроса действия (Да, Нет, Отмена и т.п.);
InputBox — окно запроса текстовой информации от пользователя (текст для поиска, дата, число и т.п.);
Application.InputBox — чуть более расширенная версия InputBox с возможностью указания не только текста и чисел, но и выделения диапазона ячеек (например для указания ячеек, в которых осуществлять поиск значения или которые необходимо закрасить).

  • Информационный диалог MsgBox
  • MsgBox, автоматически закрываемый по истечении указанного времени
  • Диалог ввода информации пользователем InputBox
  • Диалог выбора диапазона Application.InputBox

ИНФОРМАЦИОННЫЙ ДИАЛОГ MSGBOX

MsgBox
Самый простой тип. Используется для информирования пользователя. Как правило применяется по окончании выполнения кода:

MsgBox Promt, [Buttons], [Title], [HelpFile], [Context]

Обязательным к указанию является только первый параметр —

Promt

, в котором указывается непосредственно сообщение для вывода:

MsgBox "Обработка завершена"

Все остальные параметры указывать не обязательно, но их использование несколько расширяет возможности данного диалогового окна.
Buttons — указывается тип выводимых кнопок и стиль окна. По умолчанию применяется vbOKOnly — одна только кнопка Ок:

'показываем окно с кнопкой по умолчанию и типом важного сообщения
MsgBox "Обработка завершена", vbCritical

Доступны значения:

Значение Числовая константа Описание
vbOKOnly 0 Отображает только кнопку OK
vbOKCancel 1 Отображает кнопки ОК и Отмена
vbAbortRetryIgnore 2 Отображает кнопки Прервать, Повтор и Пропустить
vbYesNoCancel 3 Отображает кнопки Да, Нет и Отмена
vbYesNo 4 Отображает кнопки Да и Нет
vbRetryCancel 5 Отображает кнопки Повтор и Отмена
vbCritical 16 Отображает значок важного сообщения
vbQuestion 32 Отображает значок важного запроса
vbExclamation 48 Отображает значок предупреждающего сообщения
vbInformation 64 Отображает значок информационного сообщения
vbDefaultButton1 0 По умолчанию выделена первая кнопка
vbDefaultButton2 256 По умолчанию выделена вторая кнопка
vbDefaultButton3 512 По умолчанию выделена третья кнопка
vbDefaultButton4 768 По умолчанию выделена четвертая кнопка
vbApplicationModal 4098 Все приложения приостанавливают свою работу до момента, пока пользователь ответит на запрос в окне сообщения (работает не во всех случаях)
vbMsgBoxHelpButton 16384 Показываются кнопки Ок и Help

Константы Buttons могут быть объединены между собой. Ниже приведен код, который показывает диалоговое окно с возможностью выбора одного из трех вариантов — Прервать, Повтор, Пропустить:

'---------------------------------------------------------------------------------------
' Procedure : test
' DateTime  : 19.10.2014 19:24
' Author    : The_Prist(Щербаков Дмитрий)
'             WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
'             http://www.excel-vba.ru
' Purpose   : Процедура показывает диалоговое окно с возможностью выбора одного из трех вариантов:
'             Прервать, Повтор, Пропустить
'             По умолчанию выделена кнопка Прервать, т.к. иное не указано
'---------------------------------------------------------------------------------------
Sub test()
    Dim lRetVal As Long 'для получения выбранного значения
Retry_:
    lRetVal = MsgBox("Обработка завершена", vbAbortRetryIgnore + vbQuestion)
    Select Case lRetVal
    Case vbAbort    '3/Прервать/Abort
        Exit Sub    'выходим из процедуры
    Case vbRetry    '4/Повтор/Retry
        GoTo Retry_ 'переход на метку Retry_
    Case vbIgnore   '5/Пропустить/Ignore
    End Select
End Sub

Следующий код показывает то же окно, но по умолчанию выделяет кнопку Пропустить

'---------------------------------------------------------------------------------------
' Procedure : test
' DateTime  : 19.10.2014 19:24
' Author    : The_Prist(Щербаков Дмитрий)
'             WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
'             http://www.excel-vba.ru
' Purpose   : Процедура показывает диалоговое окно с возможностью выбора одного из трех вариантов:
'             Прервать, Повтор, Пропустить
'             По умолчанию выделена кнопка Пропустить(3-я по счету - значит vbDefaultButton3)
'---------------------------------------------------------------------------------------
Sub test()
    Dim lRetVal As Long 'для получения выбранного значения
Retry_:
    lRetVal = MsgBox("Обработка завершена", vbAbortRetryIgnore + vbQuestion + vbDefaultButton3)
    Select Case lRetVal
    Case vbAbort    '3/Прервать/Abort
        Exit Sub    'выходим из процедуры
    Case vbRetry    '4/Повтор/Retry
        GoTo Retry_ 'переход на метку Retry_
    Case vbIgnore   '5/Пропустить/Ignore
    End Select
End Sub

Вместо текстового представления констант можно применить их числовые значения:

Sub test()
    Dim lRetVal As Long 'для получения выбранного значения
Retry_:
    lRetVal = MsgBox("Обработка завершена", 2 + 32 + 512)
    Select Case lRetVal
    Case 3    'vbAbort
        Exit Sub    'выходим из процедуры
    Case 4    'vbRetry
        GoTo Retry_ 'переход на метку Retry_
    Case 5   'vbIgnore
    End Select
End Sub

Нетрудно после этого предположить, что можно указать просто сумму данных чисел:

MsgBox "Обработка завершена", 546

Доступные константы значений возврата:

Константа Значение Нажатая кнопка
vboK 1 ОК
vbCancel 2 Отмена
vbAbort 3 Прервать
vbRetry 4 Повтор
vblgnore 5 Пропустить
vbYes 6 Да
vbNo 7 Нет

Title — указывается текст заголовка окна. Например, можно указать либо что это ошибка, либо имя своего приложения:

MsgBox "Обработка завершена", vbOKOnly, "Мое приложение"

HelpFile — указывается имя файла-справки в формате HLP. Применяется, если параметр Buttons указан как vbMsgBoxHelpButton. Файл справки должен существовать.
Context — целое число. Указывается индекс страницы файла-справки, которую необходимо открыть. Указывается только если указан параметр HelpFile.

Небольшой практический пример применения простого диалогового окна MsgBox.
Цель процедуры(макроса): очистить все ячейки листа.
Согласитесь, что неплохо бы перед этим запросить у пользователя решение — он согласен с этим и это является обдуманным решением или случайностью?

'---------------------------------------------------------------------------------------
' Procedure : ClearRange
' DateTime  : 19.10.2014 20:06
' Author    : The_Prist(Щербаков Дмитрий)
'             WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
'             http://www.excel-vba.ru
' Purpose   :
'---------------------------------------------------------------------------------------
Sub ClearRange()
    Dim lRetVal As Long 'для получения выбранного значения
    lRetVal = MsgBox("Все данные выделенных ячеек будут удалены." & _
        Chr(10) & "Действительно хотите продолжить?", _
        vbYesNo + vbQuestion, "Запрос на выполнение")
    If lRetVal = vbNo Then
        Exit Sub 'выходим из процедуры без выполнения
    End If
    Selection.Clear
End Sub

Так же на странице Полезные программы для Excel и VBA можно найти программу MsgBox Generator, которая просто и наглядно формирует коды показа MsgBox.


MsgBox, автоматически закрываемый по истечении указанного времени

Диалог MsgBox удобен, если надо проинформировать пользователя о каких-то событиях или предоставить ему выбор Да или Нет. Но в тоже время есть один недостаток: этот диалог не закроется, пока пользователь не нажмет хоть какую-то кнопку. Но бывает необходимо просто проинформировать и закрыть окно независимо от реакции пользователя. Показали окно, подождали секунд 5-7 и даже если пользователь ничего не нажал — закрыли окно и продолжили выполнение кода. Стандартно такой опции в MsgBox нет. Однако можно использовать функции API(это встроенные в ОС Windows функции, которые можно вызывать из любого языка программирования).
Код такого диалога:

Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" _
                        (ByVal hwnd As Long, ByVal lpText As String, _
                         ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, _
                         ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
Sub AutoCloseMsgBox()
    Const lSeconds As Long = 5
    MessageBoxTimeOut 0, "Отчет сформирован. Это окно закроется автоматически через 5 секунд", "www.excel-vba.ru", _
                         vbInformation + vbOKOnly, 0&, lSeconds * 1000
End Sub

Основную роль здесь играет строка:

Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" _
                        (ByVal hwnd As Long, ByVal lpText As String, _
                         ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, _
                         ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long

это и есть сама функция, создающая MsgBox.
Главное: эта строка должна располагаться в самом верху стандартного модуля(в области объявлений, перед всеми процедурами и функциями).

Так же следует помнить, что это функция API и в некоторых версиях Excel именно в таком виде может не работать — вся строка будет подсвечена красным. Если проявился такой эффект, то можно просто добавить ключевое слово PtrSafe, отвечающее за совместимость функции с 64-битными ОС:

Declare PtrSafe Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" _
                        (ByVal hwnd As Long, ByVal lpText As String, _
                         ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, _
                         ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long

Помимо очевидного текста сообщения и заголовка, который можно заменить на свой, главное внимание уделим константе lSeconds. Она отвечает за количество секунд показа сообщения. В примере выше сообщение будет показано на 5 секунд, после чего закроется само собой, если ранее не была нажата кнопка Ок.
Если необходимо показать сообщение на 10 секунд, то надо лишь заменить 5 на 10:
Const lSeconds As Long = 10
Параметр uType работает точно так же, как параметр Buttons у стандартного MsgBox. Т.е. можно комбинировать различные виды кнопок и использовать этот MsgBox как стандартный, но при этом закрыть его автоматически, если пользователь случайно «уснул» или ему лень/некогда что-то нажимать:

Sub AutoCloseMsgBox()
    Const lSeconds As Long = 10
    Dim retval
    retval = MessageBoxTimeOut(0, "Файлы обработаны. Вывести список?" & vbNewLine & _
                                  "Если действие не будет выбрано окно закроется через 10 секунд", "www.excel-vba.ru", _
                                  vbInformation + vbYesNo, 0&, lSeconds * 1000)
    If retval = 6 Then 'была нажата кнопка Да(Yes)
        'выводим отчет
    Else 'была нажата кнопка Нет(No) или окно закрылось само
        'другое действие
    End If
End Sub

ДИАЛОГ ВВОДА ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕМ — INPUTBOX
InputBox

позволяет запросить от пользователя любую текстовую информацию.
InputBox

InputBox Promt, [Title], [DefaultValue], [XPos], [YPos], [HelpFile], [Context]

Так же как и с MsgBox обязательным аргументом для указания является только

Promt

— это тот текст, который будет расположен непосредственно на самой форме диалога. Как правило это пояснение, что должен ввести пользователь.

Dim vRetVal 'для получения выбранного значения
vRetVal = InputBox("Укажите значение для поиска:", "Запрос данных", "")
If vRetVal = "" Then Exit Sub 'завершаем процедуру, если строка пуста

Title — текст, отображаемый в заголовке окна. В приведенном выше примере это «Запрос данных».
DefaultValue — значение, которое будет показано в поле ввода до указания значения пользователем. Как правило оно указывается в случаях, когда требуемое значение изменяется редко по запросу пользователя, но возможность такую оставить все же требуется.
Пример: необходимо по нажатию кнопки удалять всегда столбец 5. Но иногда столбец в отчете смещается и требуется запрашивать у пользователя реальный номер столбца:

Sub DelCols()
    Dim vRetVal 'для получения выбранного значения
    vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", 5)
    'используем Val для преобразования текста vRetVal в число
    'Val() преобразует число как текст в число.
    'Если указан текст(например "третий") - он будет преобразован в 0
    vRetVal = Val(vRetVal)
    If Val(vRetVal) = 0 Then
        MsgBox "Номер столбца должен быть целым числом больше нуля!", vbCritical, "DelCols"
        Exit Sub
    End If
    Columns(vRetVal).Delete
End Sub

Важно знать: InputBox всегда возвращает только текст. Даже если указать — 5 — он вернет «5». В некоторых случаях это может привести к ошибке типов данных, поэтому я привел выше один из примеров преобразования типов данных к нужному.
Так же по прошествии какого-то времени появится вопрос, как отследить нажатие кнопки Отмена. Ведь ориентир на vRetVal = «» не всегда верен, иногда надо принять пустое значение(в случаях, скажем, замены значений) и отследить именно нажатие Отмена. Сделать это можно так:

vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", "")
 
If StrPtr(vRetVal) = 0 Then
    MsgBox "Нажата кнопка Отмена. Процедура прервана", vbCritical, "DelCols"
    Exit Sub
End If

Больше всего вопросов здесь явно вызовет StrPtr. Эта специальная функция VBA, которая указывает, что переданы некие строковые данные. Если никаких данных не передавалось(а в случае с нажатием кнопки Отмена так и есть) указатель вернет 0. Если какие-то данные были переданы или нажата кнопка Ок(автоматом будет передана строка нулевой длины) — указатель StrPtr вернет значение отличное от нуля.

XPos — положение окна InputBox в твипах по горизонтали относительно левого края экрана. Следует учитывать, что именно относительно экрана, а не окна Excel.
YPos — положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile — указывается имя файла-справки в формате HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна — Help, которая и отвечает за вызов справки.
Context — целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.

В дополнение приведу классический пример применения InputBox — выполнение процедуры только после введения пароля:

Sub ClearAllCells()
Dim vRetVal
vRetVal = InputBox("Введите пароль:", "Авторизация", "")
 
If StrPtr(vRetVal) = 0 Then 'Нажата кнопка Отмена
    Exit Sub
End If
 
'если пароль неверный - завершаем процедуру без выполнения действий
If vRetVal <> "1234" Then
    MsgBox "Введенный пароль неверный", vbCritical, "ClearAllCells"
    Exit Sub
End If
'будет выполнено только если введен правильный пароль - 1234
'полная очистка всех ячеек активного листа
ActiveSheet.Cells.Clear
End Sub

А вот еще один пример применения — запрос имени пользователя и запись его в лист LOG, чтобы можно было отследить кто и когда открывал файл. При этом если пользователь нажал Отмена, то книга закроется, а если не укажет имя пользователя — появится сообщение и заново запрос. И так до тех пор, пока имя пользователя не будет введено или не будет нажата кнопка Отмена:

Private Sub Workbook_Open()
    'ThisWorkbook - Обращение к книге с кодом
    'Но из модуля самой книги можно обращаться и проще - Me
    ThisWorkbook.Visible = False
    Dim user As String, lastrow As Long
    'цикл, пока не будут указаны данные пользователя
    Do While user = ""
        user = InputBox("Введите имя пользователя:", "Авторизация", "")
        If StrPtr(user) = 0 Then
            MsgBox "Приложение будет закрыто", vbCritical, "Авторизация"
            ThisWorkbook.Close
            Exit Sub
        End If
        If user = "" Then
            MsgBox "Не указано имя пользователя!", vbCritical, "Авторизация"
        End If
    Loop
    With ThisWorkbook.Worksheets("LOG")
        'получаем последнюю заполненную ячейку на листе "LOG"
        lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
        'записываем имя пользователя
        .Cells(lastrow + 1, 1) = user
        'записываем время входа
        .Cells(lastrow + 1, 2) = Now
    End With
End Sub

Что важно: этот код записывается в модуль ЭтаКнига(ThisWorkbook) и тогда при любом открытии книги будет появляться запрос на имя пользователя.

Так же некоторые примеры применения InputBox можно найти в статьях на сайте. Например:
Как удалить строки по условию?
Как массово изменить гиперссылки?


ДИАЛОГ ВВОДА ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕМ — APPLICATION.INPUTBOX

 Applicatoin.InputBox
В общем-то данный диалог мало отличается от обычного InputBox, за исключением типов возвращаемых данных. У данного диалога намного богаче функционал определения типов данных.

InputBox Promt, [Title], [DefaultValue], [Left], [Top], [HelpFile], [HelpContextID], [Type]
почти все параметры аналогичны таким же параметрам в InputBox.
Promt — текст, отображаемый на самой форме. Иначе говоря — сама суть показа диалога.
Title — текст, отображаемый в заголовке окна. В приведенном выше примере это «Запрос данных».
DefaultValue — значение, которое будет показано в поле ввода до указания значения пользователем.
Left — положение окна InputBox в поинтах по горизонтали относительно левого края экрана. В отличие от простого InputBox положение определяется на основании расположения самого окна Excel, а не экрана.
Top — положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile — указывается имя файла-справки в формате HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна — Help, которая и отвечает за вызов справки. Сам вызов справки осуществляется путем нажатия на иконку со знаком вопроса в заголовке диалога.
HelpContextID — целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.
Type — целое число. Указывается одно из предустановленных значений, указывающих диалогу Application.InputBox тип данных, которые предполагается получить от пользователя. Ниже приведен листинг кода, демонстрирующий запрос данных всех типов с описанием ограничений и нюансов.

    Dim vRetVal 'для получения выбранного значения
    'запрос формулы - Type:=0
    'возвращает либо произвольный текст, указанный в поле или ссылку на указанную ячейку в стиле R1C1
    vRetVal = Application.InputBox("Укажите формулу:", "Запрос данных", "", Type:=0)
    'запрос числа - Type:=1
    'возвращает число. Не даст ввести текст, выдав сообщение об ошибке
    vRetVal = Application.InputBox("Укажите любое число:", "Запрос данных", "", Type:=1)
    'запрос текст - Type:=2
    'возвращает указанный текст. При указании числа оно будет в виде текста: 1="1"
    vRetVal = Application.InputBox("Укажите любой текст:", "Запрос данных", "", Type:=2)
    'запрос логического значения True или False - Type:=4
    'значение указывает в текущей локализации офиса
    'для русской это ИСТИНА или ЛОЖЬ
    'так же можно указать универсальные числовые константы - 1 или 0. 1 - ИСТИНА; 0 - ЛОЖЬ
    'Не даст ввести иные значения, выдав сообщение об ошибке
    'возвращает указанное логическое значение в английской локализации
    vRetVal = Application.InputBox("Укажите ИСТИНА или ЛОЖЬ:", "Запрос данных", "", Type:=4)
    'запрос диапазона - Type:=8
    'возвращает ссылку на диапазон
    'При получении такого значения обязательно следует использовать оператор Set
    'В противном случае вернет значение массива(Array), содержащего значения указанных ячеек
    'при указании через Set и нажатии Отмена будет ошибка VBA
    Set vRetVal = Application.InputBox("Укажите диапазон для очистки ячеек:", "Запрос данных", "", Type:=8)
    'запрос значения ошибки #Н/Д - Type:=16
    'всегда возвращает значение ошибки #Н/Д независимо от введенного значения
    vRetVal = Application.InputBox("Укажите диапазон для очистки ячеек:", "Запрос данных", "", Type:=16)
    'запрос диапазона ячеек для создания массива - Type:=64
    'возвращает массив ячеек с границами начала от 1(Option Base 1)
    'если указать всего одну ячейку vRetVal будет содержать значение этой ячейки, а не массив
    vRetVal = Application.InputBox("Укажите диапазон для создания массива:", "Запрос данных", "", Type:=64)

Конечно, чаще всего используют Type:=8, т.к. это избавляет от необходимости рисования своих форм и прочих заморочек для запроса указания диапазона от пользователя. Еще раз обращаю внимание, что для Type:=8 необходим ключевой оператор присвоения Set, т.к. в результате необходимо получить именно диапазон(т.е. объект). Ниже приведена процедура, которая запрашивает диапазон для очистки и корректно обрабатывает ситуацию при нажатии кнопки Отмена(т.е. не показывает никаких ошибок пользователю, а просто не выполняется). Стандартно при нажатии Отмена процедура завершается с ошибкой VBA вида Type Mismatch, что не очень грамотно с точки зрения взаимодействия с пользователем — он не должен видеть внутренние ошибки:

'---------------------------------------------------------------------------------------
' Procedure : ClearCells
' DateTime  : 19.10.2014 22:53
' Author    : The_Prist(Щербаков Дмитрий)
'             WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
'             http://www.excel-vba.ru
' Purpose   :
'             Запрашиваем диапазон ячеек для очистки.
'             По умолчанию заносится диапазон выделенных на момент запуска ячеек
'---------------------------------------------------------------------------------------
Sub ClearCells()
    Dim vRetVal 'для получения выбранного значения
 
    On Error Resume Next
    Set vRetVal = Application.InputBox("Укажите диапазон для очистки ячеек:", "Запрос данных", Selection.Address, Type:=8)
    If vRetVal Is Nothing Then 'нажата кнопка Отмена - диапазон не выбран
        MsgBox "Отмена выполнения", vbCritical, "Нет данных"
        Exit Sub 'завершаем процедуру, т.к. ячейки не выбраны
    End If
    'диапазон выбран - очищаем ячейки
    vRetVal.Clear
End Sub

Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Содержание

  • Процесс совместной работы
    • Предоставление совместного доступа
    • Настройка параметров
    • Открытие общего файла
    • Просмотр действий участников
    • Рецензирование действий пользователей
    • Удаление пользователя
    • Ограничения по использованию общей книги
    • Отключение общего доступа
  • Вопросы и ответы

Совместная работа в Microsoft Excel

При разработке крупных проектов зачастую не хватает сил одного сотрудника. К такой работе привлекается целая группа специалистов. Естественно, что у каждого из них должен быть доступ к документу, который является объектом совместного труда. В связи с этим очень актуальным становится вопрос обеспечения одновременного коллективного доступа. Программа Excel имеет в своем распоряжении инструменты, которые могут его предоставить. Давайте разберемся в нюансах работы приложения Эксель в условиях одновременной работы нескольких пользователей с одной книгой.

Процесс совместной работы

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

Предоставление совместного доступа

Но начнем мы все же с выяснения вопроса, как предоставить общий доступ к файлу. Прежде всего, нужно сказать, что процедура включения режима совместной работы с книгой не может быть проведена на сервере, а только на локальном компьютере. Поэтому, если документ хранится на сервере, то, прежде всего, его нужно перенести на свой локальный ПК и там уже производить все нижеописанные действия.

  1. После того, как книга создана, переходим во вкладку «Рецензирование» и жмем на кнопку «Доступ к книге», которая размещена в блоке инструментов «Изменения».
  2. Переход к окну доступа к книге в Microsoft Excel

  3. Затем активируется окно управления доступом к файлу. В нём следует установить галочку около параметра «Разрешить изменять книгу нескольким пользователям одновременно». Далее жмем на кнопку «OK» в нижней части окна.
  4. Окно управление доступа к книге в Microsoft Excel

  5. Появляется диалоговое окно, в котором предлагается сохранить файл с внесенными в него изменениями. Щелкаем по кнопке «OK».

Сохранение файла в Microsoft Excel

После указанных выше действий совместный доступ к файлу с разных устройств и под различными учетными записями пользователей будет открыт. На это указывает то, что в верхней части окна после названия книги отображается наименование режима доступа – «Общий». Теперь файл снова можно переносить на сервер.

Обозначение общего файла в Microsoft Excel

Настройка параметров

Кроме того, все в том же окне доступа к файлу можно настроить параметры одновременной работы. Это можно сделать сразу же во время включения режима совместной работы, а можно отредактировать параметры чуть позже. Но, естественно ими управлять может только главный пользователь, который координирует общую работу с файлом.

  1. Переходим во вкладку «Подробнее».
  2. Переход во вкладку Подробнее в Microsoft Excel

  3. Тут можно указать, хранить ли журналы изменений, и если хранить, то какое время (по умолчанию включено 30 дней).

    Также тут определяется, как обновлять изменения: только при сохранении книги (по умолчанию) или через заданный промежуток времени.

    Очень важным параметром является пункт «Для противоречивых изменений». В нем указывается, как программа должна вести себя, если несколько пользователей одновременно редактируют одну и ту же ячейку. По умолчанию выставлено условие постоянного запроса, действия кого из участников проекта имеют преимущества. Но можно включить постоянное условие, при котором преимущество будет всегда у того, кто успел первым сохранить изменение.

    Кроме того, при желании можно отключить из личного представления параметры печати и фильтры, сняв галочки около соответствующих пунктов.

    После этого не забываем выполнить фиксацию внесенных изменений, нажав на кнопку «OK».

Настройка общего доступа в Microsoft Excel

Lumpics.ru

Открытие общего файла

Открытие файла, в котором включен совместный доступ, имеет некоторые особенности.

  1. Запускаем Эксель и переходим во вкладку «Файл». Далее жмем на кнопку «Открыть».
  2. Переход к открытию файла в Microsoft Excel

  3. Запускается окно открытия книги. Переходим в директорию сервера или жесткого диска ПК, где расположена книга. Выделяем её наименование и жмем на кнопку «Открыть».
  4. Открытие файла в Microsoft Excel

  5. Открывается общая книга. Теперь при желании мы сможем изменить имя, под которым будем представлены в журнале изменения файла. Переходим во вкладку «Файл». Далее перемещаемся в раздел «Параметры».
  6. Переход в Параметры в Microsoft Excel

  7. В разделе «Общие» имеется блок настроек «Личная настройка Microsoft Office». Тут в поле «Имя пользователя» можно поменять наименование своей учетной записи на любую другую. После того, как все настройки выполнены, жмем на кнопку «OK».

Параметры в Microsoft Excel

Теперь можно приступать к работе с документом.

Просмотр действий участников

Совместная работа предусматривает постоянный контроль и координацию действий всех участников группы.

  1. Чтобы посмотреть действия, совершенные конкретным пользователем во время работы над книгой, находясь во вкладке «Рецензирование» кликаем по кнопке «Исправления», которая находится в группе инструментов «Изменения» на ленте. В открывшемся меню кликаем по кнопке «Выделить исправления».
  2. Переход в окно выделения исправления в Microsoft Excel

  3. Открывается окно просмотра исправлений. По умолчанию после того, как книга становится общей, автоматически включается отслеживание исправлений, о чем свидетельствует галочка, установленная напротив соответствующего пункта.

    Фиксируются все изменения, но на экране по умолчанию они отображаются в виде цветовых пометок ячеек в их левом верхнем углу, только со времени последнего сохранения документа одним из пользователей. Причем учитываются исправления всех пользователей на всем диапазоне листа. Действия каждого участника помечаются отдельным цветом.

    Настройка изображения исправлений по умолчанию в Microsoft Excel

    Если навести курсор на помеченную ячейку, откроется примечание, в котором указано, кем и когда было выполнено соответствующее действие.

  4. Новое отображение исправлений в Microsoft Excel

  5. Для того, чтобы изменить правила отображения исправлений, возвращаемся в окно настройки. В поле «По времени» доступны следующие варианты выбора периода просмотра исправлений:
    • отображение со времени последнего сохранения;
    • вся хранящиеся в базе исправления;
    • те, которые ещё не просмотрены;
    • начиная с конкретной указанной даты.

    Отображения вариантов выбора в поле По времени в окне исправлений в Microsoft Excel

    В поле «Пользователем» можно выбрать конкретного участника, исправления которого будут отображаться, или оставить отображение действий всех пользователей, кроме себя.

    Выбор пользователей в Microsoft Excel

    В поле «В диапазоне», можно указать конкретный диапазон на листе, на котором будут учитываться действия членов команды для отображения на вашем экране.

    Кроме того, установив галочки около отдельных пунктов можно включить или отключить выделение исправлений на экране и отображение изменений на отдельном листе. После того, как все настройки установлены, жмем на кнопку «OK».

  6. Изменение настроек в окне исправления в Microsoft Excel

  7. После этого на листе действия участников будут отображаться с учетом введенных настроек.

Рецензирование действий пользователей

Главный пользователь имеет возможность применять или отклонять правки других участников. Для этого требуется совершить следующие действия.

  1. Находясь во вкладке «Рецензирование», щелкаем по кнопке «Исправления». Выбираем пункт «Принять/отклонить исправления».
  2. Переход к рецензированию исправлений в Microsoft Excel

  3. Далее открывается окно просмотра исправлений. В нем нужно произвести настройки отбора тех изменений, которые мы хотим утвердить или отклонить. Операции в данном окне выполняются по тому же типу, который мы рассматривали в предыдущем разделе. После того, как настройки внесены, жмем на кнопку «OK».
  4. Просмотр испралений в Microsoft Excel

  5. В следующем окне отображаются все исправления, которые удовлетворяют выбранным нами ранее параметрам. Выделив конкретное исправление в списке действий, и нажав соответствующую кнопку, расположенную внизу окна под перечнем, можно принять данный пункт или отказаться от него. Также существует возможность группового принятия или отказа от всех указанных операций.

Принятие или отказ испралений в Microsoft Excel

Удаление пользователя

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

  1. Переходим во вкладку «Рецензирование». В блоке «Изменения» на ленте жмем на кнопку «Доступ к книге».
  2. Переход к удалению пользователя в Microsoft Excel

  3. Открывается уже знакомое нам окно управления доступа к файлу. Во вкладке «Правка» находится список всех пользователей, которые работают с этой книгой. Выделяем имя того, кого нужно убрать, и жмем на кнопку «Удалить».
  4. Удаление пользователя в Microsoft Excel

  5. После этого открывается диалоговое окно, в котором предупреждается, что если данный участник в этот момент редактирует книгу, то все его действия не будут сохранены. Если вы уверены в своем решении, то жмите кнопку «OK».

Подтверждение удаление пользвателя в Microsoft Excel

Пользователь будет удален.

Ограничения по использованию общей книги

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

  • Создавать или изменять сценарии;
  • Создавать таблицы;
  • Разделять или объединять ячейки;
  • Манипулировать с XML-данными;
  • Создавать новые таблицы;
  • Удалять листы;
  • Производить условное форматирование и ряд других действий.

Как видим, ограничения довольно существенны. Если, например, без работы с XML-данными зачастую можно обойтись, то без создания таблиц работа в Экселе вообще не мыслится. Что же делать в том случае, если нужно создать новую таблицу, объединить ячейки или выполнить любое другое действие из вышеуказанного перечня? Выход есть, и он довольно простой: нужно временно отключить общий доступ к документу, выполнить нужные изменения, а затем подключить возможность совместной работы снова.

Отключение общего доступа

Когда работа над проектом закончена, или, в случае необходимости внесения изменений в файл, о списке которых мы говорили в предыдущем разделе, следует отключить режим совместной работы.

  1. Прежде всего, все участники должны сохранить вносимые изменения и выйти из файла. С документом остается работать только главный пользователь.
  2. Если нужно сохранить журнал операций после снятия общего доступа, то, находясь во вкладке «Рецензирование», кликаем по кнопке «Исправления» на ленте. В открывшемся меню выбираем пункт «Выделить исправления…».
  3. Переход в окно выделения исправлений в Microsoft Excel

  4. Открывается окно выделения исправлений. Настройки тут нужно расставить следующим образом. В поле «Во времени» установить параметр «Все». Напротив наименований полей «Пользователем» и «В диапазоне» следует снять галочки. Аналогичную процедуру нужно провести и с параметром «Выделять исправления на экране». А вот напротив параметра «Вносить изменения на отдельный лист», наоборот, галочку следует установить. После того, как все вышеуказанные манипуляции выполнены, жмем на кнопку «OK».
  5. Включение режима внесения исправлений на отдельном листе в Microsoft Excel

  6. После этого программа сформирует новый лист под названием «Журнал», в который будет внесена вся информация по редактированию данного файла в виде таблицы.
  7. Исправления вынесены на отдельный лист в Microsoft Excel

  8. Теперь остается непосредственно отключить общий доступ. Для этого, расположившись во вкладке «Рецензирование», кликаем по уже знакомой нам кнопке «Доступ к книге».
  9. Переход к отключению общего доступа в Microsoft Excel

  10. Запускается окно управления общим доступом. Переходим во вкладку «Правка», если окно было запущено в другой вкладке. Снимаем галочку около пункта «Разрешить изменять файл нескольким пользователям одновременно». Для закрепления внесенных изменений жмем на кнопку «OK».
  11. Отключение общего доступа в Microsoft Excel

  12. Открывается диалоговое окно, в котором предупреждается, что выполнение данного действия сделает невозможным совместное использование документа. Если вы твердо уверены в принятом решении, то кликните по кнопке «Да».

Диалоговое окно при закрытии общего доступа в Microsoft Excel

После вышеуказанных действий общий доступ к файлу будет закрыт, а журнал исправлений будет очищен. Информацию о ранее произведенных операциях теперь можно будет увидеть в виде таблицы только на листе «Журнал», если соответствующие действия по сохранению данной информации были проведены ранее.

Как видим, программа Эксель предоставляет возможность включения общего доступа к файлу и одновременной работы с ним. Кроме этого, с помощью специальных инструментов можно отслеживать действия отдельных участников рабочей группы. Данный режим имеет все-таки некоторые функциональные ограничения, которые, впрочем, можно обойти, временно отключив общий доступ и проведя необходимые операции в обычных условиях работы.

Не секрет, что Excel довольно мощный инструмент для работы с числовыми табличными данными. Однако средства, которые предоставляет Microsoft для интеграции с ним, далеки от идеала. В частности, сложно интегрировать в Excel современные пользовательские интерфейсы. Нам нужно было дать пользователям Excel возможность работать с довольно насыщенным и функциональным интерфейсом. Мы пошли несколько другим путем, который в итоге показал хороший результат. В этой статье я расскажу, как можно организовать интерактивное взаимодействие Excel c веб-приложением на Angular и расшить Excel практически любым функционалом, который реализуем в современном веб-приложении.

Итак, меня зовут Михаил и я CTO в Exerica. Одна из проблем которые мы решаем — облегчение работы финансовых аналитиков с числовыми данными. Обычно они работают как с исходными документами финансовой и статистической отчетности, так и каким-либо инструментом для создания и поддержания аналитических моделей. Так сложилось, что 99% аналитиков работают в Microsoft Excel и делают там довольно сложные вещи. Поэтому перевести их с Excel на другие решения не эффективно и практически невозможно. Объективно, «облачные» сервисы электронных таблиц до функционала Excel пока не дотягивают. Но в современном мире инструменты должны быть удобны и соответствовать ожиданиям пользователей: открываться по клику мышки, иметь удобный поиск. А реализация в виде разных несвязанных приложений будет довольно далека от ожиданий пользователя.

То с чем работает аналитик выглядит примерно так:

Основные данные тут — это числовые «финансовые показатели», например, доход за 1 квартал 2020 года. Для простоты буду называть их дальше просто «числами». Как видно, почти никакой связи между числами в документе и в аналитической модели нет, все только в голове у аналитика. И работа с заполнением и поддержанием модели занимает часы поиска и перебивания чисел из документа в таблицы, а потом поиск ошибок ввода. Вместе этого мы хотели бы предложить пользователю привычные инструменты: «перетаскивание», вставка через клипборд и так далее, а также быстрый просмотр исходных данных.

Что у нас уже было

К моменту, когда мы начали реализацию интерактивного взаимодействия с Excel в виде, изложенном в этой статье, у нас уже была база данных на MongoDB, бэкэнд в виде REST API на .NET Core, фронтовое SPA на Angular и некоторые другие сервисы. Мы к этому моменту уже пробовали разные варианты интеграции в приложения электронных таблиц, в том числе и в Excel, и все они не пошли дальше MVP, но это тема отдельной статьи.

Связываем данные

В Excel существует два распространенных инструмента, с помощью которых можно решить задачу связывания данных в таблице с данными в системе: RTD (RealTimeData) и UDF (User-Defined Functions). Чистый RTD менее удобен для пользователя в плане синтаксиса и ограничивает гибкость решения. С помощью UDF можно создать кастомную функцию, которая будет работать привычным для Excel-пользователя образом. Ее можно использовать в других функциях, она понимает ссылки типа A1 или R1C1 и вообще ведет себя как надо. При этом никто не мешает использовать механизм RTD для обновления значения функции (что мы и сделали). UDF мы разрабатывали в виде Excel addin с использованием привычного нам C# и .NET Framework. Для ускорения разработки мы использовали библиотеку Excel DNA. 

Кроме UDF наш addin реализует ribbon (панель инструментов) с настройками и некоторыми полезными функциями по работе с данными.

Добавляем интерактивность

Для передачи данных в Excel и налаживания интерактива мы разработали отдельный сервис, который предоставляет подключение по Websocket при помощи библиотеки SignalR и фактически является брокером для сообщений о событиях, которыми должны обмениваться «фронтовые» части системы в реальном времени. Он у нас называется Notification Service.

Вставляем данные в Excel

В нашем SPA мы подсвечиваем все числа, которые обнаружила система. Пользователь может выделять их, навигировать по ним и т.п. Для вставки данных мы реализовали 3 механизма, чтобы закрыть различные варианты использования:

  • Перетаскивание (drag-and-drop)
  • Автоматическая вставка по клику в SPA
  • Копирование и вставка через клипборд

Когда пользователь инициирует drag’n’drop некоторого числа из SPA, для перетаскивания формируется ссылка с идентификатором этого числа из нашей системы (.../unifiedId/005F5549CDD04F8000010405FF06009EB57C0D985CD001). При вставке в Excel наш addin перехватывает событие вставки и парсит регэкспом вставляемый текст. При обнаружении валидной ссылки на лету подменяет ее на соответствующую формулу =ExrcP(...).

При клике на числе в SPA через Notification Service отправляется сообщение в addin, содержащее все необходимые данные для вставки формулы. Далее формула просто вставляется в текущую выделенную ячейку.

Эти способы хороши, когда пользователю нужно вставлять в свою модель по одному числу, но если надо перенести целую таблицу или ее часть, необходим другой механизм. Наиболее привычным для пользователей представляется копирование через клипборд. Однако этот способ оказался сложнее первых двух. Дело в том, что для удобства вставляемые данные должны быть представлены в нативном для Excel формате — OpenXML Spreadsheet. Наиболее просто это реализуется используя объектную модель Excel, то есть из addin’а. Поэтому процесс формирования клипборда у нас выглядит так:

  • Пользователь выделяет область с числами в SPA
  • Массив выделенных чисел передается на Notification Service
  • Notification Service передает его в addin
  • Addin формирует OpenXML и вставляет его в клипборд
  • Пользователь может вставить данные из клипборда в любое место любой Excel-таблицы.

Несмотря на то, что данные проделывают довольно долгий путь, благодаря SignalR и RTD происходит это довольно быстро и абстрагированно от пользователя. 

Распространяем данные

После того, как пользователь выбрал начальные данные для своей модели, их надо «распространить» все периоды (года, полугодия и кварталы), которые представляют интерес. Для этих целей одним из параметров нашей UDF является дата (период) данного числа (вспоминаем: «доход за 1 квартал 2020 года»). В Excel существует нативный механизм «распространения» формул, который позволяет заполнить ячейки той же формулой с учетом ссылок, заданных в параметрах. То есть вместо конкретной даты в формулу вставлена ссылка на нее, а далее пользователь «распространяет» ее на другие периоды, при этом в таблицу автоматически загружаются «те же» числа из других периодов. 

А что это там за число?

Теперь у пользователя есть модель на несколько сотен строк и несколько десятков столбцов. И у него может возникнуть вопрос, что же там за число в ячейке L123? Чтобы получить ответ, у нас ему достаточно кликнуть на эту ячейку и в нашем SPA откроется тот самый отчет, на той самой странице, где записано кликнутое число, а число в отчете будет выделено. Вот так:

А если это не просто одно число из отчета, а результат некоторых вычислений на числах, взятых из отчета, то мы подсветим все числа, входящие в вычисляемое в Excel выражение. При этом не происходит загрузки всего приложения и подгрузки всех необходимых данных, как в случае перехода по ссылке.

В качестве заключения

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

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

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

Кто это может сделать? Человек, имеющий статус главного пользователя. Одним словом, что нужно сделать для того, чтобы совместная работа с документом стала не просто возможной, но и эффективной?

Содержание

  1. Особенности работы с общим файлом Excel
  2. Как сделать совместный доступ к файлу Excel
  3. Настройка параметров
  4. Открытие общего файла
  5. Как открыть книгу Excel с совместным доступом
  6. Как посмотреть действия участников
  7. Как удалить пользователя из файла Excel
  8. Как ограничить использование общей книги

Особенности работы с общим файлом Excel

Работа с общим файлом в Excel имеет свои особенности. Так, некоторые действия недоступны для пользователей:

  1. Создание таблиц.
  2. Управление сценариями, включая их просматривание.
  3. Удаление листов.
  4. Пользователи не имеют возможности соединять несколько ячеек или наоборот, разбивать ранее объединенные. 
  5. Любые операции с XML данными.

Как можно обойти эти ограничения? Необходимо просто снять общий доступ, а потом его вернуть, когда появится такая необходимость.

Вот еще таблица с некоторыми задачами, которые возможно или невозможно выполнить, если вы работаете вместе с несколькими людьми над одной таблицей.

Как сделать совместный доступ к файлу Excel

Сначала нужно понять, какой файл необходимо сделать доступным для редактирования сразу несколькими людьми. Это может быть как новый файл, так и уже существующий. 

Настройка параметров

Все необходимые для создания совместного доступа к файлу в Excel действия находятся в разделе «Доступ к книге», который можно отыскать, перейдя на вкладку «Рецензирование».

Как открыть совместный доступ к Excel-файлу одновременно

1

Всплывет окно, в котором есть две вкладки. Нас интересует первая, которая открывается автоматически. Нам нужно поставить флажок возле пункта, отмеченного на скриншоте красным прямоугольником. С его помощью мы даем возможность нескольким пользователям управлять документом.

Как открыть совместный доступ к Excel-файлу одновременно

2

После того, как мы открыли доступ для редактирования, нам нужно его настроить. Для этого открываем вторую вкладку.

Как открыть совместный доступ к Excel-файлу одновременно

3

После внесения параметров подтверждаем свои действия. Для этого делаем левый клик по клавише «ОК». Совместный доступ может быть открытым для любой книги как новой, так и уже существующей. В первом случае нужно будет придумать имя для нее. 

После этого нужно сохранить файл на компьютере.

Важно! Формат должен быть таким, чтобы файл мог открыть каждый пользователь со своей версии электронных таблиц.

Открытие общего файла

Сохранить файл нужно на сетевом ресурсе или папке, к которой имеют доступ участники, которым нужно использовать этот файл. После того, как будет выбрана директория, нам осталось только нажать кнопку «Сохранить».

При этом недопустимо использование веб-сервера, чтобы сохранить общий файл. 

После выполнения всех описанных выше операций нужно проверить, получается ли подключать других людей. Для этого необходимо открыть вкладку «Данные» и там непосредственно под ней найти пункт «Подключения». Если на него нажать, появляется возможность изменить ссылки или связи. Если соответствующей кнопки нет, то нет связанных файлов.

Как открыть совместный доступ к Excel-файлу одновременно

4

Далее открывается вкладка «Состояние», с помощью которой возможно проверить связи. О том, что все хорошо, можно узнать по наличию кнопки «ОК».

Как открыть книгу Excel с совместным доступом

Excel позволяет также открыть книгу с совместным доступом. Чтобы это сделать, нужно нажать на кнопку Office. Когда появится всплывающая панель, нам необходимо выбрать пункт «Открыть» и выбрать ту книгу, которая будет использоваться для общего доступа. После этого опять нажимаем на кнопку Office, и открываем окно «Параметры Excel», которую можно найти внизу.

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

Как открыть совместный доступ к Excel-файлу одновременно

5

Далее переходим в пункт «Личная настройка», где нужно указать данные, позволяющие отфильтровать пользователей – имя пользователя, никнейм.

После выполнения этих операций появляется возможность отредактировать информацию в документе или же добавлять какие-то данные. Не забудьте сохранить изменения после их внесения.

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

  1. Если в одной и той же ячейке вносят данные сразу несколько участников. Или любую другую часть.
  2. Формирование журнала изменений, из-за которого книга увеличивается в размере. Это приводит к неполадкам.
  3. Пользователь был удален из совместного доступа. В таком случае сохранить изменения не получится только на его компьютере. 
  4. Сетевой ресурс перегружен.

Чтобы исправить проблему, нужно предпринять следующие действия:

  1. Удалить журнал изменений или стереть с него лишнюю информацию. 
  2. Убрать лишнюю информацию внутри самого документа.
  3. Перезапустить совместный доступ. 
  4. Открыть документ Excel в другом офисном редакторе, а потом снова сохранить его в формате xls.

Правда, в последних версиях эта ошибка случается не так часто, как в старых.

Как посмотреть действия участников

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

  1. Перейти на вкладку «Рецензирование», и там найти пункт «Исправления». В меню осуществляем выбор пункта «Выделить исправления».
    Как открыть совместный доступ к Excel-файлу одновременно
    6
  2. Далее появится окно, в котором можно узнать, какие изменения были внесены пользователями. Этот список формируется автоматически. В том, что это действительно так, можно убедиться, посмотрев, стоит ли галочка возле соответствующего пункта этого диалогового окна.
    Как открыть совместный доступ к Excel-файлу одновременно
    7

     При этом в перечне в левом верхнем углу будут отображаться только те изменения, которые были осуществлены с момента последнего сохранения. Так сделано для удобства, всегда можно посмотреть более ранние правки в журнале.

  3. Каждому участнику приписывается определенный цвет, по которому можно понять, кто внес изменения. Метки находятся в левом верхнем углу. Также можно настроить отслеживание изменений по времени, конкретному пользователю или в определенном диапазоне, а также отключить их выведение на экран.
    Как открыть совместный доступ к Excel-файлу одновременно
    8
  4. При наведении мыши на ячейку, на которой стоит такая отметка, появляется небольшой блок, из которого можно понять, кем были внесены изменения.
    Как открыть совместный доступ к Excel-файлу одновременно
    9
  5. Для внесения коррективов в правила отображения исправлений нужно вернуться в окно с настройками, после чего найти поле «По времени», где можно выставить точку отсчета для просмотра изменений. То есть, времени, с которого исправления будут отображаться. Можно установить период с момента последнего сохранения, настроить отображение всех исправлений за все время, исключительно не просмотренных или указать дату, с которой они будут отображаться.
    Как открыть совместный доступ к Excel-файлу одновременно
    10
  6. Также можно регулировать отображение исправлений, внесенных лишь конкретным участником.
    Как открыть совместный доступ к Excel-файлу одновременно
    11
  7. С помощью соответствующего поля можно настроить диапазон листа, в котором будет вестись журнал действий команды.

Также можно вносить и другие изменения, выставив соответствующие галочки в нужных местах.

Как открыть совместный доступ к Excel-файлу одновременно

12

Список изменений не лежит мертвым грузом. Главный пользователь может рецензировать правки других участников, подтверждая или отклоняя их. Как это сделать?

  1. Перейти на вкладку «Рецензирование». Там находится меню «Исправления», где пользователь может управлять исправлениями. Во всплывающей панели нужно выбрать опцию «Принять/отклонить исправления», после чего будет показано окно, в котором отображаются исправления.
    Как открыть совместный доступ к Excel-файлу одновременно
    13
    Как открыть совместный доступ к Excel-файлу одновременно
    14
  2. Отбор правок может осуществляться по тем же критериям, что были описаны ранее: по времени, конкретному пользователю или в определенном диапазоне. После установки необходимых параметров нажимается клавиша ОК.
  3. Далее отобразятся все коррективы, которые соответствуют условиям, выставленным на предыдущем этапе. Можно согласиться с конкретной правкой или отклонить ее, нажав на соответствующую кнопку в нижней части окна. Также возможно пакетное принятие коррективов или их отклонение.
    Как открыть совместный доступ к Excel-файлу одновременно
    15

Теперь нужные коррективы были оставлены, а лишние – удалены.

Как удалить пользователя из файла Excel

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

Сначала открываем вкладку «Рецензирование». Там находится группа «Изменения», где есть опция «Доступ к книге».

Как открыть совместный доступ к Excel-файлу одновременно

16

После этого на экране появится то же самое окно, которое мы видели ранее. С перечнем всех людей, которые могут вносить изменения в таблицу, можно ознакомиться на вкладке «Правка». Чтобы убрать пользователя, который нам не нужен в данный момент, нужно найти его в этом списке, выделить путем нажатия левой кнопки мыши и нажать на кнопку «Удалить», которая находится ниже.

Как открыть совместный доступ к Excel-файлу одновременно

17

Далее Эксель предупредит пользователя, что коррективы, внесенные этим участником, могут не быть сохранены, если в данный момент он вносит в книгу изменения. Если вы согласны, то нажимайте «ОК», и пользователя теперь в совместном использовании не будет.

Как открыть совместный доступ к Excel-файлу одновременно

18

Как ограничить использование общей книги

Самый лучший способ ограничить использование общей книги – это удалить пользователя. Если это не подходит, можно выставлять право на просмотр или редактирование книги конкретным участником.

При этом важно помнить, что некоторые ограничения встроены в совместное использование по умолчанию. Они были описаны выше. Давайте их вспомним, поскольку повторение – мать учения.

  1. Запрещено создание умных таблиц, которые автоматически обновляют данные и имеют множество других возможностей.
  2. Нельзя управлять сценариями. 
  3. Есть встроенное ограничение на удаление листов, соединение или разъединение ячеек.
  4. Выполнение всех операций с XML-данными. Простыми словами, есть ограничения на структурирование большого количества данных, в том числе, и редактирования их массивов. XML – это один из самых непонятных типов файлов для начинающих пользователей, но на самом деле, это все просто. С помощью файлов этого типа можно передавать данные, внося пакетные изменения в документ. 

Проще говоря, совместное редактирование дает возможность осуществлять стандартные операции с документом, но более профессиональные опции доступны лишь для одного человека. Это объясняется тем, что те же макросы или пакетные изменения с помощью XML несколько сложнее откатить. 

Отключение совместного доступа с последующим его включением – это еще один способ ограничения действий пользователей Excel. Можно внести нужные изменения самостоятельно, тем самым на время лишив других людей возможности что-то править.

Чтобы сделать это, необходимо выполнить следующие действия.

  1. Открыть вкладку «Рецензирование», перейти на пункт «Исправления» и во всплывающем меню выбрать пункт «Выделить исправления».
  2. После этого появляется окошко, в котором нужно снять отметки возле пунктов «Пользователем» и «В диапазоне».
  3. После этого появляется журнал изменений, который необходим для бекапа данных.

После этого можно отключать совместный доступ. Для этого на той же вкладке на ленте нужно выбрать пункт «Доступ к книге» и снять отметку «Разрешить изменять файл нескольким пользователям».

Все, теперь совместный доступ отключен.

Таким образом, в Excel настроить совместное редактирование довольно легко. Конечно, есть некоторые ограничения, которые не дают использовать документ в полной мере. Но решаются они довольно просто, достаточно на время отключить совместный доступ, а потом его включить, когда нужные правки были внесены.

Оцените качество статьи. Нам важно ваше мнение:

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

Использование

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

  1. На панели инструментов перейдите на вкладку «Рецензирование» и нажмите кнопку «Доступ к книге» в разделе «Редактирование.

Совместное использование файлов Excel 1

  1. Откроется диалоговое окно со списком людей, использующих документ. Установите флажок рядом с разрешением на редактирование файла и нажмите ОК.

Общий доступ к файлам Excel 2

  1. На вкладке «Подробности» вы можете настроить срок хранения журнала изменений, частоту обновления файлов и приоритет изменений.

Совместное использование файлов Excel 3

Если файл только что был создан, программа предложит сохранить документ. Убедитесь, что вы сохраняете в сетевую папку, чтобы не было проблем с доступом других людей.

Совместное использование файлов Excel 4

Затем в названии книги должно появиться слово «Общие», указывающее на возможность сотрудничества.

Совместное использование файлов Excel 5

Чтобы просмотреть список изменений, вам нужно выделить исправления с помощью отдельной функции.

Совместное использование файлов Excel 6

В открывшемся окне настройте параметры просмотра изменений.

Совместное использование файлов Excel 7

После нажатия кнопки ОК все исправления будут помещены на отдельный лист с пометками, кем и когда было внесено добавление. Это называется журналом изменений, который можно сохранить отдельно на компьютере или распечатать.

Ограничения

К сожалению, когда над книгой работают несколько человек, существует ряд ограничений на редактирование и форматирование информации:

  1. Невозможно вставлять диаграммы, изображения, сводные таблицы и другие объекты.
  2. Редактирование макросов запрещено.
  3. Группировка данных по столбцам и строкам ограничена.
  4. Невозможно изменить формулы в исходном файле.
  5. также запрещено удалять листы книги.

Если вам нужно сделать что-либо из этого, вам нужно попросить администратора отключить общий доступ, изменить и снова включить режим совместной работы.

Бывает, что при открытии книги Excel программа выдает ошибку «Файл заблокирован». Это может быть связано со следующими проблемами:

  1. Большая нагрузка на локальную сеть
  2. Два разных пользователя добавляют информацию в одну и ту же ячейку — возникает программный конфликт.
  3. Оперативная память перегружена из-за большого размера документа, и компьютер не справляется с нагрузкой.
  4. Пользователь был в одностороннем порядке удален из списка.

Чтобы отключить общий доступ, просто снимите флажок рядом с разрешением на редактирование файла в настройках совместной работы. В этом случае в списке пользователей должен остаться один человек — администратор.

Совместное использование файлов Excel 8

Облачные хранилища

документы также можно редактировать совместно через Интернет. Для этого администратору необходимо сохранить документ в облаке и предоставить ссылку. Давайте посмотрим на самые популярные примеры совместного использования облачных хранилищ:

  1. На Яндекс диске нажмите на скачанный файл и вверху нажмите Поделиться.

Совместное использование файлов Excel 9

После этого будет удален список возможных представлений в соцсети и отдельная ссылка для копирования. При этом к значку документа добавляется специальный символ в виде цепочки ссылок, обозначающий общий доступ.

Совместное использование файлов Excel 10

  1. На диске Google щелкните документ правой кнопкой мыши и выберите строку «Открытый доступ» из раскрывающегося списка.

Совместное использование файлов Excel 11

В появившемся окне вы можете скопировать ссылку и ввести имена контактов или адреса электронной почты, чтобы поделиться файлом. Наконец, убедитесь, что вы нажали кнопку «Готово.

Совместное использование файлов Excel 12

Как видите, совместная работа над одним файлом в Excel несложна. Механизм авторизации для версий 2007, 2010, 2013 и 2016 одинаков. Кроме того, есть возможность редактировать документы через облачное хранилище, что позволяет редактировать документ из любой точки мира через Интернет.

Понравилась статья? Поделить с друзьями:
  • Вещественный формат в excel
  • Вещественная к в word
  • Вечный производственный календарь в excel
  • Вечные календари в excel
  • Вехи на диаграмме ганта в excel