Обновляемый многопользовательский макрос
Время на прочтение
8 мин
Количество просмотров 13K
Я не умею программировать, но очень люблю!
Немного измененная цитата художника Васи Ложкина.
Статьей хочу поделиться опытом поднятия многопользовательской системы на VBA Excel.
На момент принятия решения о создании гибкого приложения, было порядка 7 макросов, работающих по большим объемам (несколько файлов от 20 тыс. строк до 370 тыс. строк), весящих от 50 килобайт до 12 мегабайт, каждый из которых был написан в соответствии со знаниями существующими на момент написания. Каждый макрос изменялся, дописывался, исправлялся в части ошибок, а учитывая, что этими макросами пользовались более 60 человек, не все из которых отслеживали изменения, постоянно дергали меня показывая очередную ошибку, которую я уже исправил и выслал на всех. Объяснять толпе народу как правильно пользоваться макросами, я бросил сразу, так как кто то не услышит, кто то не поймет о чем речь, кто-то возьмет уже отформатированную таблицу в работу с макросами, а я не могу предугадать кто и как изменяет таблицы.
Необходимо было сделать один код, а не 60 копий каждого изменения, высланного по почте.
Решение быстро пришло в голову, а гугл быстро выдал мне результаты по программному изменению кода VBA, которая в последствии была откатана на практике. Итак, текст без картинок не интересен, вот первая, это структура приложения, которая выглядет так:
Пользователь открывая файл, активируя событие excel «открытие книги» выполняет процедуру, находящуюся в файле «клиенте». Процедура формирует меню, читая файлы на сети. Нажимая на кнопку нужного макроса, выполняется действие по созданию модуля в клиенте, из файла находящегося на сети, выполняет действия и уничтожает процедуру внутри себя.
Что мы получаем:
— файл для любого макроса всегда один.
— нажимая на выполнение какого либо макроса, пользователь будет всегда пользоваться самым последним кодом, что упрощает поддержку макросов.
— возможность писать лог файл по ошибкам, с указанием пользователя, на случай необходимости избить того кто все испортил.
Далее будет много копипаста по коду, измененного под мои задачи, я бы с удовольствием указал авторов, но честно не знаю, много кода брал с буржуйских ресурсов, что то с российских, что то придумано мною, все это копилось в течении полугода минимум, так что заранее большое сорри перед первоисточниками, если чего, пишите, удалю.
Итак, практическая часть.
Вешаем событие на открытие книги:
Private Sub Workbook_Open()
create_module_for_file
End Sub
Код не хитрый, концепция одна, дать пинок для дальнейших действий
Процедура create_module_for_file:
filemod = OpenFileModule("menu")
cl_d.create_module ("menu")
cl_d.write_sub_for_module_action filemod, "menu"
filemod = OpenFileModule("list_action")
cl_d.create_module ("list_action")
cl_d.write_sub_for_module_action filemod, "list_action"
Три строки три действия, в начале нам необходимо подобрать файл с модулем. За это отвечает следующая функция:
Function OpenFileModule(namemodule)
Set FSO = CreateObject("Scripting.FileSystemObject")
filepath = "-//путь к файлу//-Макрос"
mSearch = ".txt"
OpenFileModule = FSO.GetFile(filepath & "" & namemodule & mSearch)
End Function
Далее создаем модуль:
Function create_module(name_module)
' создаем новый модуль макроса и подпрограмм
ThisWorkbook.VBProject.VBComponents.Add vbext_ct_StdModule
' определяем индекс созданного модуля
k = ThisWorkbook.VBProject.VBComponents.Count
' даем свое имя модуля
ThisWorkbook.VBProject.VBComponents.Item(k).Name = name_module
End Function
И пишем в модуль код из файла
Function write_sub_for_module_action(filepath, filename)
Open filepath For Input As #1
s = ""
Do Until EOF(1)
Line Input #1, Data
s = s & Data & z & z
Loop
Set vbComp = ThisWorkbook.VBProject.VBComponents(filename)
With vbComp.CodeModule
.InsertLines .CountOfLines + 1, s
End With
Set vbComp = Nothing
Close #1
End Function
Получив файлы, подгружаем меню.
При загрузке формируется меню, которое помещается в надстройки
По коду:
-для начала удалим, на случай если будет обновление:
Application.CommandBars(1).Controls("MTS_K").Delete
- создаем панель
<source lang=«VBScript»>
‘ вычисляем куда положить, позицию, в случае если уже есть открытые надстройки
MenuPos = Application.CommandBars(1).FindControl(ID:=30010).Index + 1
‘ добавляем панель
Set Menu = Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, before:=MenuPos, temporary:=True)
‘ задаем имя для панели
Menu.Caption = "MTS_K"
Панель создали, теперь создаем непосредственно меню, которое будет создавать кнопки непосредственно по каждому файлу с макросами.
‘ создаем кнопку для подменю
Set Menuname = Menu.Controls.Add(Type:=msoControlPopup)
‘ задаем имя для кнопки
Menuname.Caption = "Перевод YES->NO"
После того как меню создано, добавляются кнопки. Меню строилось по принципу файл -> одна кнопка. В свою очередь по одному файлу с макросом может быть несколько процедур, которые необходимо вызывать, вот в под меню их и суем. Данный код создает 3 кнопки:
Set SubItem = MenuItem.Controls.Add(Type:=msoControlButton) ‘ добавляет кнопку
SubItem.Caption = "Картотека к виду" ‘ название, которое будет отображаться в меню
SubItem.FaceId = "801" ‘ здесь указываем айди картинки, для отображения у кнопки
SubItem.OnAction = "action11a" ‘ здесь название вызываемой процедуры
SubItem.Enabled = True ‘ отображаем или нет
Set SubItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubItem.Caption = "Сформировать файлы"
SubItem.FaceId = "1038"
SubItem.OnAction = " action12a"
SubItem.Enabled = True
Set SubItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubItem.Caption = "Сформировать файлы для модернизации"
SubItem.FaceId = "1038"
SubItem.OnAction = " action13a"
SubItem.Enabled = True
Результат примерно вот:
В режиме написания изменил концепцию работы. Задача стояла в использовании последней версии кода при каждом нажатии «выполнить макрос». Учитывая эти обстоятельства, к клиенту будут загружаться определенные файлы, назовем их индексным файлам, то есть постоянно присутствующим после открытия файла модулям, это «menu» и «list action», а непосредственно файлы макросов будут подгружаться по нажатию кнопки. В чем их смысл: файл меню формирует меню
Set MenuItem = PLEXMenu.Controls.Add(Type:=msoControlPopup)
MenuItem.Caption = "Работа по картотеке"
Set SubItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubItem.Caption = "Картотека к виду"
SubItem.FaceId = "801"
SubItem.OnAction = "action11"
SubItem.Enabled = True
В меню мы видим событие, ссылающееся на процедуру «action1…x», которая сидит во втором файле «list_action». Посмотрим на его содержимое
Sub action11()
Set cl_d = New Edit_module
On Error Resume Next
cl_d.delete_modul_full ("action_yes_no")
filemod = OpenFileModule("action_yes_no")
cl_d.create_module ("action_yes_no")
cl_d.write_sub_for_module_action filemod, "action_yes_no"
kart_view
End Sub
Что мы делаем, во-первых нам необходимо удалить модуль для того что бы его заного загрузить и использовать, мало ли код изменен. Далее мы открываем файл, создаем модуль и пишем в него код из файла.
После этих манипуляций нам необходимо вызвать процедуру, выполняющую манипуляции, которые подразумевались нажатием на кнопку выполнения процедуры.
Здесь интересно)
Если мы укажем имя процедуры, которая находится непосредственно в коде выше, у нас процедура action11 ругнется на то что не может найти процедуру «kart_view», и правильно, ведь по факту ее на момент нажатия кнопки исполнения процедуры нет, на этот случай использован лайфхак, создается функция, которая в свою очередь вызывает эту процедуру, код вот:
Sub action11()
Set cl_d = New Edit_module
On Error Resume Next
cl_d.delete_modul_full ("action_yes_no")
filemod = OpenFileModule("action_yes_no")
cl_d.create_module ("action_yes_no")
cl_d.write_sub_for_module_action filemod, "action_yes_no"
action11a
End Sub
Function action11a()
kart_view
End Function
То есть на момент вызова «kart_view» из «action11a», данная процедура уже будет загружена в модуль, vba подвоха не видит.
Получаемый итог: жмем на кнопку, загружается код в модуль, выполняется. В случае повторного выполнения модуль удаляется, грузится заново, выполняется. При закрытии файла книга отчищается от всего, для того что бы не занимать место и спокойно лежать до следующего открытия.
Еще пару слов по обработке больших файлов, думаю будет интересно. Как говорилось, файлы используются большого объема, более 300 тыс.строк, из которых необходимо выбрать, как правило, тыс. 10-30 и работать с ними.
Если бы меня с пол года назад спросили как сделать выборку, я бы не ведая сказал бы цикл с условием. В последствии было перепробовано много способов, опишу каждый, так, для инфо, кроме тех что можно реализовать стандартными функциями excel.
Исходные данные: есть таблица 300 тыс строк, известно 10 тыс значений, которые нам нужны.
1) Вначале я попытался сделать выборку циклом
tab1 = таблица один
tab2 = таблица один
col_tab1 = tab1.Cells(Rows.Count, 1).End(xlUp).Row ‘количество строк первой таблицы (10 тыс)
col_tab2 = tab2.Cells(Rows.Count, 1).End(xlUp).Row ‘количество строк второй таблицы (300 тыс)
for i = 1 to col_tab1
for ii = 1 to col_tab2
if tab1.cells(ii,1) = tab2.cells(i,1) then
действия
exit for
end if
next ii
next i
Что получаем, если не завершать цикл, получается что нам 10000 раз необходимо перебрать 300000 строк для поиска результата. Отрабатыва vba будет примерно 500 строк в секунду, итого
3000000000/500 = 6000000 секунд, (100000 минут или 1666,66 часов или 69 дней или 9 недель или …)
А результат как правило нужен здесь и сейчас, ну или через пару минут максимум, так что сразу нет.
2) Второй используемый мною способ – работа с mysql сервером
Для работы с mysql сервером, который уже был, для другого проекта, был необходим драйвер mysql ODBC, их мне было известно 2, версия 3.51, и версия 5.1 Выбор пал на 3.51, так как второй, по обсуждениям его работы на форумах, не очень хорошо работал с кодировками, а базу хотелось в utf8
Драйвер мне поставили, и первая кочка, на которой я споткнулся – права доступа
То есть нужна учетная запись для подключения из вне, в нашем случае это будет vba-макрос который матерился так:
Покурив мануалы sql, нашел это
CREATE USER '%'@'user' IDENTIFIED BY PASSWORD 'mtspass';
GRANT SELECT ON *.* TO '%'@'user';
То есть, по запросу выше, создается учетная запись для любого пользователя с рут правами.
Естественно рут прав мне никто не дал и проект использующий mysql сервер для хранения данных, был «заморожен» так как в перспективе нужно было писать в базу данные, у меня было только чтение.
Для оценки эффективности: один и тот же макрос используя переборы с помощью циклов работал 59 секунд, с sql удалось сделать все то же самое за 3,5-4 секунды, то есть реально удалось ускориться более чем в 10 раз.
По коду хорошая статья вот здесь: egregors.blogspot.ru/2013/05/mysql-vba-excel-mysql.html
3) Продолжая курить тему sql, начал работу по работе с access.
Код получается адовый, но рабочий.
Set cN = New ADODB.Connection ‘переменная подключения
cN.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=-//путь к файлу//-basebase" & Environ("USERNAME") & ".mdb; Jet OLEDB:Database;" ‘ подключаемя к файлу базы
‘ соберем нужные активы для поиска
for i = 1 to col_tab1
nabor_act = nabor_act & “’,’” & tab1.cells(i,1)
next i
Set RS = New ADODB.Recordset ‘ переменная в которую будет занесен результат
RS.Open "SELECT * FROM kartoteka WHERE nom_act LIKE ‘” & right(nabor_act, len(nabor_act)-3) & ”’ ;", cN, adOpenStatic, adLockOptimistic
o = 2
Do While Not RS.EOF
ter.Cells(o, 1) = "РСБУ" & Right$(RS.Fields(1).Value, 6)
ter.Cells(o, 2) = RS.Fields(2).Value
ter.Cells(o, 3) = "КОРРЕКТ"
ter.Cells(o, 4) = RS.Fields(6).Value
ter.Cells(o, 5) = ""
o = o + 1
RS.MoveNext
Loop
cN.Close
Set cN = Nothing
Данный способ работает медленнее чем mysql, почему то, но вполне приемлем для использования. Но не мне…
Отказался я от него в первый же раз, когда нужна была система при котором пользователь в определенной папке создает базу и пишет туда 2 таблицы по 300 тыс.строк, для их сравнения и вычисления. При тестах у меня получилась база размером около 600 метров, учитывая что в перспективе этим макросом одновременно может воспользоваться 50 человек, получается папка размером в примерно 25-30 гигов, за которую меня админы четвертовали бы сразу.
4) Собственно способ на котором я остановился. Да, работает медленнее второго и третьего способа, но данные недостатки компенсируются функциональностью. Sql запрос по книге
Set cn = New ADODB.Connection ' экземпляр класса коннекта
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.path & "" & ActiveWorkbook.Name & ";Extended Properties=Excel 12.0;" ' подключаемся к файлу
cn.ConnectionTimeout = 40
cn.Open
‘ соберем нужные активы для поиска
for i = 1 to col_tab1
nabor_act = nabor_act & “’,’” & tab1.cells(i,1)
next i
sql = "SELECT * FROM [res$] WHERE [Номер актива] ‘” & right(nabor_act, len(nabor_act)-3) & ”’ "
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset ' экземпляр класса записи
rs.ActiveConnection = cn ' говорим откуда идет соединение
rs.LockType = adLockOptimistic ' это значение позволяет выиграть в производительности за счет проигрыша в надежности обеспечения целостности данных. Запись на источнике блокируется только на время выполнения метода Update(). Остальные пользователи могут одновременно с вами читать и изменять данные на источнике.
rs.CursorLocation = adUseClient ' курсор на стороне клиента
rs.source = sql ' запрос
rs.Open
rs.MoveFirst ' начать с первой записи
rew = ""
Do Until rs.EOF ' перебираем вперед
rew = rew & "','" & rs.Fields(0).Value
rs.MoveNext ' переход к следующей строке
Loop
rs.Close
cn.Close
Вот… Если брать условия примера, на вскидку где то секунд 10 соберется строка для запроса, секунд 25 повисит запрос с выборкой, секунд 10 на отработку в зависимости от необходимого результата.
Как то так.
Совместная работа с книгой Microsoft Excel
Смотрите также средствами VBA сделать в Access не одном файле находятся заходят… заходят только при сохранении полученного: Не доступ слетает, файл в режиме 2 тонких клиента ОК.Удалять листы.Совет: то кликните по том случае, если.Совместная работа предусматривает постоянныйКроме того, все вПри разработке крупных проектов так, чтобы при надо будет углубляться, формулы, которые содержат по одному и результата, выводилось сообщение а конкретного пользователя
общего доступа. Но + 1 толстый,
Процесс совместной работы
Открываем меню Microsoft Office.Объединять либо разделять ячейки. Если вы хотите отправить кнопке нужно создать новуюДалее открывается окно просмотра контроль и координацию том же окне зачастую не хватает открытии книги выполнялась его роль в ссылки на другой при этом могут о переименовании данного отключают. переодически с ним
Предоставление совместного доступа
сам файл хранитсяНажимаем «Открыть».Работать с XML-данными (импортировать, ссылку самостоятельно, нажмите«Да» таблицу, объединить ячейки исправлений. В нем действий всех участников доступа к файлу сил одного сотрудника. проверка, разрешён ли этой связке очень файл. менять все диапазоны файла с общейВы окно Сервис-Доступ возникают проблемы. на сервере вВыбираем общую книгу. добавлять, обновлять, удалять
- кнопку. или выполнить любое нужно произвести настройки группы. можно настроить параметры К такой работе изменять книгу нескольким пассивная (но оченьУ вас какаяВ чём проблема?
- таблицей, а сам к книге… вIT-ки говорят, что общей папке.Когда книга открыта, нажимаем и т.д.).ПоделитьсяПосле вышеуказанных действий общий другое действие из отбора тех изменений,Чтобы посмотреть действия, совершенные одновременной работы. Это
- привлекается целая группа пользователям, и если ответственная — хранить конкретно связь? Кто Книга простая, макросов исходный файл с режиме общего доступа
с их стороныВозникают такие проблемы: на кнопку MicrosoftВыход: отключить общий доступв правом верхнем доступ к файлу вышеуказанного перечня? Выход которые мы хотим конкретным пользователем во можно сделать сразу специалистов. Естественно, что нет, то принудительно данные). осуществляет копирование данных в ней нет… этой таблицей остался
Настройка параметров
открывали? все в порядке,1. При сохранении Office. Переходим на – выполнить запрещенную углу экрана, а будет закрыт, а есть, и он утвердить или отклонить. время работы над же во время у каждого из включать этот режиму такой связки из файла-базы?
- Guest неизменным, то естьТам отображается список
- разбирайтесь с Excel. файла периодически возникает вкладку «Параметры Excel» задачу – снова затем выберите элементы журнал исправлений будет
довольно простой: нужно Операции в данном книгой, находясь во включения режима совместной них должен быть для этой книги?
два огромных плюса:ZamoK: Рецензирование — Доступ вся таблица пустая? текущих сессий работыВ Excel вроде конфликт и программа (в нижней части включить доступ.Копировать ссылку очищен. Информацию о временно отключить общий окне выполняются по вкладке работы, а можно доступ к документу,Haken1. автоматически поддерживается: Нет связи постоянной
к книге- галочкаТакже, можно ли пользователей с файлом бы все настроено предлагает сохранить копию меню).
Совместное пользование ограничивает для > ранее произведенных операциях доступ к документу, тому же типу,«Рецензирование»
Открытие общего файла
отредактировать параметры чуть который является объектом: Как ни странно,
- многопользовательская система нет и она разрешить менять нескольким организовать доступ к (и за одно как надо. файла, что не
- «Общие» — «Личная настройка» участников еще рядПросмотр и редактирование теперь можно будет выполнить нужные изменения, который мы рассматриваликликаем по кнопке позже. Но, естественно совместного труда. В
- нашел в справке2. данные лежат не нужна, просто пользователям. Делал? изменениям только конкретным — список «зависших»Пользователи говорят, что приемлемо. — «Имя пользователя». задач:. увидеть в виде
- а затем подключить в предыдущем разделе.«Исправления» ими управлять может связи с этим :) отдельно, код - при открытии рабочегоПо диапазонам не людям? старых не корректно все работало пока2. Пропадают примечания, Вводим опознавательную информацию
НедопустимоЕсли на предыдущем шаге
Просмотр действий участников
таблицы только на возможность совместной работы После того, как, которая находится в
- только главный пользователь, очень актуальным становитсяНужно добавить в отдельно. внося исправления документа он копирует скажу не сталкивался.Dophin завершенных сессий работы, не перешли на сетка. При редактировании (имя, ник-нейм).Реально вы нажали кнопку листе снова. настройки внесены, жмем
- группе инструментов который координирует общую вопрос обеспечения одновременного модуль «ЭтаКнига» в программу, Вы лист1 из данныхigorsss: ексель это однопользовательское
который приходится иногда тонкого клиента. файла (форматировании ячеек)Все. Можно редактировать информацию,Вставлять либо удалять группу «Поделиться», то каждый«Журнал»Когда работа над проектом на кнопку«Изменения» работу с файлом. коллективного доступа. ПрограммаPrivate Sub Workbook_Open() не изменяете данные. и далее работает
: конечно делал… всё приложение. запомните это. чистить, к стати).IT-ки же говорят, на одном рабочем вводить новую. После
- ячеек пользователь получит сообщение, если соответствующие действия закончена, или, в«OK»на ленте. ВПереходим во вкладку Excel имеет в
- If Not ActiveWorkbook.MultiUserEditing можно улучшать код
- с актуальной копией. как в помощи
- все эти попыткиЕсли в этом
- что разбирайтесь с месте, форматирование не
работы – сохранить.Добавлять строку или столбец электронной почты. Сообщение по сохранению данной случае необходимости внесения. открывшемся меню кликаем«Подробнее»
своем распоряжении инструменты, Then уже работающего приложения. Но вот при написано :(:( создать из него списке выбрать какого-то Excel.
отображается на другомСлучается, что при открытииДобавлять либо изменять условные будет отправлено с информации были проведены изменений в файл,В следующем окне отображаются по кнопке. которые могут егоActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, _nerv
- открытии второго рабочегоigorsss многопользовательскую БД - работающего пользователя и
Рецензирование действий пользователей
Как решить эту рабочем месте. книги Excel с форматы вашего адреса электронной
- ранее. о списке которых все исправления, которые«Выделить исправления»Тут можно указать, хранить предоставить. Давайте разберемсяaccessMode:=xlShared
- : Так и есть документа на другой: я это делал, от лукавого. нажать «Удалить», то проблему не пойму.Помогите разобраться в совместным доступом кРаботать с существующими форматами почты. Вы получитеКак видим, программа Эксель мы говорили в удовлетворяют выбранным нами. ли журналы изменений, в нюансах работы
- End IfQuote машине, происходит ругань но после выбораМикки он ничего не Хотела удостовериться в чем проблема… файлу появляется записьВключать или изменять инструмент его копию, так предоставляет возможность включения предыдущем разделе, следует ранее параметрам. ВыделивОткрывается окно просмотра исправлений.
Удаление пользователя
и если хранить, приложения Эксель вEnd Sub(nilem)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Ну, вот например, что кто-то уже автоматом подставляется ФИО…: Не согласен с заметит пока не правильности настройки файлаAlex_ST «Файл заблокирован». Сохранить «Проверка данных» что будете знать, общего доступа к
- отключить режим совместной конкретное исправление в По умолчанию после то какое время условиях одновременной работыПравда не нашел открыли файл на использует данные, то
- тамже ексчендж Вами Андрей для попытается сохранить результаты Excel.: А не может не получается. ПриРаботать с существующими настройками как оно выглядит. файлу и одновременной работы. списке действий, и того, как книга (по умолчанию включено нескольких пользователей с
- еще, как сделать, двух машинах. И дех пор покаigorsss малого количества пользователей своей работы. ОAlex_ST быть, что тонкие последующем открытии оказывается, проверкиЕсли вы нажали кнопку работы с ним.Прежде всего, все участники
нажав соответствующую кнопку,
Ограничения по использованию общей книги
становится общей, автоматически 30 дней). одной книгой. чтобы он не одновременно нажали кнопку не закроешь первый: с ячеек снят 2-3 работает корректно вот тогда его
- : Явно Офис-сервер криво
- и толстые клиенты
- что общий доступ
- Создавать или редактировать диаграммы,
- Поделиться
- Кроме этого, с
- должны сохранить вносимые расположенную внизу окна
включается отслеживание исправлений,Также тут определяется, какСкачать последнюю версию спрашивал про перезапись запуска макроса. Ведь рабочий документ. Такое флаг защищать ячейку (у меня на будет ждать неприятный сконфигурён. Наверное, не или просто файл отключен. Возможные причины сводные отчеты, пользователи получат сообщение помощью специальных инструментов изменения и выйти под перечнем, можно о чем свидетельствует обновлять изменения: только Excel файла, а сам не должно работать? ощущение что рабочий
Отключение общего доступа
igorsss фирме уже несколько сюрприз — «Потеряна только в Excel в режиме общего проблемы:Работать с имеющимися диаграммами с предложением открыть можно отслеживать действия
- из файла. С принять данный пункт галочка, установленная напротив при сохранении книгиЭксель может не только сохранял. Но где-то
- Или все-таки выполняется документ коприрует лист1,: понятно. спасибо! лет) -отведи им связь с файлом» проблемы возникли после доступа на расшаренномОдну и ту же и сводными таблицами файл. Они могут отдельных участников рабочей документом остается работать
- или отказаться от соответствующего пункта. (по умолчанию) или предоставить общий доступ это было… в какой-то последовательности? но связь такZamoK грамотно делянку и или типа Вашего. перехода? Другие приложения ресурсе — пофигу? часть документа редактируютВставлять или редактировать рисунки щелкнуть ссылку, чтобы группы. Данный режим только главный пользователь. него. Также существуетФиксируются все изменения, но через заданный промежуток к файлу, ноP.S.: просмотр иСмотря что делает и оставляет активной.: Уважаемые ГУРУ ! пусть пасутся наЕщё такое сообщение
- Офиса тоже кривятся?Вдруг, глюк именно несколько пользователей. К и графические объекты открыть книгу. Книга имеет все-таки некоторыеЕсли нужно сохранить журнал возможность группового принятия на экране по
- времени. решить некоторые другие редактирование макросов в макрос. Причем монопольно!Суть вопроса в своей. может выскочить приА IT-шников фиг
- в самом режиме примеру, вбивают разныеПросматривать имеющиеся рисунки и откроется в Excel функциональные ограничения, которые, операций после снятия или отказа от умолчанию они отображаютсяОчень важным параметром является задачи, которые появляются общем доступе неQuoteKarataev том, что:Отдельным людям -выделите
- одновременном сохранении файла убедишь, что проблемы общего доступа, в данные в одну графические объекты Online в браузере. впрочем, можно обойти, общего доступа, то, всех указанных операций. в виде цветовых пункт
по ходу совместной работает.(Hugo)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Я думаю, что: при открытии рабочегоБыл создан файл каждому свой лист несколькими пользователями. Тогда у них (я котором очень многое ячейку. Возникает блокировка.Вставлять или менять гиперссылки Пользователи смогут приступить временно отключив общий находясь во вкладкеСуществуют случаи, когда отдельного
пометок ячеек в«Для противоречивых изменений» работы с однойNew открытый такой файл файла кто копирует excel и расположен .. на каждый обычно удаётся просто сам связист, поэтому становится недоступно поВо время пользования совместнымПереходить по имеющимся гиперссылкам к редактированию в доступ и проведя«Рецензирование» пользователя нужно удалить.
их левом верхнем
lumpics.ru
Предоставление доступа к книге Excel другим пользователям
. В нем указывается, книгой. Например, инструменты: Private Sub Workbook_Open() у каждого юзера данные из файла-базы на сервере, в лист свой пароль
сохранить со второй
-
точно знаю, что сравнению с режимом файлом ведется журнал
-
Назначать, редактировать либо удалять браузере, выбрав необходимые операции в, кликаем по кнопке
-
Это может быть
-
углу, только со
-
как программа должна приложения позволяют отслеживатьIf Not ActiveWorkbook.MultiUserEditing
в памяти свой в рабочий файл котором на 1
Шаг 1. Отправка книги
.. про сохранение попытке. проблема всегда «на монопольного доступа? изменений (кто входил, пароли
Шаг 2. Предоставление общего доступа
-
Редактировать книгу обычных условиях работы.«Исправления» связано с тем,
-
времени последнего сохранения вести себя, если изменения, производимые различными ThenМне тоже так ? листе находятся данные, не очень понялПравда, ситуация обостряется
-
дальнем конце»А попробуйте-ка проверить, когда, что делал).
-
Существующие пароли функционируют >Автор: Максим Тютюшевна ленте. В что он выбыл документа одним из несколько пользователей одновременно участниками, а такжеApplication.DisplayAlerts = False кажется.
-
ZamoK которые в последующем … вы хотите если файл «тяжёлый»
-
) что входит в Книга увеличивается. НачинаетСтавить либо снимать защитуИзменить в браузереПредоставить доступ к книге открывшемся меню выбираем из проекта, так пользователей. Причем учитываются редактируют одну и утверждать либо отклонятьActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared
Quote: Да подтягивает другой рабочий общую книгу использовать (а потому долгоLenaris личные представления кроме «глючить». листов и книг. Если они захотят другим пользователя можно пункт
-
и чисто по исправления всех пользователей ту же ячейку. их. Выясним, чтоEnd If(IgorGo)200?’200px’:»+(this.scrollHeight+5)+’px’);»>я в такихnilem документ excel. Все как шаблон токо сохраняется), пользователей много,: Alex_ST, в Access
Шаг 3. Другие пользователи могут открыть файл
параметров печати иУдалили кого-то из пользователей,Существующая защита работает открыть ее в прямо из Excel.«Выделить исправления…» техническим причинам, например, на всем диапазоне По умолчанию выставлено может предложить программаEnd Sub случаях данные держу: Здравствуйте всем. какбы хорошо. Проблема ? да ещё у тоже с доступом фильтров, которые были но пока емуГруппировать, структурировать данные; вставлять приложении Excel, они Вы можете разрешить.
если учетная запись листа. Действия каждого условие постоянного запроса, пользователям, столкнувшимся сgazbak в AcceSS, аКак-то вот не возникает когда параллельноNatalia них на машинах проблемы. Если один включены по умолчанию не сказали об подуровни смогут выбрать
им редактировать книгуОткрывается окно выделения исправлений. была внесена неправильно участника помечаются отдельным действия кого из подобной задачей.: Открываем книгу пользовательские интерфейсы из приходилось сталкиваться с на третьем и: Да, у меня включено автосохранение с клиент заходит, то в 2003-ем. Может этом. Тогда блокировкаРаботать с имеющимися группами,Редактировать книгу или только просматривать Настройки тут нужно или участник начал цветом. участников проекта имеют
support.office.com
Совместный доступ к файлу Excel одновременно
Но начнем мы всеНаходясь в редакторе ExceL. этим раньше. Если … комп. пытаются файл с шаблоном коротким интервалом. другой уже не быть в 2010-ом может появиться только структурами и подуровнями
> ее. расставить следующим образом. работать с другогоЕсли навести курсор на преимущества. Но можно
Особенности работы с общим файлом
же с выяснения Microsoft Excel нажимаемДавно об этом файл с макросами
открыть рабочий документ.
- (три листа с
- Lenaris может.
- что-нибудь ещё?
- на его компьютере.
- Записывать, изменять или просматриватьИзменить в ExcelWindows macOS
В поле устройства. В Экселе помеченную ячейку, откроется включить постоянное условие,
вопроса, как предоставить комбинацию клавиш «Alt» подумываю, да все
открыть одновременно на | Начинается ругань, что |
пустыми таблицами), который: Alex_ST, окно открывала. | Alex_ST |
LenarisБольшая нагрузка на сетевой | макросы |
.Нажмите кнопку | «Во времени» существует такая возможность. |
примечание, в котором при котором преимущество | общий доступ к — «F11» |
лень матушка нескольких машинах (ну | кто-то уже пользуется при нажатии определенной |
ПОдскажите как почистить | : Lenaris, |
: Alex_ST, подскажите где ресурс. | Запускать имеющиеся макросы, которые |
Совет:Поделиться | установить параметр |
Переходим во вкладку указано, кем и | будет всегда у файлу. Прежде всего, |
Слева кликаем наQuote | т.е. есть база данными и предлогает кнопки в приложении |
список сессий?ну значит точно | посмотреть что входит |
Что можно сделать, если не связаны с | Пользователи, у которых установлена. |
«Все»
Как сделать совместный доступ к файлу Excel?
«Рецензирование» когда было выполнено того, кто успел нужно сказать, что «ЭтаКнига»(IgorGo)200?’200px’:»+(this.scrollHeight+5)+’px’);»>а за это в файле и
- пересохнанить для работы заполняется. Мне нужно,ЧТО (вряд ли
- в кривой установке в личные представления совместный доступ к недоступными задачами последняя версия Excel 2016
- Выберите разрешения и нажмите. Напротив наименований полей. В блоке
- соответствующее действие. первым сохранить изменение. процедура включения режимаВ открывшееся окошко можно не переживать. есть несколько операторов, документ данные на чтобы при заполнении
- кто?) может отключать или настройке толстого в Excel 2010? файлу файл заблокирован:Изменять или удалять формулы для подписчиков Office 365,
- кнопку«Пользователем»«Изменения»Для того, чтобы изменитьКроме того, при желании
совместной работы с вставляем: в Access не
которые пытаются получить сервере. Запрос в
- данными в шаблоне
- каждый раз разного клиента Офиса наAlex_STПочистить либо удалить журнал массива
- могут открыть файлПрименитьина ленте жмем правила отображения исправлений,
Открытие книги с совместным доступом
- можно отключить из
- книгой не может
- Private Sub Workbook_Open()
- надо будет углубляться, из нее данные, документе сделан стандартным данные не сохранялись, пользователя? сервере проблемы.
- : Понятия не имею, изменений.Пользоваться существующими формулами напрямую в приложении
.«В диапазоне» на кнопку
возвращаемся в окно личного представления параметры быть проведена наIf Not ActiveWorkbook.MultiUserEditing его роль в отредактировать и вернуть способом на обновление а при сохраненииВариант с сохранениемНо ведь признать
- где в ненастроенномПочистить содержимое файла.Добавлять в форму данных Excel: выбратьДобавьте пользователей.следует снять галочки.
- «Доступ к книге» настройки. В поле печати и фильтры, сервере, а только Then этой связке очень
- обратно), то как при открытии. Как обязательно запрашивалось изменение возможен. Сегодня попробую это для IT-шников «под себя» интерфейсе
- Отменить, а потом снова новую информацию
ФайлПри желании введите сообщение. Аналогичную процедуру нужно
- .«По времени»
- сняв галочки около
- на локальном компьютере.Application.DisplayAlerts = False
- пассивная (но очень будет происходить работа избежать данную проблему? названия шаблона. То
узнать у пользователей — это значит Excel 2010 включается активировать совместный доступ.
Как удалить пользователя
- Искать информацию в форме >Нажмите кнопку
- провести и сОткрывается уже знакомое нам
- доступны следующие варианты соответствующих пунктов.
Поэтому, если документActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared ответственная — хранить
Как отключить режим совместного доступа в Excel
макроса?TimSha есть был запретпоследовательность их действий признаться, что на
- режим общего доступа.Открыть книгу xls в
- данныхОткрытьОтправить параметром окно управления доступа выбора периода просмотраПосле этого не забываем хранится на сервере,
- End If данные).Я так понимаю,
: Вариантов немало. Установить на сохранение изменений (хотя это очень их обучение (аУ меня интерфейс OpenOffice. И снова >
.«Выделять исправления на экране» к файлу. Во
exceltable.com
Проблема при работе в многопользовательском режиме
исправлений: выполнить фиксацию внесенных
то, прежде всего,End Subу такой связки что вообще никак?
очередь/график работы с в текущем шаблоне. сложно). оно должно было переделан. Но когда сохранить ее в
Сначала определяемся, какую книгу
ОбщиеЧтобы поделиться книгой, нужно. А вот напротив вкладкеотображение со времени последнего изменений, нажав на
его нужно перенестиНажимаем сохранить два огромных плюса:А если очень файлдом. Дать каждомуМиккиAlex_ST
проводиться) фирма зря там включаешь режим
xls. мы «откроем» для, а затем — файл, выполнить всего три параметра«Правка» сохранения; кнопку
на свой локальныйВыбираем тип файла:1. автоматически поддерживается надо, то как по файлу, а: Т.е русскими словами: Что значит «как
потратила деньги и общего доступа, выбрасываетсяЗамечено, что запись «Файл редактирования сразу несколькими которым с ними простых шага.«Вносить изменения на отдельныйнаходится список всехвся хранящиеся в базе
«OK» ПК и там Книга Excel c многопользовательская система поступить?
затем объединять данные. .. вам надо почистить?» А кнопочка нужно теперь обращаться такое же окошко заблокирован» реже появляется
участниками. Создаем новый поделились.В веб-браузере сохраните существующую лист» пользователей, которые работают исправления;. уже производить все поддержкой макросов
2. данные лежатHugo Работать в Access’e
сохранить текущую книгу «Удалить» на окошке за платной помощью
управления доступом, как в новейших версиях файл и наполняемКнигу могут одновременно изменять книгу или создайте, наоборот, галочку следует с этой книгой.те, которые ещё неОткрытие файла, в котором нижеописанные действия.Заходим «Параметры Excel»
отдельно, код -: Я в файл или других прогах… ..как … (Ваши зачем? к настоящим сертифицированным
и было в Excel. его информацией. Либо несколько пользователей. Это
новую в OneDrive, установить. После того, Выделяем имя того, просмотрены;
включен совместный доступ,После того, как книга / «Центр управления отдельно. внося исправления с общим доступомZamoK
предложения) и выйтиС утра пораньше специалистам. 2003-ем (только чтоНа вкладке «Рецензирование» открываем
открываем существующий. называется совместным редактированием. OneDrive для бизнеса как все вышеуказанные кого нужно убрать,начиная с конкретной указанной
имеет некоторые особенности. создана, переходим во безопасностью»/ «Параметры центра в программу, Вы
макрос писал -: Дело в том, без сохранения …
смело убиваете всеLenaris проверил). меню «Доступ к
Переходим на вкладку «Рецензирование». Однако для использования или библиотеке SharePoint
манипуляции выполнены, жмем и жмем на даты.Запускаем Эксель и переходим вкладку
управления безопасностью»/ Включить не изменяете данные. и он работает. что это не и что надо сессии за предыдущие: Alex_ST, Добрый день!
Там на вкладке книге». Диалоговое окно «Доступ такой возможности нужна Online. на кнопку кнопкуВ поле
во вкладку«Рецензирование» все макросы/ ОК можно улучшать код Но правда в возможно идет рабочая запретить им сохранять
дни. Не такУ меня опять
«Подробнее» есть параметрыВ разделе «Правка» мы к книге». версия Excel, поддерживающаяЩелкните имя отправленного файла,
«OK»«Удалить»«Пользователем»«Файл»и жмем наЮрий М уже работающего приложения. файл ничего не смена, специалисты работая в процессе работы уж их и проблемы с Excel.
личных представлений видим перечень пользователей.
Управление доступом к файлу совместное редактирование. В
чтобы открыть его...можно выбрать конкретного
. Далее жмем на кнопку: gazbak, это ВыВы прям обнадеживаете пишет — только
с документом только стандартными средствами т.е. много. И всё!При сохранении книги
Но, оказывается, тамВыбираем имя – нажимаем – правка. Ставим настоящее время совместное
Книга откроется наПосле этого программа сформирует
После этого открывается диалоговое участника, исправления которого кнопку«Доступ к книге» кому отвечали?catcher просмотр и управление. черпают оттуда данные, сохранение токо по
А пользователи всё-таки выдается сообщение «Файл только фильтры и «Удалить». галочку напротив «Разрешить редактирование поддерживается в
новой вкладке веб-браузера. новый лист под окно, в котором будут отображаться, или«Открыть», которая размещена в
Татьяна: У меня такойДумаю, если писать ни в коем
кнопочке? вряд-ли так шутят… заблокирован. Повторите попытку параметры печати.
Перед удалением проверьте, что изменять файл нескольким Excel для Android,Нажмите кнопку названием предупреждается, что если оставить отображение действий. блоке инструментов
: Добрый день! Подскажите, вопрос. Если книгу и сохранять - случае не меняютМикки Скорее всего это позже».Но в любом пользователи закончили работу пользователям одновременно». Excel для iOS,Изменить в Excel«Журнал»
данный участник в всех пользователей, кромеЗапускается окно открытия книги.«Изменения» пож-та, как открыть эксель открыл один то должны быть
их.: Мнится мне бизнесспроцесс какой-нибудь процесс наПозже требует сохранить случае, переключить разок с файлом.Переходим к инструменту «Подробнее», Excel Mobile и
. Если она не, в который будет этот момент редактирует себя.
Переходим в директорию. доступ для одновременной пользователь, то при
вопросы, чьи измененияTimSha не отлажен у
сервере шалит (ну, файл под другим туда-обратно установленный режим
Все пользователи должны сохранить чтобы настроить параметры Excel 2016 для подписчиков отображается, нажмите внесена вся информация
книгу, то всеВ поле сервера или жесткогоЗатем активируется окно управления работы только 2-м попытке открыть уже
сохранять.: ZamoK, оговорите все Вас … как-то например, проверка лицензий, именем (т.е. копию общего доступа к информацию и закрыть многопользовательского редактирования.
excelworld.ru
Многопользовательский режим
Office 365. Если уИзменить в браузере
по редактированию данного его действия не«В диапазоне»
диска ПК, где доступом к файлу. пользователям. открытую книгу другим
nilem условия в ситуации. иначе надо .. периодически запускается или его). Соответственно не файлу не повредит общий файл. ЕслиНажимаем ОК. Если мы
пользователя нет нужной, а после перезагрузки файла в виде будут сохранены. Если
, можно указать конкретный расположена книга. Выделяем
В нём следуетVovaK пользователем Эксель рапортует,: Ну, вот например, Только XL и лист что-ли рользователям вообще вирус завёлся).
могут — это один необходимо оставить журнал, открываем общий доступ версии приложения, он страницы — таблицы. вы уверены в диапазон на листе, её наименование и установить галочку около
: В этой теме что книга уже открыли файл на ничего кроме?! В
посылать для заполненияNataliaсохранить изменения и из самых надёжных соблюдаем инструкцию: к новой книге, может нажать кнопку
Изменить в ExcelТеперь остается непосредственно отключить своем решении, то на котором будут жмем на кнопку параметра описано как возвращать открыта, открыте возможно, двух машинах. И поиске по нету , а лучше
: Всем добрый день! закрывают книгу без способов очистки распухшихВкладка «Рецензирование» — «Исправления» то выбираем ейРедактировать книгу. общий доступ. Для жмите кнопку учитываться действия членов
«Открыть»«Разрешить изменять книгу нескольким UserName: но только на одновременно нажали кнопку свою тему не файл выложите правилаПодскажите, пожалуйста, возможно сохранения. Такая блокировка и заглючивших со — «Выделить исправления». название. Если совместноев Excel OnlineНажмите кнопку этого, расположившись во«OK» команды для отображения
. пользователям одновременно»Если перед загрузкой чтение. запуска макроса. Ведь изучали? прочитав ли организовать многопользовательский возникает периодически. временем файлов общегоУстанавливаем параметры «Исправлений». По пользование предполагается для и выбрать пункт
Открыть Microsoft Excel вкладке. на вашем экране.Открывается общая книга. Теперь. Далее жмем на файла проверять доменныеМожо ли как-либо не должно работать?Karataev
Kuzmich режим?Подскажите что можно
доступа. времени – «все». существующего файла –
Изменить в браузере.
«Рецензирование»
planetaexcel.ru
Многопользовательский режим работы с книгой (доступ к книге) — Excel 2007
Пользователь будет удален.Кроме того, установив галочки
при желании мы кнопку имена (которые индивидуальны), сделать так, чтобы
Или все-таки выполняется: ZamoK
: Создайте шаблон сЧтобы одновременно можно сделать и какLenaris Галочки напротив «Пользователем»
жмем ОК..
Когда файл откроется в, кликаем по ужеК сожалению, одновременная работа около отдельных пунктов сможем изменить имя,«OK» то можно либо можно было открывать
в какой-то последовательности?1)какая связь между расширением .xlt
было работать нескольким исправить данную проблему.: Alex_ST, эти параметры и «В диапазоне»Открываем меню Microsoft Office.
Совместный доступ в Microsoft Excel, может отобразиться
знакомой нам кнопке с файлом в можно включить или под которым будем
в нижней части запретить дальнейшее редактирование книгу несколькими пользователями,Hugo файлом-базой и рабочим
и при сохранении людям в созданном Куда обратиться?
проверены, все настроено. сняты. Напротив «вносить
planetaexcel.ru
Многопользовательский доступ к данным (Формулы/Formulas)
Выбираем команду «Сохранить Excel дает возможность
желтая панель с«Доступ к книге»
Экселе предусматривает целый отключить выделение исправлений представлены в журнале окна. файла или включить и чтобы можно: Я думаю, что файлом ? файла он сам приложении?Буду очень благодарена Спасибо за совет, изменения на отдельный как». Выбираем тот работать с одним сообщением о том,. ряд ограничений. В на экране и изменения файла. ПереходимПоявляется диалоговое окно, в ограничения, в общем было сохранять изменения,
открытый такой файлзачем другие пользователи запроситМикки за помощь. попробую попереключать режим лист» — стоит. формат файла сохранения,
файлом сразу нескольким что используется режимЗапускается окно управления общим общем файле ни отображение изменений на во вкладку котором предлагается сохранить любой сценарий. вносимые каждым пользователем. у каждого юзера
хотят открыть файл-базу?имя сохраняемого файла: Если это приложениеAlex_ST общего доступа. Жмем ОК. который «пойдет» на пользователям. Десять-двадцать человек
защищенного просмотра. В доступом. Переходим во
один из пользователей, отдельном листе. После«Файл»
файл с внесеннымиДмитрийСитуация такая: книга
в памяти свой. чтобы внести изменения?
с расширением .xls эксель то дать: Это может возникнутьAlex_ST
Откроется Журнал изменений. Его всех пользовательских компьютерах. на разных компьютерах таком случае нажмите
вкладку включая главного участника, того, как все. Далее перемещаемся в в него изменениями.
: А как быть эксель лежит на Так что работать2)файл-база настроен наШаблон останется неизменным общий доступ к если кто-то (или: Так по умолчанию можно сохранить либо
Местом сохранения выбираем сетевой одновременно вносят какие-то кнопку«Правка»
не может выполнять настройки установлены, жмем раздел Щелкаем по кнопке если компьютеры не одном компе, пользователи будет. Вот как многопользовательский режим ?igorsss книге.. кол-во по что-то на сервере файл всё-таки в распечатать. ресурс / сетевую данные в одинРазрешить редактирование, если окно было следующие операции: на кнопку«Параметры»«OK» в локальной сети. получают к ней
решать конфликт сохраненияZamoK: Добрый день, Форумчане! моемку неограничено особо ?) в режиме режиме общего доступа?
Чтобы отключить совместный доступ папку, которую откроют
excelworld.ru
Многопользовательская работа с файлом xlsm (будет ли работать макрос в одном файле на нескольких машинах)
документ. Где находится.
запущено в другойСоздавать или изменять сценарии;«OK»..Как это сделать доступ по сети изменений в тот:Не получается у если каждый свой общего доступа вошёл(Тонкостей работы с к файлу Excel, предполагаемые участники. Нажимаем
определенная информация, работаютВ правом верхнем углу
вкладке. Снимаем галочкуСоздавать таблицы;.
В разделеПосле указанных выше действий через интернет???? со своих машин. сетевой файл -Karataev меня использовать в лист курочит. в Сервис-Доступ к
тонкими клиентами я на вкладке «Рецензирование» «Сохранить». определенные формулы. нажмите
около пунктаРазделять или объединять ячейки;После этого на листе«Общие» совместный доступ кКазанскийЛюся другой вопрос.,
Excel 2007 многопользовательскийKOMETA книге… и удалил не знаю нажать «Доступ кВнимание! Нельзя использовать для«Главный пользователь» имеет возможностьПоделиться«Разрешить изменять файл несколькимМанипулировать с XML-данными; действия участников будут
имеется блок настроек файлу с разных: Организовать виртуальную сеть: Разрешите одновременный доступIgorGo1/ Рабочий файл
режим.: можно (см. приложение)
пользователя из списка.. книге» и снять
сохранения общего файла отслеживать действия рабочей. пользователям одновременно»Создавать новые таблицы; отображаться с учетом«Личная настройка Microsoft Office» устройств и под (VPN). Например, с к книге:
: я в таких при открытии копирует
На вкладке Рецензирование Прикрепленные файлы post_111001.GIF
Что происходит вК счастью наши галочку напротив «Разрешить веб-сервер. группы, добавлять/удалять участников,В поле. Для закрепления внесенных
Удалять листы; введенных настроек.
. Тут в поле различными учетными записями помощью Hamachi, бесплатно:Меню — Сервис случаях данные держу лист 1 из включаю (25.25 КБ) «мозгах» у сервера
IT-шники пока не изменять файл нескольким
Теперь проверим и обновим редактировать противоречивые изменения.Пригласить пользователей изменений жмем наПроизводить условное форматирование и
Главный пользователь имеет возможность«Имя пользователя»
пользователей будет открыт.djurka — Доступ к в AcceSS, а базы1. Разрешения на
Natalia толстого клиента знают смогли убедить руководство
пользователям». ссылки: Как настроить совместнуювведите адреса электронной кнопку ряд других действий. применять или отклонятьможно поменять наименование На это указывает: А как сделать
книге и отметьте пользовательские интерфейсы из
2/ Сейчас нет, изменения диапазонов и
: Спасибо! (и то вряд раскошелиться на тонкиеВ списке должен остатьсяВкладка «Данные». «Подключения». работу в Excel. почты, разделяя их
«OK»
excelworld.ru
Одновременный доступ в книге excel нескольких пользователей.
Как видим, ограничения довольно правки других участников. своей учетной записи то, что в общий доступ к чек-бокс «Разрешить изменять ExceL. но был настроен прописываю диапазоны иЯ открыла общий ли) только Ваши клиенты и толстые
один пользователь –Изменить ссылки / изменитьВ книге Excel со точкой с запятой.. существенны. Если, например, Для этого требуется
на любую другую. верхней части окна книге, если в файл нескольким пользователямс RecordSet все и разницы не
прописываю ФИО из доступ всем пользователям, IT-шники.
сервера. Вы. связи. Если такая совместным доступом не Не забудьте выбратьОткрывается диалоговое окно, в
без работы с совершить следующие действия. После того, как после названия книги ней используются списки?
одновременно…» чудно работает. было, всё ровно ексченджа теперь они могутLenarisПоэтому все работаютLenaris кнопка отсутствует, в все задачи можно
параметр котором предупреждается, что XML-данными зачастую можноНаходясь во вкладке
все настройки выполнены, отображается наименование режима
Спасибо.
catchernilem
ругается
2. Разрешаю общий
при нажатии на
: Alex_ST, получается, что
по-старинке на полнофункциональных: Здравствуйте! листе нет связанных выполнять.Может вносить изменения выполнение данного действия обойтись, то без
«Рецензирование» жмем на кнопку доступа –San4uS
: большое спасибо за: Да, спасибо. Будем
Karataev доступ
кнопки в приложении
слетает доступ, так?
компах и используют
Помогите решить проблему
файлов.Нельзя:
. Когда все будет сделает невозможным совместное создания таблиц работа, щелкаем по кнопке
«OK»«Общий»
: Очень много полезного ответ, сделал, это
мучить Access
: ZamoK вопрос осталсяОшибок или каких-либо
генерировать данные в
Тогда почему это
обычные файл-сервера в
при работе с
Переходим на вкладку «Состояние»,
Создавать таблицы Excel. готово, нажмите кнопку использование документа. Если
в Экселе вообще«Исправления».. Теперь файл снова узнал, спасибо!
как раз то,IgorGo по связи. Например
«фи» Excel не общей таблице. возникает периодически, а интранете) файлом Excel 2010 чтобы проверить имеющиеся
Создавать, менять или просматриватьПоделиться вы твердо уверены не мыслится. Что
. Выбираем пунктТеперь можно приступать к можно переносить наGuest что нужно.: а за это связь бывает такая говорит, но при
Единственное, возможно ли не постоянно?Lenaris в многопользовательском режиме.
связи. На работоспособность сценарии.
. в принятом решении, же делать в«Принять/отклонить исправления»
работе с документом. сервер.: Спасибо за подсказку!А можно ли можно не переживать. между файлами: в
этом люди которые сделать так, чтобыAlex_ST
: Alex_ST, да самС файлом работают
planetaexcel.ru
связей указывает кнопка
Содержание
- Сведения о совместном редактировании в Excel
- Общие сведения о совместном редактировании
- Принципы совместного редактирования
- Ситуации, когда может потребоваться адаптировать решение к среде совместного редактирования
- Надстройки, имеющие внутреннее состояние в памяти за пределами содержимого книги
- Обходной путь
- Надстройки, использующие события
- Сохранение событий
- События изменения
- Пример сценария: проверка данных
- Пример
- Пример сценария: согласованность данных
- Потенциальные проблемы с событиями изменений
- Пример сценария: визуализация данных
- Пример
- Пример сценария: область задач навигации
- См. также
- Поддержка и обратная связь
- Обновляемый многопользовательский макрос
Сведения о совместном редактировании в Excel
Узнайте, как работает совместное редактирование в Excel и как может потребоваться настроить надстройку или макрос для плавной интеграции с совместным редактированием.
Совместная работа доступна всем пользователям Excel Online. Эта функция также доступна в Excel для Windows Desktop, но только для Office 365 клиентов.
Общие сведения о совместном редактировании
Совместная работа позволяет редактировать книгу, размещенную в облаке (например, OneDrive, OneDrive для бизнеса или SharePoint Online) одновременно с другими пользователями. При каждом сохранении все, кто редактит книгу в это время, могут видеть изменения. Если включено автосохранение , вы можете просматривать изменения книги в режиме реального времени. Если вы не готовы к тому, чтобы другие пользователи могли видеть изменения, вы можете отключить автосохранение, пока не будете готовы предоставить общий доступ к изменениям и получать изменения других пользователей.
Принципы совместного редактирования
Excel автоматически синхронизирует изменения, внесенные в книгу (как пользователем, так и кодом). Например, предположим, что код выполняется в экземпляре пользователя и изменяет содержимое ячейки следующим образом: Range(«A1»).Value = «myNewValue» . Excel позаботится об отправке этого изменения другим соавторам.
Теперь предположим, что в экземпляре другого пользователя выполняется код, который проверяет содержимое этой ячейки следующим образом: MsgBox Range(«A1»).Value . Второй пользователь увидит значение «myNewValue» , заданное первым пользователем.
Однако Excel не будет автоматически синхронизировать переменные, созданные кодом за пределами содержимого книги. Например, предположим, что код считывает значение из ячейки, а затем загружает его в переменную:
Excel не будет автоматически обновлять значение , что myVariable не будет синхронизировано myVariable с переменной с тем же именем, созданной кодом, запущенным в экземплярах Excel других соавторов.
Ситуации, когда может потребоваться адаптировать решение к среде совместного редактирования
Так как существующие надстройки и макросы могут использовать Excel для удобной передачи изменений, внесенных в книгу, соавторам, обычно можно использовать код в этой новой среде без внесения изменений или обновлений. Однако в двух случаях может потребоваться адаптировать код, если вы хотите, чтобы он работал гладко в параметре совместного редактирования:
События BeforeRemoteChange и AfterRemoteChange были добавлены, чтобы вы могли управлять удаленными изменениями, если это применимо.
Надстройки, имеющие внутреннее состояние в памяти за пределами содержимого книги
Представьте себе надстройку, которая позволяет пользователю создавать пользовательские диаграммы на основе данных в книге Excel. Эта надстройка загружает данные для диаграмм пользователя в скрытый лист книги. Когда пользователь открывает файл, содержащий пользовательские диаграммы, надстройка считывает данные на скрытом листе и загружает диаграмму в память. Когда пользователь редактирует диаграмму, эта структура в памяти обновляется и записывается в файл перед каждым сохранением. Эта надстройка предполагает, что единственный раз, когда необходимо прочитать скрытый лист и загрузить его в память, — это открытие файла.
Совместная работа открывает другую возможность: скрытый лист может быть изменен другим пользователем, одновременно работающим с той же надстройкой. В этом случае диаграммы, просматриваемые пользователями, могут стать несинхронизированными. Например:
- Предположим, пользователь А открывает файл и начинает просматривать существующую пользовательскую диаграмму.
- Во время этого пользователь Б открывает тот же файл и начинает вносить изменения в настраиваемую диаграмму (например, изменяет тип диаграммы).
- Это изменение будет сохранено на листе надстройкой на компьютере пользователя B, но пользователь А никогда не увидит изменения, пока не перезагрузит файл.
Обходной путь
Старайтесь, насколько это возможно, не делать предположений о том, когда можно изменить данные книги. В этом случае можно изменить надстройку, чтобы она реагировала на событие AfterRemoteChange , а затем проверить значения скрытого листа, чтобы узнать, нужно ли их снова прочитать надстройке, чтобы разрешить пользователю A просматривать изменения диаграммы, внесенные пользователем B. Надстройка предназначена для запуска при изменении диапазона диаграммы. Это происходит при загрузке и может произойти при удаленном изменении. Таким образом, ваша логика в AfterRemoteChange должна повторно запустить надстройку.
Надстройки, использующие события
Надстройка или макрос могут уже подписаться на сохранение или изменение событий. С появлением совместного редактирования у вас могут возникнуть проблемы с:
Сохранение событий
При использовании в коде событий сохранения, таких как BeforeSave и AfterSave, могут возникнуть проблемы. Дополнительные сведения см. в разделах Потенциальные проблемы с событиями сохранения и Автосохранение.
События изменения
По умолчанию код обычно не требует обработки изменений от удаленных пользователей. Однако в некоторых случаях обработка удаленных изменений может вызвать проблемы. Здесь рассматриваются два примера сценариев.
Пример сценария: проверка данных
Событие изменения активируется при изменении определенного диапазона в книге. Затем код надстройки проверяет изменение и, если проверка завершается ошибкой, уведомляет пользователя во всплывающем окне. Однако если все удаленные пользователи, совместно работающие над этой книгой, получают уведомление о сбое проверки, не связанном с их собственными изменениями, это может привести к ухудшению работы.
Пример
В этом примере была создана диаграмма, показывающая, сколько было сделано для продажи различных десертов. Ни стоимость, ни количество проданных товаров не должны быть отрицательными, поэтому существует проверка, которая отображает сообщение пользователю. При отправке недопустимого значения удаленным пользователям сообщение проверки не должно отображаться для них.
Поэтому в этом случае нет необходимости подписываться на событие BeforeRemoteChange или AfterRemoteChange .
Рис. 1. Пример диаграммы, представляющей продажи десерта
Пример сценария: согласованность данных
Активируется событие изменения, и код надстройки синхронизирует данные в книге с данными в другой части книги или во внешней системе. Если удаленный пользователь получает изменение, из-за чего код надстройки синхронизирует одни и те же данные, это может привести к снижению производительности удаленного пользователя или дублированию данных во внешней системе.
Потенциальные проблемы с событиями изменений
Хотя обычно код обработчика событий не будет выполняться в ответ на изменения, внесенные удаленным пользователем, поведение по умолчанию , когда события изменений не запускаются, могут вызвать проблемы. Ниже приведены некоторые примеры проблем и способы их решения с помощью событий BeforeRemoteChange и AfterRemoteChange .
Пример сценария: визуализация данных
Надстройка отображает точки данных на карте на основе данных о расположении, найденных в диапазоне в книге. Если пользователь изменяет какие-либо данные о расположении, все удаленные пользователи должны получить это изменение, чтобы можно было обновить карту каждого пользователя.
Пример
Предположим, что вы создали настраиваемую карту. В этом примере можно добавить код для изменения данных о расположении, а затем обновить карту. Книга предоставляется другим пользователям в другом городе. Если автосохранение включено, изменение передается удаленному пользователю, но карта этого пользователя не будет обновлена.
Теперь используйте событие AfterRemoteChange , чтобы добавить код, который обновляет карту. Последующие изменения, отправленные удаленному пользователю, используются для обновления карты.
Рис. 2. Пример карты Лондона с несколькими достопримечательностями
Пример сценария: область задач навигации
Надстройка отображает все текущие вкладки книги в области задач, чтобы упростить навигацию. Если пользователь добавляет лист, все удаленные пользователи должны получить это изменение, чтобы в области задач каждого пользователя отображались ссылки на новый лист.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Обновляемый многопользовательский макрос
Я не умею программировать, но очень люблю!
Немного измененная цитата художника Васи Ложкина.
Статьей хочу поделиться опытом поднятия многопользовательской системы на VBA Excel.
На момент принятия решения о создании гибкого приложения, было порядка 7 макросов, работающих по большим объемам (несколько файлов от 20 тыс. строк до 370 тыс. строк), весящих от 50 килобайт до 12 мегабайт, каждый из которых был написан в соответствии со знаниями существующими на момент написания. Каждый макрос изменялся, дописывался, исправлялся в части ошибок, а учитывая, что этими макросами пользовались более 60 человек, не все из которых отслеживали изменения, постоянно дергали меня показывая очередную ошибку, которую я уже исправил и выслал на всех. Объяснять толпе народу как правильно пользоваться макросами, я бросил сразу, так как кто то не услышит, кто то не поймет о чем речь, кто-то возьмет уже отформатированную таблицу в работу с макросами, а я не могу предугадать кто и как изменяет таблицы.
Необходимо было сделать один код, а не 60 копий каждого изменения, высланного по почте.
Решение быстро пришло в голову, а гугл быстро выдал мне результаты по программному изменению кода VBA, которая в последствии была откатана на практике. Итак, текст без картинок не интересен, вот первая, это структура приложения, которая выглядет так:
Пользователь открывая файл, активируя событие excel «открытие книги» выполняет процедуру, находящуюся в файле «клиенте». Процедура формирует меню, читая файлы на сети. Нажимая на кнопку нужного макроса, выполняется действие по созданию модуля в клиенте, из файла находящегося на сети, выполняет действия и уничтожает процедуру внутри себя.
Что мы получаем:
— файл для любого макроса всегда один.
— нажимая на выполнение какого либо макроса, пользователь будет всегда пользоваться самым последним кодом, что упрощает поддержку макросов.
— возможность писать лог файл по ошибкам, с указанием пользователя, на случай необходимости избить того кто все испортил.
Далее будет много копипаста по коду, измененного под мои задачи, я бы с удовольствием указал авторов, но честно не знаю, много кода брал с буржуйских ресурсов, что то с российских, что то придумано мною, все это копилось в течении полугода минимум, так что заранее большое сорри перед первоисточниками, если чего, пишите, удалю.
Итак, практическая часть.
Вешаем событие на открытие книги:
Код не хитрый, концепция одна, дать пинок для дальнейших действий
Процедура create_module_for_file:
Три строки три действия, в начале нам необходимо подобрать файл с модулем. За это отвечает следующая функция:
Далее создаем модуль:
И пишем в модуль код из файла
Получив файлы, подгружаем меню.
При загрузке формируется меню, которое помещается в надстройки
По коду:
-для начала удалим, на случай если будет обновление:
Панель создали, теперь создаем непосредственно меню, которое будет создавать кнопки непосредственно по каждому файлу с макросами.
После того как меню создано, добавляются кнопки. Меню строилось по принципу файл -> одна кнопка. В свою очередь по одному файлу с макросом может быть несколько процедур, которые необходимо вызывать, вот в под меню их и суем. Данный код создает 3 кнопки:
Результат примерно вот:
В режиме написания изменил концепцию работы. Задача стояла в использовании последней версии кода при каждом нажатии «выполнить макрос». Учитывая эти обстоятельства, к клиенту будут загружаться определенные файлы, назовем их индексным файлам, то есть постоянно присутствующим после открытия файла модулям, это «menu» и «list action», а непосредственно файлы макросов будут подгружаться по нажатию кнопки. В чем их смысл: файл меню формирует меню 🙂
В меню мы видим событие, ссылающееся на процедуру «action1…x», которая сидит во втором файле «list_action». Посмотрим на его содержимое
Что мы делаем, во-первых нам необходимо удалить модуль для того что бы его заного загрузить и использовать, мало ли код изменен. Далее мы открываем файл, создаем модуль и пишем в него код из файла.
После этих манипуляций нам необходимо вызвать процедуру, выполняющую манипуляции, которые подразумевались нажатием на кнопку выполнения процедуры.
Здесь интересно)
Если мы укажем имя процедуры, которая находится непосредственно в коде выше, у нас процедура action11 ругнется на то что не может найти процедуру «kart_view», и правильно, ведь по факту ее на момент нажатия кнопки исполнения процедуры нет, на этот случай использован лайфхак, создается функция, которая в свою очередь вызывает эту процедуру, код вот:
То есть на момент вызова «kart_view» из «action11a», данная процедура уже будет загружена в модуль, vba подвоха не видит.
Получаемый итог: жмем на кнопку, загружается код в модуль, выполняется. В случае повторного выполнения модуль удаляется, грузится заново, выполняется. При закрытии файла книга отчищается от всего, для того что бы не занимать место и спокойно лежать до следующего открытия.
Еще пару слов по обработке больших файлов, думаю будет интересно. Как говорилось, файлы используются большого объема, более 300 тыс.строк, из которых необходимо выбрать, как правило, тыс. 10-30 и работать с ними.
Если бы меня с пол года назад спросили как сделать выборку, я бы не ведая сказал бы цикл с условием. В последствии было перепробовано много способов, опишу каждый, так, для инфо, кроме тех что можно реализовать стандартными функциями excel.
Исходные данные: есть таблица 300 тыс строк, известно 10 тыс значений, которые нам нужны.
1) Вначале я попытался сделать выборку циклом
Что получаем, если не завершать цикл, получается что нам 10000 раз необходимо перебрать 300000 строк для поиска результата. Отрабатыва vba будет примерно 500 строк в секунду, итого
3000000000/500 = 6000000 секунд, (100000 минут или 1666,66 часов или 69 дней или 9 недель или …)
А результат как правило нужен здесь и сейчас, ну или через пару минут максимум, так что сразу нет.
2) Второй используемый мною способ – работа с mysql сервером
Для работы с mysql сервером, который уже был, для другого проекта, был необходим драйвер mysql ODBC, их мне было известно 2, версия 3.51, и версия 5.1 Выбор пал на 3.51, так как второй, по обсуждениям его работы на форумах, не очень хорошо работал с кодировками, а базу хотелось в utf8
Драйвер мне поставили, и первая кочка, на которой я споткнулся – права доступа
То есть нужна учетная запись для подключения из вне, в нашем случае это будет vba-макрос который матерился так:
Покурив мануалы sql, нашел это
То есть, по запросу выше, создается учетная запись для любого пользователя с рут правами.
Естественно рут прав мне никто не дал и проект использующий mysql сервер для хранения данных, был «заморожен» так как в перспективе нужно было писать в базу данные, у меня было только чтение.
Для оценки эффективности: один и тот же макрос используя переборы с помощью циклов работал 59 секунд, с sql удалось сделать все то же самое за 3,5-4 секунды, то есть реально удалось ускориться более чем в 10 раз.
По коду хорошая статья вот здесь: egregors.blogspot.ru/2013/05/mysql-vba-excel-mysql.html
3) Продолжая курить тему sql, начал работу по работе с access.
Код получается адовый, но рабочий.
Данный способ работает медленнее чем mysql, почему то, но вполне приемлем для использования. Но не мне…
Отказался я от него в первый же раз, когда нужна была система при котором пользователь в определенной папке создает базу и пишет туда 2 таблицы по 300 тыс.строк, для их сравнения и вычисления. При тестах у меня получилась база размером около 600 метров, учитывая что в перспективе этим макросом одновременно может воспользоваться 50 человек, получается папка размером в примерно 25-30 гигов, за которую меня админы четвертовали бы сразу.
4) Собственно способ на котором я остановился. Да, работает медленнее второго и третьего способа, но данные недостатки компенсируются функциональностью. Sql запрос по книге
Вот… Если брать условия примера, на вскидку где то секунд 10 соберется строка для запроса, секунд 25 повисит запрос с выборкой, секунд 10 на отработку в зависимости от необходимого результата.
Как то так.
Источник
San Пользователь Сообщений: 41 |
Добрый день! Подскажите, пожалуйста, что нужно прописать в коде, чтобы эту форму могли одновременно заполнять несколько пользователей. Или может быть какой-то другой есть способ? Файл приложен. |
RAN Пользователь Сообщений: 7091 |
#2 12.01.2022 19:31:51 1. Мне кажется, что вы путаете кислое с пресным.
Для этого необходимо и достаточно включить общий доступ.
Или я сильно ошибаюсь, или ничего, ибо сие не возможно не только в Excel, но и в базах данных. Однако, ежели, все же, требуется Изменено: RAN — 12.01.2022 19:56:08 |
||||
ничего не нужно делать т.е. нужно в корне переосмыслить проект Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
New Пользователь Сообщений: 4581 |
#4 12.01.2022 22:37:50
MS Access |
||
_Igor_61 Пользователь Сообщений: 3007 |
#5 13.01.2022 08:01:39
Продолжу:
Лучше в самом начале продумать что и как должна делать программа, а не наращивать ее по мере возникновения новых хотелок. |
||||
129 / 67 / 31 Регистрация: 24.07.2018 Сообщений: 787 |
|
1 |
|
Многопользовательский доступ к книге с кучей макросов14.08.2019, 13:27. Показов 6580. Ответов 4
Добрый день. Сегодня подошел начальник, говорит что к документу эксель можно сделать многопользовательский доступ, на что я ответил что для наших книг такое не возможно.
0 |
370 / 268 / 93 Регистрация: 18.11.2015 Сообщений: 990 |
|
14.08.2019, 15:01 |
3 |
Проблема может быть здесь:
где менеджеры набивают заказы То есть, если они вбивают заказы одновременно на один лист, несомненно будет коллизия. И excel предложит выбрать чей заказ оставить, второй соответственно потеряется.
0 |
129 / 67 / 31 Регистрация: 24.07.2018 Сообщений: 787 |
|
14.08.2019, 15:08 [ТС] |
4 |
ArtNord, В общем я протестировал немного. Это надо всю книгу переделывать. Т.к. При удалении записей в архив уже все дублируется.Номера заказов будут смешиваться. Идея так себе. Добавлено через 2 минуты
0 |
370 / 268 / 93 Регистрация: 18.11.2015 Сообщений: 990 |
|
14.08.2019, 15:10 |
5 |
.Номера заказов будут смешиваться. Свой префикс каждому менеджеру
+ sql самый лучший вариант
0 |