Excel макрос доступ к файлу

Содержание

  1. Обновляемый многопользовательский макрос
  2. Excel макрос доступ к файлу
  3. Обновляемый многопользовательский макрос

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

Я не умею программировать, но очень люблю!
Немного измененная цитата художника Васи Ложкина.
Статьей хочу поделиться опытом поднятия многопользовательской системы на 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 на отработку в зависимости от необходимого результата.
Как то так.

Источник

Excel макрос доступ к файлу

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

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

как исправить ? офис у всех сотрудников разный: у меня 2013, у других 2010/2007

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

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

как исправить ? офис у всех сотрудников разный: у меня 2013, у других 2010/2007 lok888

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

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

как исправить ? офис у всех сотрудников разный: у меня 2013, у других 2010/2007 Автор — lok888
Дата добавления — 09.03.2017 в 03:22

Источник

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

Я не умею программировать, но очень люблю!
Немного измененная цитата художника Васи Ложкина.
Статьей хочу поделиться опытом поднятия многопользовательской системы на 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 на отработку в зависимости от необходимого результата.
Как то так.

Источник

129 / 67 / 31

Регистрация: 24.07.2018

Сообщений: 787

1

Многопользовательский доступ к книге с кучей макросов

14.08.2019, 13:27. Показов 6547. Ответов 4


Студворк — интернет-сервис помощи студентам

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



0



370 / 268 / 93

Регистрация: 18.11.2015

Сообщений: 990

14.08.2019, 15:01

3

Проблема может быть здесь:

Цитата
Сообщение от MaksimkaI
Посмотреть сообщение

где менеджеры набивают заказы

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



0



129 / 67 / 31

Регистрация: 24.07.2018

Сообщений: 787

14.08.2019, 15:08

 [ТС]

4

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

Добавлено через 2 минуты
Мне легче на c# все переписать + sql.



0



370 / 268 / 93

Регистрация: 18.11.2015

Сообщений: 990

14.08.2019, 15:10

5

Цитата
Сообщение от MaksimkaI
Посмотреть сообщение

.Номера заказов будут смешиваться.

Свой префикс каждому менеджеру

Цитата
Сообщение от MaksimkaI
Посмотреть сообщение

+ sql

самый лучший вариант



0



Реализовать многопользовательский доступ к файлу с макросами

Serge_007

Дата: Понедельник, 10.04.2023, 14:58 |
Сообщение № 1

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Всем привет

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

Поясню. В файле с макросами (буду называть его «Главный файл») куча кода «на все случаи жизни». В файлах пользователей только процедуры вызова этих макросов из «Главного файла»
Всё работает отлично до тех пор, пока два или более пользователя не запустят любые из макросов ОДНОВРЕМЕННО
В этом случае у первого пользователя макрос успевает сработать, а у остальных — появляется сообщение об ошибке VBA (доступ к файлу) и зависает Excel

Есть светлые мысли как сохранить структуру как на картинке выше и сделать её работоспособной при любых действиях пользователя?

К сообщению приложен файл:

3176338.png
(23.4 Kb)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Gustav

Дата: Понедельник, 10.04.2023, 16:13 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 2398


Репутация:

985

±

Замечаний:
0% ±


начинал с Excel 4.0, видел 2.1

Может, «кучу кода» в модуль класса завернуть? Всё-таки класс — это тип. Тогда при использовании, по идее, экземпляр класса у каждого пользователя свой должен создаваться по New и мешать друг другу не должны…

Я фантазирую, не более — типа «мозговой штурм», сам такого не делал (на многих пользователях), но, пользуясь случаем, попробовать можно. Тем более, не своими руками ;)


МОИ: Ник, Tip box: 41001663842605

 

Ответить

Serge_007

Дата: Понедельник, 10.04.2023, 16:29 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

«кучу кода» в модуль класса завернуть?

Что это даст?
Ведь проблема в одномоментном обращении к «Главному файлу»…

Вот пример кода из файла пользователя:[vba]

Код

‘id111 (элемент: button, атрибут: onAction), 2010+
Private Sub onAction_id111(control As IRibbonControl)
        Application.ScreenUpdating = False
        Workbooks.Open ThisWorkbook.Path & «MAIN_Macro.xls»
        Application.Run «‘MAIN_Macro.xls’!Module1.Macro1»: Workbooks(«MAIN_Macro.xls»).Close False
        Application.ScreenUpdating = True
End Sub

[/vba]

Код открывает «Главный» файл, запускает из него нужный макрос и закрывает «Главный» файл без сохранения
И если в тот момент, когда «Главный» файл открыт и из него запущен макрос, кто-то ещё пытается так же обратиться к макросу в «Главном» файле — происходит ошибка


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Gustav

Дата: Понедельник, 10.04.2023, 17:43 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 2398


Репутация:

985

±

Замечаний:
0% ±


начинал с Excel 4.0, видел 2.1

Т.е. мы не говорим о том, чтобы создать из главного файла надстройку или подключать его как-то как библиотеку через Tools References?

Нужно именно так по-простому: открывать, пользовать, закрывать? Общий доступ к нему, конечно же, включен?


МОИ: Ник, Tip box: 41001663842605

 

Ответить

Serge_007

Дата: Понедельник, 10.04.2023, 17:52 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

создать из главного файла надстройку или подключать его как-то как библиотеку через Tools References?

Как надстройку? Скорее нет
То же касается и подключений
Пользователи не должны трогать «Главный» файл, да и не умеют они этого…
Но опять-таки — что даст преобразование его в надстройку?
При одномоментном «подключении» нескольких пользователей опять-таки будет конфликт доступа

Нужно именно так по-простому

Не, нужно как угодно — лишь бы работало)

Общий доступ к нему, конечно же, включен?

Нет
Честно — даже не думал об этом, потому что общий доступ — это настройка Excel, а тут проблема с конфликтом VBA
Но я завтра попробую включить — вдруг получится?

Спасибо за идеи yes


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

RAN

Дата: Понедельник, 10.04.2023, 19:29 |
Сообщение № 6

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

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

К сообщению приложен файл:

6934497.jpg
(13.5 Kb)


Быть или не быть, вот в чем загвоздка!

 

Ответить

Nic70y

Дата: Вторник, 11.04.2023, 07:40 |
Сообщение № 7

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

Сергей, видимо есть причина по которой нельзя засунуть макросы в файлы пользователей.
А что это за причина?

Сохрани файл как надстройку

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

работаем на сервере, то же периодически сталкиваюсь с такими вопросами.
только менеджерам я сделал копии «главного файла»


ЮMoney 41001841029809

 

Ответить

Serge_007

Дата: Вторник, 11.04.2023, 11:12 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

есть причина по которой нельзя засунуть макросы в файлы пользователей

Можно, это План Б :)
Но хотелось бы этого избежать
Смысл в том, что в будущем возможны изменения, которые потребуют корректировки макросов
Так вот хотелось бы корректировать один раз в «Главном» файле, чем в каждом файле пользователя

Сохрани файл как надстройку, и подключи к рабочим файлам через Referens

Подключать надо КАЖДЫЙ файл пользователя вручную?


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Nic70y

Дата: Вторник, 11.04.2023, 12:21 |
Сообщение № 9

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

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

именно с такой (наверное) ситуацией я и столкнулся.
файлы пользователей (у нас) это в принципе отчет, калькулятор и т.п. — данные в него юзер не вносит.
файл пользователя, при открытии сравнивает свою версию с моим файлом
и если они не совпадают, открывает файл «Обновление» вставляет свои Path и Name, закрывается,
в файле «Обновление» одна кнопка — Обновить
без вариантов, макрос Открывает мой файл и сохраняет его как Path и Name.
все — у юзера новый файл, но это конечно, когда — данные в него юзер не вносит


ЮMoney 41001841029809

 

Ответить

Serge_007

Дата: Вторник, 11.04.2023, 12:35 |
Сообщение № 10

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

данные в него юзер не вносит

В моем случае — пользователи со своими файлами работают, и данные вносят
Но на этом разница заканчивается :)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Nic70y

Дата: Вторник, 11.04.2023, 12:50 |
Сообщение № 11

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

пользователи со своими файлами работают

вот жеж… гады не хорошие


ЮMoney 41001841029809

 

Ответить

RAN

Дата: Вторник, 11.04.2023, 15:31 |
Сообщение № 12

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Да, каждый.


Быть или не быть, вот в чем загвоздка!

 

Ответить

VBAdevelope

Дата: Вторник, 11.04.2023, 15:51 |
Сообщение № 13

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


2013

А не вариант просто сделать данный файл доступным только для чтения или по вызову создавать локальную копию с именем юзера?


Макросы VBA Excel, Word на заказ.
Сказать спасибо на Юмани: 410015093172871

 

Ответить

Gustav

Дата: Вторник, 11.04.2023, 15:53 |
Сообщение № 14

Группа: Друзья

Ранг: Старожил

Сообщений: 2398


Репутация:

985

±

Замечаний:
0% ±


начинал с Excel 4.0, видел 2.1

Честно — даже не думал об этом, потому что общий доступ — это настройка Excel, а тут проблема с конфликтом VBA
Но я завтра попробую включить — вдруг получится?

Серж, попробовал Общий доступ-то? Получилось что-нибудь?


МОИ: Ник, Tip box: 41001663842605

 

Ответить

Serge_007

Дата: Вторник, 11.04.2023, 16:34 |
Сообщение № 15

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Жесть
Вроде работает, но файлов почти полтысячи…


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Serge_007

Дата: Вторник, 11.04.2023, 16:37 |
Сообщение № 16

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

сделать данный файл доступным только для чтения или по вызову создавать локальную копию с именем юзера

В файл должна записываться информация по каждому из файлов пользователя


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Serge_007

Дата: Вторник, 11.04.2023, 16:38 |
Сообщение № 17

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

попробовал Общий доступ-то?

Пока нет, пробовал вариант Андрея с надстройкой


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

RAN

Дата: Вторник, 11.04.2023, 18:20 |
Сообщение № 18

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Если файлов 500, а пользователей 10, то проще просто всем подключить надстройку.


Быть или не быть, вот в чем загвоздка!

 

Ответить

Serge_007

Дата: Вторник, 11.04.2023, 22:56 |
Сообщение № 19

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Пользователей больше чем файлов, приблизительно в 2,5 раза…


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Serge_007

Дата: Среда, 12.04.2023, 11:46 |
Сообщение № 20

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Если файлов 500, а пользователей 10

Пользователей много, но подключать надо не пользователей. а файлы, т.е. важно кол-во файлов

На данный момент тема закрыта, возможно позже ещё вернусь к ней

Все огромное СПАСИБО!


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

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

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

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

если это правда, то 1. какая разница между диапазоном и таблицой и 2. как  перевести из таблиц в диапазоны.

пожалуйста помогите

Хитрости »

12 Июнь 2012              187283 просмотров


Каждому пользователю свой лист/диапазон

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

  • Разграничение доступа к ячейкам стандартными средствами

Разграничение прав доступа при помощи VBA

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

Разграничение доступа к ячейкам стандартными средствами

Для разграничения доступа к ячейкам на листе можно воспользоваться инструментом Разрешить изменение диапазонов(Allow Users to Edit Ranges), расположенном на вкладке Рецензирование(Review), группа Изменения(Changes):
Разрешить изменение диапазонов
Это стандартный инструмент, для использования которого нет необходимости подключать что-то дополнительно и он относительно прост в использовании.
Данный инструмент позволяет назначить каждому отдельному диапазону ячеек свои пароли, диапазоны могут располагаться на разных листах книги или на одном листе:
Пример таблицы
Например, сотрудники коммерческого отдела в общем файле бюджета(картинка выше) должны иметь возможность заполнять только ячейки строк со статьями выручки (строки 8-11, 13-14), а производственный отдел строки 18-22, в которых расположены статьи по расходам производственного отдела. При этом сотрудники коммерческого отдела не должны иметь возможность изменять данные статей другого отдела – каждый только данные своих статей.
Для начала необходимо для сотрудников каждого отдела создать отдельные диапазоны, к которым они будут иметь доступ. Для этого переходим на вкладку Рецензирование(Review) -группа Изменения(Changes)Разрешить изменение диапазонов(Allow Users to Edit Ranges). Появится диалоговое окно создания/изменения диапазонов:
Создание диапазонов
Нажимаем Создать(New). Появится другое окно, в котором необходимо указать имя диапазона

(Title)

(

коммерческий

), доступные для изменения ячейки

(Refers to cells)

(

C8:N11;C13:N14

) и вписать пароль

(Range password)

(

1111

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

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

Точно так же создаем второй диапазон – «производственный», но для него указываем другой пароль(например –

2222

). После этого у нас в главном окне управления диапазонами будет два диапазона:
Просмотр диапазонов
Здесь можно еще раз проверить все ли правильно указано, при необходимости изменить (так же изменить диапазоны можно в любое время, вызвав данное окно с вкладки Рецензирование(Review)Разрешить изменение диапазонов). После этого нажимаем Применить(Apply).
Теперь, чтобы такая защита сработала необходимо непосредственно защитить лист. Это можно сделать либо сразу из этого же окна, нажав кнопку Защитить лист, либо закрыв окно перейти на вкладку Рецензирование(Review) и в группе Изменения(Changes) выбрать Защитить лист(Protect sheet):
Параметры защиты листа
В появившемся окне проставляем галочки для тех действий, которые мы хотим разрешить делать пользователю на защищенном листе без ввода пароля(например, на картинке выше помимо стандартного выделения ячеек разрешена вставка столбцов. Подробнее про защиту листов и ячеек можно прочитать в статье — Защита листов и ячеек в MS Excel). Указываем пароль (например

3333

), подтверждаем пароль в появившемся окне и нажимаем Ок. Лист защищен.

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

Теперь остается сообщить сотрудникам отделов их пароли: производственный — 2222, коммерческий – 1111.
При первой попытке изменить данные в ячейках C8:N11;C13:N14- будет запрошен пароль на изменение ячеек созданного диапазона «коммерческий» (1111):
Доступ к диапазону
Если пользователю известен пароль для диапазона – его необходимо будет ввести лишь один раз. В дальнейшем для ввода данных в ячейки этого диапазона вводить пароль не придется до тех пор, пока файл не будет закрыт. После повторного открытия файла пароль необходимо будет указать заново.
Однако, если сотрудник другого отдела попытается изменить ячейки производственного отдела и пароль ему неизвестен – изменить данные этих ячеек не получится.
Также ни сотрудники коммерческого отдела, ни сотрудники производственного отдела не смогут изменить данные столбцов А и В(№ и наименование статьи), заголовки таблицы(строки с 1-ой по 7-ю) и строки с итоговыми формулами (12, 15 и т.д. – закрашенные зеленым). Они смогут изменять только те ячейки, которые перечислены в назначенных каждому отделу диапазонах. Внести данные в другие ячейки(не перечисленные в разрешенных диапазонах) можно будет исключительно сняв общий доступ с книги, а после этого защиту с листа –Рецензирование(Review) -группа Изменения(Changes)Снять защиту листа(Unprotect sheet). Но снять общую защиту сможет только тот, кто её создавал и кому известен «главный» пароль. Как правило это администратор или некий «смотрящий» файла и другие пользователи этот пароль не знают.
Плюс подобного метода в том, что такая защита может быть установлена для книги в общем доступе(подробнее про книги с общим доступом можно прочитать в статье — Ведение журнала сделанных в книге изменений).
Что необходимо учитывать для книг с общим доступом: создавать диапазоны для пользователей и устанавливать защиту на лист необходимо ДО назначения книге общего доступа, т.к. после того, как книге будет назначен общий доступ изменять параметры защиты листов и книги запрещено. При этом запрещены как установка защиты так и её снятие.
Минус данного метода в том, что нет дружественного интерфейса снятия защиты. Например, при попытке изменить какие-то ячейки одного из назначенных диапазонов нет никакой информации о том, что это за диапазон(коммерческий или производственный). Что в свою очередь может запутать пользователя. Так же данным методом невозможно скрыть листы, либо отдельные строки и столбцы. Можно лишь запретить изменение ячеек.


Разграничение прав доступа при помощи VBA
Самый большой минус всех методов ниже:

они

не будут работать при отключенных макросах

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

Плюс подобного подхода

— мы практически не ограничены в правилах: можем скрывать от отдельных пользователей любые листы, строки и столбцы, защищать отдельные ячейки и т.п. Я ниже приведу несколько вариантов реализации защиты кодами, а вам останется лишь выбрать тот, который больше подходит под задачу. Первые три больше демонстрационные, чтобы показать что можно сделать. А вот последний пример — Практический пример с использованием администратора — наиболее приближен к задачам, применяемым в работе и наиболее удобен для распространения среди пользователей.
Проект VBA во всех файлах открыт для просмотра и изменений. Однако перед распространением решений в реальности лучше его закрыть от просмотра и изменений — Как защитить проект VBA паролем.

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

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

    В форме необходимо выбрать пользователя и указать пароль, соответствующий этому пользователю. Важно: Пароли и список доступных листов можно редактировать на очень скрытом листе «Users». Для каждого пользователя можно указать несколько листов. Указывать имена листов необходимо в точности такие же, какие они на самом деле. Это значит, что и регистр букв и каждый пробел должен быть учтен. Для разделения записей с несколькими листами используется точка-с-запятой(Лист1;Лист2;Лист3).
    На листе «Main» перечислены имена пользователей, пароли для них и доступные для просмотра листы. Данная информация указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе «Users».

    Важно: файл может работать нестабильно в книгах с общим доступом.

    Скачать пример

      Tips_Macro_Sheets_for_Users.xls (84,5 KiB, 10 565 скачиваний)

  • Доступ пользователю к определенным листам и возможность изменять только отдельные ячейки
    Помимо того, что можно ограничить пользователю свободу выбора листов, ему можно еще и ограничить диапазоны ячеек, которые ему разрешено изменять. Иначе говоря, человек сможет работать только на Лист1 и Лист2 и вносить изменения только в указанные для каждого из листов ячейки. Файл с примером работает так же, как и пример выше: открываем книгу — видим только один лист «Main», жмем кнопку. Появляется форма, выбираем пользователя. Появятся только разрешенные листы и на этих листах можно изменять только те ячейки, который мы разрешим в настройках. При этом диапазоны для изменения можно указать для каждого листа разные. Важно: Пароли, список доступных листов и диапазонов можно редактировать на очень скрытом листе «Users». Для этого его необходимо отобразить, как описано в статье: Как сделать лист очень скрытым.
    Чтобы разрешить изменять диапазоны на Лист1 — А1:А10 и А15:А20, а на Лист2 — В1:В10 и В15:В20, необходимо на листе «Users» указать листы: Лист1;Лист2 и диапазоны: A1:A10,A15:A20;B1:B10,B15:B20
    На листе «Main» пароли и фамилии указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе «Users».
    Пароль на листы указывается напрямую в коде. Для изменения пароля необходимо перейти в редактор VBA(Alt+F11), раскрыть папку Modules, выбрать там модуль sPublicVars и изменить значение 1234 в строке: Public Const sPWD As String = «1234»:
    Сменить пароль на листы

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

    Скачать пример

      Tips_Macro_Sheets_Rng_for_Users.xls (86,0 KiB, 4 882 скачиваний)

  • Доступ к определенным листам и скрытие указанных строк/столбцов
    И еще чуть-чуть испортим жизнь пользователю: каждому пользователю видны только свои листы и виден только свой диапазон на этом листе. Точнее — строка или столбец. Все так же, как и в файлах выше(Пароли, список доступных листов и диапазонов можно редактировать на очень скрытом листе «Users». Для этого его необходимо отобразить, как описано в статье: Как сделать лист очень скрытым).
    На листе «Users» доступны следующие настройки: в самом правом столбце необходимо указать скрывать столбцы(C) или строки(R) указанного диапазона.
    Например, указаны диапазоны на Лист1 — А1:А10 и А15:А20, а на Лист2 — В1:В10 и В15:В20, а в правом столбце — R;C. Значит на Лист1 будут скрыты строки 1:10, 15:20, а на Лист2 столбец В. Почему так заумно? Потому что нельзя скрыть только отдельные ячейки — можно скрыть лишь столбцы или строки полностью.
    На листе «Main» пароли и фамилии указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе «Users».
    Пароль на листы указывается напрямую в коде. Для изменения пароля необходимо перейти в редактор VBA(Alt+F11), раскрыть папку Modules, выбрать там модуль sPublicVars и изменить значение 1234 в строке: Public Const sPWD As String = «1234»:
    Сменить пароль на листы

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

    Скачать пример

      Tips_Macro_Sheets_Hide_Rng_for_Users.xls (100,0 KiB, 4 537 скачиваний)

  • Практический пример с использованием администратора
    Все примеры выше имеют один маленький недостаток: при открытии файла виден один лист и надо жать на кнопку, чтобы выбрать пользователя. Это не всегда удобно. Плюс есть недостаток куда хуже: для изменения настроек всегда надо вручную отображать лист настроек, а может и другие листы. Поэтому ниже я приложил файл, форма в котором открывается сразу после открытия файла:
    Форма авторизации
    Если выбрать «Пользователь» — admin, указать «Пароль» — 1, то все листы файла будут отображены. Другим пользователям будут доступны только назначенные листы. Таким образом, пользователь, назначенный администратором сможет легко и удобно менять настройки и права доступа пользователей: добавлять и изменять пользователей, их пароли, листы для работы(они доступны на листе Users, как и в файлах выше). После внесения изменений надо просто закрыть файл — он сохраняется автоматически, скрывая все лишние листы.
    При этом если пользователя нет в списке или пароли ему неизвестны, то при нажатии кнопки Отмена или закрытии формы крестиком файл так же закроется. Таким образом к файлу будет доступ только тем пользователям, которые перечислены в листе Users, что исключает доступ к файлу посторонних лиц.
    Если макросы будут отключены, то пользователь увидит лишь один лист — с инструкцией о том, как включить макросы. Остальные листы будут недоступны.
    В реальных условиях не лишним будет закрыть доступ к проекту VBA паролем: Как защитить проект VBA паролем

    Важно: файл может работать нестабильно в книгах с общим доступом.

    Скачать пример

      Tips_Macro_UsersRulesOnStart.xls (72,0 KiB, 6 294 скачиваний)


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

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


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



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

Совместная работа с книгой Microsoft Excel

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

​Смотрите также​ средствами VBA сделать​ в Access не​ одном файле находятся​ заходят… заходят только​ при сохранении полученного​: Не доступ слетает,​ файл в режиме​ 2 тонких клиента​ ОК.​Удалять листы.​Совет:​ то кликните по​ том случае, если​.​Совместная работа предусматривает постоянный​Кроме того, все в​При разработке крупных проектов​ так, чтобы при​ надо будет углубляться,​ формулы, которые содержат​ по одному и​ результата, выводилось сообщение​ а конкретного пользователя​

​ общего доступа. Но​ + 1 толстый,​

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

​Открываем меню Microsoft Office.​Объединять либо разделять ячейки.​ Если вы хотите отправить​ кнопке​ нужно создать новую​Далее открывается окно просмотра​ контроль и координацию​ том же окне​ зачастую не хватает​ открытии книги выполнялась​ его роль в​ ссылки на другой​ при этом могут​ о переименовании данного​ отключают.​ переодически с ним​

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

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

  1. ​ кнопку​.​ или выполнить любое​​ нужно произвести настройки​​ группы.​ можно настроить параметры​​ К такой работе​​ изменять книгу нескольким​ пассивная (но очень​​У вас какая​​В чём проблема?​

    Переход к окну доступа к книге в Microsoft Excel

  2. ​ таблицей, а сам​ к книге… в​IT-ки говорят, что​ общей папке.​Когда книга открыта, нажимаем​​ и т.д.).​Поделиться​​После вышеуказанных действий общий​ другое действие из​​ отбора тех изменений,​​Чтобы посмотреть действия, совершенные​ одновременной работы. Это​

    Окно управление доступа к книге в Microsoft Excel

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

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

​ с их стороны​Возникают такие проблемы:​ на кнопку Microsoft​Выход: отключить общий доступ​в правом верхнем​ доступ к файлу​ вышеуказанного перечня? Выход​ которые мы хотим​ конкретным пользователем во​ можно сделать сразу​ специалистов. Естественно, что​ нет, то принудительно​​ данные).​​ осуществляет копирование данных​ в ней нет…​ этой таблицей остался​

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

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

​ открывали?​ все в порядке,​1. При сохранении​ Office. Переходим на​ – выполнить запрещенную​ углу экрана, а​ будет закрыт, а​ есть, и он​ утвердить или отклонить.​ время работы над​ же во время​ у каждого из​ включать этот режим​у такой связки​ из файла-базы?​

  1. ​Guest​​ неизменным, то есть​​Там отображается список​

    Переход во вкладку Подробнее в Microsoft Excel

  2. ​ разбирайтесь с Excel.​ файла периодически возникает​ вкладку «Параметры Excel»​ задачу – снова​ затем выберите элементы​ журнал исправлений будет​

    ​ довольно простой: нужно​ Операции в данном​ книгой, находясь во​ включения режима совместной​ них должен быть​ для этой книги?​

    ​ два огромных плюса:​ZamoK​​: Рецензирование — Доступ​​ вся таблица пустая?​ текущих сессий работы​В Excel вроде​ конфликт и программа​ (в нижней части​ включить доступ.​Копировать ссылку​ очищен. Информацию о​ временно отключить общий​ окне выполняются по​ вкладке​ работы, а можно​ доступ к документу,​Haken​1. автоматически поддерживается​: Нет связи постоянной​

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

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

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

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

​ отредактировать параметры чуть​ который является объектом​: Как ни странно,​

  1. ​ многопользовательская система​ нет и она​​ разрешить менять нескольким​​ организовать доступ к​ (и за одно​​ как надо.​​ файла, что не​

    Переход к открытию файла в Microsoft Excel

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

    Открытие файла в Microsoft Excel

  3. ​ нашел в справке​2. данные лежат​ не нужна, просто​ пользователям. Делал?​ изменениям только конкретным​ — список «зависших»​Пользователи говорят, что​​ приемлемо.​​ — «Имя пользователя».​ задач:​​.​​ увидеть в виде​

    Переход в Параметры в Microsoft Excel

  4. ​ а затем подключить​​ в предыдущем разделе.​​«Исправления»​​ ими управлять может​​ связи с этим​​ :)​​ отдельно, код -​ при открытии рабочего​По диапазонам не​ людям?​ старых не корректно​ все работало пока​​2. Пропадают примечания,​​ Вводим опознавательную информацию​

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

​Недопустимо​Если на предыдущем шаге​

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

​ таблицы только на​ возможность совместной работы​ После того, как​, которая находится в​

  1. ​ только главный пользователь,​ очень актуальным становится​Нужно добавить в​ отдельно. внося исправления​ документа он копирует​​ скажу не сталкивался.​​Dophin​​ завершенных сессий работы,​​ не перешли на​ сетка. При редактировании​​ (имя, ник-нейм).​​Реально​ вы нажали кнопку​ листе​​ снова.​​ настройки внесены, жмем​

    Переход в окно выделения исправления в Microsoft Excel

  2. ​ группе инструментов​ который координирует общую​ вопрос обеспечения одновременного​ модуль «ЭтаКнига»​ в программу, Вы​ лист1 из данных​igorsss​: ексель это однопользовательское​

    ​ который приходится иногда​ тонкого клиента.​ файла (форматировании ячеек)​Все. Можно редактировать информацию,​Вставлять либо удалять группу​ «Поделиться», то каждый​«Журнал»​Когда работа над проектом​ на кнопку​«Изменения»​ работу с файлом.​ коллективного доступа. Программа​Private Sub Workbook_Open()​ не изменяете данные.​ и далее работает​

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

    ​: конечно делал… всё​ приложение. запомните это.​ чистить, к стати).​IT-ки же говорят,​ на одном рабочем​ вводить новую. После​

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

  3. ​ ячеек​ пользователь получит сообщение​, если соответствующие действия​ закончена, или, в​​«OK»​​на ленте. В​Переходим во вкладку​ Excel имеет в​
    • ​If Not ActiveWorkbook.MultiUserEditing​ можно улучшать код​
    • ​ с актуальной копией.​ как в помощи​
    • ​ все эти попытки​Если в этом​
    • ​ что разбирайтесь с​ месте, форматирование не​

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

    ​ работы – сохранить.​​Добавлять строку или столбец​​ электронной почты. Сообщение​ по сохранению данной​ случае необходимости внесения​.​ открывшемся меню кликаем​«Подробнее»​

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

    ​ своем распоряжении инструменты,​​ Then​​ уже работающего приложения.​ Но вот при​ написано :(:(​ создать из него​ списке выбрать какого-то​ Excel.​

    ​ отображается на другом​Случается, что при открытии​Добавлять либо изменять условные​ будет отправлено с​ информации были проведены​ изменений в файл,​В следующем окне отображаются​ по кнопке​.​ которые могут его​​ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, _​​nerv​

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

  4. ​ открытии второго рабочего​igorsss​ многопользовательскую БД -​ работающего пользователя и​

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

​Как решить эту​ рабочем месте.​ книги Excel с​ форматы​ вашего адреса электронной​

  1. ​ ранее.​​ о списке которых​​ все исправления, которые​​«Выделить исправления»​​Тут можно указать, хранить​​ предоставить. Давайте разберемся​​accessMode:=xlShared​

    Переход к рецензированию исправлений в Microsoft Excel

  2. ​: Так и есть​ документа на другой​: я это делал,​ от лукавого.​ нажать «Удалить», то​ проблему не пойму.​Помогите разобраться в​ совместным доступом к​Работать с существующими форматами​ почты. Вы получите​Как видим, программа Эксель​ мы говорили в​ удовлетворяют выбранным нами​.​​ ли журналы изменений,​​ в нюансах работы​

    Просмотр испралений в Microsoft Excel

  3. ​End If​Quote​ машине, происходит ругань​ но после выбора​Микки​ он ничего не​ Хотела удостовериться в​ чем проблема…​ файлу появляется запись​Включать или изменять инструмент​ его копию, так​ предоставляет возможность включения​ предыдущем разделе, следует​ ранее параметрам. Выделив​Открывается окно просмотра исправлений.​

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

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

​ и если хранить,​ приложения Эксель в​End Sub​(nilem)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Ну, вот например,​ что кто-то уже​ автоматом подставляется ФИО…​: Не согласен с​ заметит пока не​ правильности настройки файла​Alex_ST​ «Файл заблокирован». Сохранить​ «Проверка данных»​ что будете знать,​ общего доступа к​

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

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

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

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

  3. ​ еще, как сделать,​ двух машинах. И​ дех пор пока​igorsss​ малого количества пользователей​ своей работы. О​Alex_ST​ быть, что тонкие​ последующем открытии оказывается,​ проверки​Если вы нажали кнопку​​ работы с ним.​​Прежде всего, все участники​

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

​ нажав соответствующую кнопку,​

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

​ становится общей, автоматически​ 30 дней).​ одной книгой.​ чтобы он не​ одновременно нажали кнопку​ не закроешь первый​: с ячеек снят​ 2-3 работает корректно​ вот тогда его​

  • ​: Явно Офис-сервер криво​
  • ​ и толстые клиенты​
  • ​ что общий доступ​
  • ​Создавать или редактировать диаграммы,​
  • ​Поделиться​
  • ​ Кроме этого, с​
  • ​ должны сохранить вносимые​ расположенную внизу окна​

​ включается отслеживание исправлений,​Также тут определяется, как​Скачать последнюю версию​ спрашивал про перезапись​ запуска макроса. Ведь​ рабочий документ. Такое​ флаг защищать ячейку​ (у меня на​ будет ждать неприятный​ сконфигурён. Наверное, не​ или просто файл​ отключен. Возможные причины​ сводные отчеты​, пользователи получат сообщение​ помощью специальных инструментов​ изменения и выйти​ под перечнем, можно​ о чем свидетельствует​ обновлять изменения: только​ Excel​ файла, а сам​ не должно работать?​ ощущение что рабочий​

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

​igorsss​ фирме уже несколько​ сюрприз — «Потеряна​ только в Excel​ в режиме общего​ проблемы:​Работать с имеющимися диаграммами​ с предложением открыть​ можно отслеживать действия​

  1. ​ из файла. С​ принять данный пункт​ галочка, установленная напротив​ при сохранении книги​Эксель может не только​ сохранял. Но где-то​
  2. ​ Или все-таки выполняется​ документ коприрует лист1,​: понятно. спасибо!​ лет) -отведи им​​ связь с файлом»​​ проблемы возникли после​​ доступа на расшаренном​​Одну и ту же​ и сводными таблицами​ файл. Они могут​​ отдельных участников рабочей​​ документом остается работать​

    Переход в окно выделения исправлений в Microsoft Excel

  3. ​ или отказаться от​ соответствующего пункта.​ (по умолчанию) или​ предоставить общий доступ​​ это было…​​ в какой-то последовательности?​​ но связь так​​ZamoK​​ грамотно делянку и​​ или типа Вашего.​​ перехода? Другие приложения​​ ресурсе — пофигу?​ часть документа редактируют​Вставлять или редактировать рисунки​ щелкнуть ссылку, чтобы​​ группы. Данный режим​​ только главный пользователь.​ него. Также существует​​Фиксируются все изменения, но​ через заданный промежуток​​ к файлу, но​P.S.: просмотр и​Смотря что делает​ и оставляет активной.​: Уважаемые ГУРУ !​​ пусть пасутся на​​Ещё такое сообщение​

    Включение режима внесения исправлений на отдельном листе в Microsoft Excel

  4. ​ Офиса тоже кривятся?​Вдруг, глюк именно​ несколько пользователей. К​​ и графические объекты​​ открыть книгу. Книга​ имеет все-таки некоторые​Если нужно сохранить журнал​ возможность группового принятия​ на экране по​

    Исправления вынесены на отдельный лист в Microsoft Excel

  5. ​ времени.​ решить некоторые другие​ редактирование макросов в​ макрос.​​ Причем монопольно!​​Суть вопроса в​ своей.​​ может выскочить при​​А IT-шников фиг​

    Переход к отключению общего доступа в Microsoft Excel

  6. ​ в самом режиме​ примеру, вбивают разные​Просматривать имеющиеся рисунки и​​ откроется в Excel​​ функциональные ограничения, которые,​ операций после снятия​ или отказа от​ умолчанию они отображаются​​Очень важным параметром является​ задачи, которые появляются​​ общем доступе не​Quote​Karataev​​ том, что:​​Отдельным людям -выделите​

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

  7. ​ одновременном сохранении файла​ убедишь, что проблемы​ общего доступа, в​ данные в одну​ графические объекты​ Online в браузере.​ впрочем, можно обойти,​ общего доступа, то,​ всех указанных операций.​​ в виде цветовых​​ пункт​

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

​ по ходу совместной​ работает.​(Hugo)200?’200px’:»+(this.scrollHeight+5)+’px’);»>Я думаю, что​: при открытии рабочего​Был создан файл​ каждому свой лист​ несколькими пользователями. Тогда​ у них (я​ котором очень многое​ ячейку. Возникает блокировка.​​Вставлять или менять гиперссылки​​ Пользователи смогут приступить​ временно отключив общий​ находясь во вкладке​Существуют случаи, когда отдельного​

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

​ их левом верхнем​

lumpics.ru

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

​. В нем указывается,​ книгой. Например, инструменты​: Private Sub Workbook_Open()​ у каждого юзера​ данные из файла-базы​ на сервере, в​ лист свой пароль​

​ сохранить со второй​

  1. ​ точно знаю, что​​ сравнению с режимом​​ файлом ведется журнал​

  2. ​Назначать, редактировать либо удалять​ браузере, выбрав​​ необходимые операции в​​, кликаем по кнопке​

  3. ​ Это может быть​

  4. ​ углу, только со​

  5. ​ как программа должна​​ приложения позволяют отслеживать​​If Not ActiveWorkbook.MultiUserEditing​

​ в памяти свой​ в рабочий файл​ котором на 1​

Шаг 1. Отправка книги

​ .. про сохранение​ попытке.​ проблема всегда «на​ монопольного доступа?​ изменений (кто входил,​ пароли​

Шаг 2. Предоставление общего доступа

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

  2. ​ времени последнего сохранения​​ вести себя, если​​ изменения, производимые различными​ Then​​Мне тоже так​​ ?​ листе находятся данные,​​ не очень понял​​Правда, ситуация обостряется​

  3. ​ дальнем конце»​​А попробуйте-ка проверить,​​ когда, что делал).​

  4. ​Существующие пароли функционируют​ >​Автор: Максим Тютюшев​на ленте. В​ что он выбыл​ документа одним из​ несколько пользователей одновременно​ участниками, а также​​Application.DisplayAlerts = False​​ кажется.​

  5. ​ZamoK​ которые в последующем​​ … вы хотите​​ если файл «тяжёлый»​

  6. ​)​​ что входит в​​ Книга увеличивается. Начинает​Ставить либо снимать защиту​Изменить в браузере​Предоставить доступ к книге​ открывшемся меню выбираем​​ из проекта, так​​ пользователей. Причем учитываются​ редактируют одну и​​ утверждать либо отклонять​​ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared​

    ​Quote​​: Да​ подтягивает другой рабочий​ общую книгу использовать​​ (а потому долго​​Lenaris​ личные представления кроме​ «глючить».​​ листов и книг​​. Если они захотят​​ другим пользователя можно​​ пункт​

  7. ​ и чисто по​ исправления всех пользователей​ ту же ячейку.​ их. Выясним, что​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​ может.​
  • ​ что-нибудь ещё?​
  • ​ на его компьютере.​
  • ​Записывать, изменять или просматривать​Изменить в Excel​Windows macOS ​

​ В поле​ устройства. В Экселе​ помеченную ячейку, откроется​ включить постоянное условие,​

​ вопроса, как предоставить​ комбинацию клавиш «Alt»​ подумываю, да все​

​ открыть одновременно на​ ​ Начинается ругань, что​
​ пустыми таблицами), который​: Alex_ST, окно открывала.​ ​Alex_ST​
​Lenaris​Большая нагрузка на сетевой​ ​ макросы​
​.​Нажмите кнопку​ ​«Во времени»​ существует такая возможность.​
​ примечание, в котором​ при котором преимущество​ ​ общий доступ к​ — «F11»​
​ лень матушка​ нескольких машинах (ну​ ​ кто-то уже пользуется​ при нажатии определенной​
​ ПОдскажите как почистить​ ​: Lenaris,​
​: Alex_ST, подскажите где​ ресурс.​ ​Запускать имеющиеся макросы, которые​
​Совет:​Поделиться​ ​установить параметр​
​Переходим во вкладку​ указано, кем и​ ​ будет всегда у​ файлу. Прежде всего,​
​Слева кликаем на​Quote​ ​ т.е. есть база​ данными и предлогает​ кнопки в приложении​
​ список сессий?​ну значит точно​ ​ посмотреть что входит​
​Что можно сделать, если​ не связаны с​ ​ Пользователи, у которых установлена​.​

​«Все»​

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

​«Рецензирование»​ когда было выполнено​ того, кто успел​ нужно сказать, что​ «ЭтаКнига»​(IgorGo)200?’200px’:»+(this.scrollHeight+5)+’px’);»>а за это​ в файле и​

  1. ​ пересохнанить для работы​ заполняется. Мне нужно,​ЧТО (вряд ли​Рецензирование-Доступ к книге.
  2. ​ в кривой установке​ в личные представления​ совместный доступ к​ недоступными задачами​ последняя версия Excel 2016​Управление доступом к файлу.
  3. ​Выберите разрешения и нажмите​. Напротив наименований полей​. В блоке​Настройки в Подробнее.
  4. ​ соответствующее действие.​ первым сохранить изменение.​ процедура включения режима​В открывшееся окошко​ можно не переживать.​ есть несколько операторов,​ документ данные на​ чтобы при заполнении​
  5. ​ кто?) может отключать​ или настройке толстого​ в Excel 2010?​ файлу файл заблокирован:​Изменять или удалять формулы​ для подписчиков Office 365,​
  6. ​ кнопку​«Пользователем»​«Изменения»​Для того, чтобы изменить​Кроме того, при желании​

​ совместной работы с​ вставляем:​ в Access не​

​ которые пытаются получить​ сервере. Запрос в​

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

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

  1. ​ можно отключить из​
  2. ​ книгой не может​
  3. ​Private Sub Workbook_Open()​
  4. ​ надо будет углубляться,​ из нее данные,​ документе сделан стандартным​ данные не сохранялись,​ пользователя?​ сервере проблемы.​
  5. ​: Понятия не имею,​ изменений.​Пользоваться существующими формулами​ напрямую в приложении​Имя пользователя.

​.​«В диапазоне»​ на кнопку​

​ возвращаемся в окно​ личного представления параметры​ быть проведена на​If Not ActiveWorkbook.MultiUserEditing​ его роль в​ отредактировать и вернуть​ способом на обновление​ а при сохранении​Вариант с сохранением​Но ведь признать​

  1. ​ где в ненастроенном​Почистить содержимое файла.​Добавлять в форму данных​ Excel: выбрать​Добавьте пользователей.​следует снять галочки.​
  2. ​«Доступ к книге»​ настройки. В поле​ печати и фильтры,​ сервере, а только​ Then​ этой связке очень​
  3. ​ обратно), то как​ при открытии. Как​ обязательно запрашивалось изменение​ возможен. Сегодня попробую​ это для IT-шников​ «под себя» интерфейсе​
  4. ​Отменить, а потом снова​ новую информацию​

​Файл​При желании введите сообщение.​ Аналогичную процедуру нужно​

  1. ​.​«По времени»​
  2. ​ сняв галочки около​
  3. ​ на локальном компьютере.​Application.DisplayAlerts = False​
  4. ​ пассивная (но очень​ будет происходить работа​ избежать данную проблему?​ названия шаблона. То​

​ узнать у пользователей​ — это значит​ Excel 2010 включается​ активировать совместный доступ.​

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

  1. ​Искать информацию в форме​ >​Нажмите кнопку​Доступ к книге.
  2. ​ провести и с​Открывается уже знакомое нам​Список пользователей.
  3. ​доступны следующие варианты​ соответствующих пунктов.​

​ Поэтому, если документ​ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared​ ответственная — хранить​

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

​ макроса?​TimSha​ есть был запрет​последовательность их действий​ признаться, что на​

  1. ​ режим общего доступа.​Открыть книгу xls в​Выделить исправления.
  2. ​ данных​Открыть​Отправить​ параметром​ окно управления доступа​ выбора периода просмотра​После этого не забываем​ хранится на сервере,​Вносить изменения на отдельный лист.
  3. ​End If​ данные).​Я так понимаю,​

​: Вариантов немало. Установить​ на сохранение изменений​ (хотя это очень​ их обучение (а​У меня интерфейс​ OpenOffice. И снова​​ >​

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

​.​«Выделять исправления на экране»​ к файлу. Во​

exceltable.com

Проблема при работе в многопользовательском режиме

​ исправлений:​​ выполнить фиксацию внесенных​
​ то, прежде всего,​End Sub​у такой связки​ что вообще никак?​
​ очередь/график работы с​ в текущем шаблоне.​ сложно).​ оно должно было​ переделан. Но когда​ сохранить ее в​
​Сначала определяемся, какую книгу​
​Общие​Чтобы поделиться книгой, нужно​. А вот напротив​ вкладке​отображение со времени последнего​ изменений, нажав на​
​ его нужно перенести​Нажимаем сохранить​ два огромных плюса:​А если очень​ файлдом. Дать каждому​Микки​Alex_ST​
​ проводиться) фирма зря​ там включаешь режим​

​ xls.​​ мы «откроем» для​, а затем — файл,​ выполнить всего три​ параметра​«Правка»​ сохранения;​ кнопку​
​ на свой локальный​Выбираем тип файла:​1. автоматически поддерживается​ надо, то как​ по файлу, а​: Т.е русскими словами​: Что значит «как​
​ потратила деньги и​ общего доступа, выбрасывается​Замечено, что запись «Файл​ редактирования сразу несколькими​ которым с ними​ простых шага.​«Вносить изменения на отдельный​находится список всех​вся хранящиеся в базе​

​«OK»​​ ПК и там​ Книга Excel c​ многопользовательская система​ поступить?​

​ затем объединять данные.​​ .. вам надо​ почистить?» А кнопочка​ нужно теперь обращаться​ такое же окошко​ заблокирован» реже появляется​
​ участниками. Создаем новый​ поделились.​В веб-браузере сохраните существующую​ лист»​ пользователей, которые работают​ исправления;​.​ уже производить все​ поддержкой макросов​
​2. данные лежат​Hugo​ Работать в Access’e​

​ сохранить текущую книгу​ «Удалить» на окошке​ за платной помощью​
​ управления доступом, как​ в новейших версиях​ файл и наполняем​Книгу могут одновременно изменять​ книгу или создайте​, наоборот, галочку следует​ с этой книгой.​те, которые ещё не​Открытие файла, в котором​ нижеописанные действия.​Заходим «Параметры Excel»​

​ отдельно, код -​​: Я в файл​ или других прогах…​ ..как … (Ваши​ зачем?​ к настоящим сертифицированным​

​ и было в​​ Excel.​ его информацией. Либо​ несколько пользователей. Это​
​ новую в OneDrive,​ установить. После того,​ Выделяем имя того,​biggrin​ просмотрены;​
​ включен совместный доступ,​После того, как книга​ / «Центр управления​ отдельно. внося исправления​ с общим доступом​ZamoK​
​ предложения) и выйти​С утра пораньше​ специалистам.​ 2003-ем (только что​На вкладке «Рецензирование» открываем​

​ открываем существующий.​​ называется совместным редактированием.​ OneDrive для бизнеса​ как все вышеуказанные​ кого нужно убрать,​начиная с конкретной указанной​
​ имеет некоторые особенности.​ создана, переходим во​ безопасностью»/ «Параметры центра​ в программу, Вы​
​ макрос писал -​: Дело в том,​ без сохранения …​
​ смело убиваете все​Lenaris​ проверил).​ меню «Доступ к​
​Переходим на вкладку «Рецензирование».​ Однако для использования​ или библиотеке SharePoint​
​ манипуляции выполнены, жмем​ и жмем на​ даты.​Запускаем Эксель и переходим​ вкладку​

​ управления безопасностью»/ Включить​​ не изменяете данные.​ и он работает.​ что это не​ и что надо​ сессии за предыдущие​: Alex_ST, Добрый день!​
​Там на вкладке​ книге».​ Диалоговое окно «Доступ​ такой возможности нужна​ Online.​ на кнопку​ кнопку​biggrin​В поле​

​ во вкладку​​«Рецензирование»​ все макросы/ ОК​ можно улучшать код​ Но правда в​ возможно идет рабочая​ запретить им сохранять​

​ дни. Не так​​У меня опять​
​ «Подробнее» есть параметры​В разделе «Правка» мы​ к книге».​ версия 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-данными;​ действия участников будут​

​имеется блок настроек​​ файлу с разных​: Организовать виртуальную сеть​: Разрешите одновременный доступ​IgorGo​1/ Рабочий файл​
​ режим.​: можно (см. приложение)​

​ пользователя из списка.​​.​ книге» и снять​smile

​ сохранения общего файла​​ отслеживать действия рабочей​.​ пользователям одновременно»​Создавать новые таблицы;​ отображаться с учетом​«Личная настройка Microsoft Office»​ устройств и под​ (VPN). Например, с​ к книге:​
​: я в таких​ при открытии копирует​
​На вкладке Рецензирование​ Прикрепленные файлы post_111001.GIF​
​Что происходит в​К счастью наши​ галочку напротив «Разрешить​ веб-сервер.​ группы, добавлять/удалять участников,​В поле​. Для закрепления внесенных​

​Удалять листы;​​ введенных настроек.​smile
​. Тут в поле​​ различными учетными записями​ помощью Hamachi, бесплатно:​Меню — Сервис​ случаях данные держу​ лист 1 из​ включаю​ (25.25 КБ)​ «мозгах» у сервера​
​ IT-шники пока не​ изменять файл нескольким​
​Теперь проверим и обновим​​ редактировать противоречивые изменения.​Пригласить пользователей​ изменений жмем на​Производить условное форматирование и​
​Главный пользователь имеет возможность​«Имя пользователя»​
​ пользователей будет открыт.​​djurka​ — Доступ к​ в AcceSS, а​ базы​1. Разрешения на​
​Natalia​ толстого клиента знают​ смогли убедить руководство​happy
​ пользователям».​​ ссылки:​ Как настроить совместную​введите адреса электронной​ кнопку​ ряд других действий.​ применять или отклонять​можно поменять наименование​ На это указывает​: А как сделать​
​ книге и отметьте​ пользовательские интерфейсы из​
​2/ Сейчас нет,​ изменения диапазонов и​
​: Спасибо!​ (и то вряд​ раскошелиться на тонкие​В списке должен остаться​Вкладка «Данные». «Подключения».​ работу в Excel.​ почты, разделяя их​
​«OK»​hands

excelworld.ru

Одновременный доступ в книге excel нескольких пользователей.

​Как видим, ограничения довольно​​ правки других участников.​ своей учетной записи​ то, что в​ общий доступ к​ чек-бокс «Разрешить изменять​ ExceL.​ но был настроен​ прописываю диапазоны и​Я открыла общий​ ли) только Ваши​ клиенты и толстые​

​ один пользователь –​Изменить ссылки / изменить​В книге Excel со​ точкой с запятой.​.​ существенны. Если, например,​ Для этого требуется​

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

​ прописываю ФИО из​​ доступ всем пользователям,​ IT-шники.​
​ сервера.​ Вы.​ связи. Если такая​ совместным доступом не​ Не забудьте выбрать​Открывается диалоговое окно, в​

​ без работы с​​ совершить следующие действия.​ После того, как​ после названия книги​ ней используются списки?​

​ одновременно…»​ чудно работает.​ было, всё ровно​ ексченджа​ теперь они могут​Lenaris​Поэтому все работают​Lenaris​ кнопка отсутствует, в​ все задачи можно​

​ параметр​​ котором предупреждается, что​ XML-данными зачастую можно​Находясь во вкладке​
​ все настройки выполнены,​ отображается наименование режима​

​ Спасибо.​
​catcher​nilem​
​ ругается​
​2. Разрешаю общий​
​ при нажатии на​
​: Alex_ST, получается, что​

​ по-старинке на полнофункциональных​: Здравствуйте!​ листе нет связанных​ выполнять.​Может вносить изменения​ выполнение данного действия​ обойтись, то без​

​«Рецензирование»​ жмем на кнопку​ доступа –​San4uS​

​: большое спасибо за​​: Да, спасибо. Будем​
​Karataev​ доступ​
​ кнопки в приложении​
​ слетает доступ, так?​
​ компах и используют​
​Помогите решить проблему​

​ файлов.​​Нельзя:​
​. Когда все будет​ сделает невозможным совместное​ создания таблиц работа​, щелкаем по кнопке​
​«OK»​«Общий»​
​: Очень много полезного​ ответ, сделал, это​

​ мучить Access​
​: ZamoK вопрос остался​Ошибок или каких-либо​
​ генерировать данные в​
​ Тогда почему это​
​ обычные файл-сервера в​
​ при работе с​

​Переходим на вкладку «Состояние»,​
​Создавать таблицы Excel.​ готово, нажмите кнопку​ использование документа. Если​
​ в Экселе вообще​«Исправления»​.​. Теперь файл снова​ узнал, спасибо!​

​ как раз то,​​IgorGo​ по связи. Например​

​ «фи» Excel не​​ общей таблице.​ возникает периодически, а​ интранете)​ файлом Excel 2010​ чтобы проверить имеющиеся​

​Создавать, менять или просматривать​​Поделиться​ вы твердо уверены​ не мыслится. Что​

​. Выбираем пункт​Теперь можно приступать к​ можно переносить на​Guest​ что нужно.​: а за это​ связь бывает такая​ говорит, но при​

​Единственное, возможно ли​​ не постоянно?​Lenaris​ в многопользовательском режиме.​
​ связи. На работоспособность​ сценарии.​

​.​​ в принятом решении,​ же делать в​«Принять/отклонить исправления»​

​ работе с документом.​​ сервер.​: Спасибо за подсказку!​А можно ли​ можно не переживать.​ между файлами: в​

​ этом люди которые​​ сделать так, чтобы​Alex_ST​

​: Alex_ST, да сам​​С файлом работают​

planetaexcel.ru

​ связей указывает кнопка​

Visual Basic for Applications (VBA) is a frequently used utility for Microsoft applications — including Microsoft Excel, Office, PowerPoint, Word, and Publisher. As VBA is a fairly complicated language to learn, much has been written about it and its capabilities (and if you want to learn more about VBA and Excel, you can read about it here).

One of the most basic tasks you can use VBA for is to open and manipulate files, such as an Excel file. VBA open files will open the Excel file — from there you can control how it is read and written. Commonly, you would use VBA code to open the file, and then use Excel VBA macros to write to the file. 

Let’s take a deeper look into how VBA open files can be used with an Excel Workbook.

What is VBA Open Files and how does it work?

VBA is extremely similar to Visual Basic, a programming language used within the Microsoft ecosystem. It is used to create “macros.” A macro is a sequence of automated events which can fine-tune, optimize, automate, and improve your operations. The Excel VBA implementation can open files and run macros on them.

In Excel, you use VBA by inserting the code in the Visual Basic Editor. You can also choose the “Macro” button on the Developer Tab. From there, you will enter in code as though programming.

Before you start digging into VBA, you should have some understanding of programming. Programming means directing a computer to perform a certain sequence of events. Keep a few things in mind:

  • You should always test your programming thoroughly to make sure it does what you want it to do.
  • You should never implement your programming in a “live” environment with important data rather than test data.
  • You should save your work frequently and you should be prepared to restore both your programming and your data if needed.
Person wearing headphones looking at laptop screen and typing

Running the macros you program

When macros are created, they’re assigned to given keypresses. Sometimes this is a combination of keys, and sometimes it’s an extra mouse button. Regardless, they’re intended to set off an automated chain of events whenever you do the given action (whether it’s pressing a key on your keyboard, or a button on your mouse). You can also run a macro manually by selecting it.

So, when you run a macro, you have Microsoft Excel already open. The macro runs within Excel, and you will do all your VBA programming inside of that program. Likewise, you will do your Microsoft Word VBA programming inside of Microsoft Word.

Opening an Excel file with VBA

The first step to updating, modifying, and saving Excel files is to be able to open them. To open an Excel file with VBA you would program as follows:

Sub openworksheet()
	Workbooks.Open filename:= _ “filepath”
	End sub

The “sub” above is a lot like a function. It creates a small amount of code that is intended to take action. It begins with “Sub” and ends with “End Sub.”

In the above code, note that the italicized “filepath” references the full path of the workbook. Without the appropriate Workbooks.Open filename, you won’t be able to open the given file. You will also need the appropriate file type (Microsoft Excel, which is either XLS or XLSX) or the open method will fail.

Of course, the above assumes that you are always going to be opening the Workbook at the “filepath.” You might also want to open any file at all. You can create a macro that opens a dialog, through which you can select any file.

	Sub openworksheet()
	Dim Flocation as Variant
	Flocation = Application.GetOpenFileName()
	If Flocation <> false then 
	Workbooks.Open Filename:= Flocation
	End If
	End Sub

The above code prompts the user to give a file name. If the user does give a file name (the variable, Flocation is no longer false), then the program will open that file.

Also note that Flocation is just the name of the variable that’s being used. You could call it something else; in fact, you could even call it just “f.” All that’s important is that you don’t use a word that the code already uses, such as “Variant” or “Filename.”

You might also be wondering why this code is so important. After all, you can open your own files at any time. But you can bind it to a specific keypress, making it a macro. So, now, typing something like “F8” will automatically open the “open a file” dialog.

But once you’ve automatically opened a file, what’s next? Generally, opening the file is only the first step. Once you’ve opened the Excel file, you still need to be able to read and write to it.

Reading the Excel file

You’ve opened your Excel file. But what’s inside of it? Luckily for you, it’s pretty easy to start reading an Excel file once you’ve opened it with VBA.

First, you should know that when you open a file, it becomes the ActiveWorkbook, which can be referenced in code as “ActiveWorkbook.”

Let’s say you want to read the first cell of the book.

Dim contents As Integer
	contents = ActiveWorkbook.Range(“A1”).value

Now, that does assume that the cell is an Integer. You would need to change it to a String if you were reading a string, or a Date if you were reading a Date. Consequently, you need to be really familiar with the type of data you’re reading before you go any further.

Now, note that this is reading the contents of the cell into just a variable. That’s not displaying it. That’s not doing anything with it at all. If you wanted to see, perhaps, what the contents were, you would then type:

MsgBox contents

Alternatively, you could:

MsgBox ActiveWorkbook.Range(“A1”).value

Either of these options should display the value. But, of course, it’s a static value; it’s always going to display A1. So, you might need to code things a little more expressively if you’re trying to read the entirety of a document, or if you’re trying to transition one document to another.

Writing to the file

So, you have your workbook open through the power of VBA. But now you want to write to the file. Writing can be used in tandem with reading; once the Workbook is open you could do both. 

As an example, you could write a macro that would open a Workbook and copy one column to another column, by reading the data in the first column and then writing that data to the second column.

Similarly, you could write a macro that would open two Workbooks and copy data from one to another, and then save both Workbooks, and then close both Workbooks.

As mentioned, once you open a workbook with VBA, the workbook that you opened becomes the ActiveWorkbook. This also happens if you have created a new workbook within VBA.

You can then access its data through:

ActiveWorkbook.Sheets
ActiveWorbook.Cells

As an example, if you wanted to edit the cell at column 1, row 1, on Sheet 1, you would write as follows:

ActiveWorkbook.Sheets(“Sheet 1”).Cells(1,1).Value= “1”

If this is confusing, you can also use the “Range” field.

ActiveWorkbook.Sheets(“Sheet 1”).Range(“A1”).Value= “1”

The above would have the same result.  

Writing to a sheet can become very complex. Consider that, when you’re writing the macro system, you don’t know what data is in those cells. You only know their positions. You’re essentially writing to that position blindly.

Macros are frequently used to do things such as read CSV files and import that CSV information into a brand new Microsoft Excel workbook. But it takes a lot of time and a lot of testing to ensure that the data is going through correctly.

In the above case, you’re only altering range A1. But you could iterate through all the rows and columns of a workbook one by one if you were trying to fill it out line by line. As you learn more about Excel and VBA, you will learn more advanced methods of both reading and writing data.

Saving the Excel workbook file

Just like when you’re using Excel regularly, you still need to save your changes. If you have opened and changed a Workbook, save it before you close it. 

ActiveWorkbook.Save

You could even write a Macro that would save all your workbooks and close them, as follows:

For each workbook in Application.Workbooks
		workbook.Save
	Next workbook
		Application.Quit

The above code iterates through each Workbook saving it until it cannot find a Workbook anymore. Once it can no longer find a Workbook, it quits the application. This is very useful for those who want to shut down fast and have a lot of workbooks left to save.

Closing the selected file

Closing the file is just as easy as opening a workbook. In fact, it’s actually easier, because you don’t need to know the file name. VBA already knows which file it has opened.

To close the Excel file you would type:

ActiveWorkbook.Close

On the other hand, perhaps you wanted to close a specific Workbook. In that case, you would use the following:

Workbooks(“book.xlsx”).Close

This is under the assumption the book was called “book.xlsx”; you would replace the given name for your sheet. Once you have closed the Workbook, you will not be able to make any further modifications to it until you open it again.

Opening a Microsoft Excel workbook that is password protected

Sometimes you may have password-protected your workbooks. That goes into more complicated territory. Understandably, it’s not going to open if you just try to directly open it. 

But you can still open it with VBA.

Workbooks.Open(filename:= “filename”, Password:= “password”)

As you can see above, you just added the password directly into the macro. Now the file is going to open just fine.

But there’s a problem with the above, which (if you’re good with security) you already know. You just saved your password as plain text! 

Now, anyone with access to your computer could potentially open that file without knowing the password. And if you’ve been using that password for multiple files (a big no-no), they could be compromised, too.

So, VBA does provide a method of opening files that have a password. But it’s not a good method because of the above reasons. It means that your system could be compromised. If you just have a password to prevent outside intrusion (the file being sent somewhere else and opened by an outsider), this may not be a problem. But if you’re trying to protect your file internally as well as externally, it can be a major issue.

The alternative is to use the previous method of opening a file with a dialogue box. When you press a button (or otherwise launch your macro), you’ll be given a dialogue box, and you’ll be able to open whatever file you want. Your macro can then continue actions on the file after you have manually entered your password. 

Opening a read-only file

Some Microsoft Excel files don’t have a password when you open them. Instead, they are set to read-only. If they’re set to read-only, you’ll be able to open and read from them. But you won’t be able to actually write to them without a secondary password. 

ActiveWorkbook.Password = “password”

Above is the method that you would call after you’ve opened the book so that you can start to write to it. You wouldn’t include the password when opening the file, because you wouldn’t have been prompted for it then.

The benefits of using Excel VBA Open

VBA is used to automate routine, mundane tasks, such as copying large volumes of data from one book to another. Any time you’re finding yourself spending hours just copying and pasting data, or running fairly mundane calculations, a macro can help.

You can also use VBA to automate smaller tasks that you find use a lot of keypresses. If you find yourself frequently needing to open the same 10 Excel Workbooks at once, for instance, you can create a macro that will open all of them on a single keypress, and close them all, too.

While it may only save you a few minutes of time, those minutes of time add up.

Potential issues with Excel VBA Open

It’s possible to run into issues with VBA open. If you have a protected workbook, you won’t be able to open it without the password (as noted). If you don’t have the password, you aren’t going to be able to open the file.

If the selected file is read-only, you aren’t going to be able to write to it without the right permissions. If you don’t realize that the file is read-only, you could try writing to it only for the action to fail. 

And because you can’t always see what the macro is doing until you run it, you can potentially overwrite data or delete it altogether. This is why it’s always important to test your macros with test data before trying to implement it with live data.

But even so, Excel VBA open is a robust language. Most common activities with Workbooks (such as opening, closing, reading, writing, and saving) can be completed quite intuitively and often with a single line of code.

Learning more about Excel VBA

In the right hands, VBA is very powerful. If you have any automated, routine tasks in Excel, consider automating them with Excel VBA. Even better, once you learn the basics of VBA, you can also use it in other Microsoft applications such as Microsoft Word.

Still, powerful also means that mistakes can be made. Because VBA can open files and write to them, it’s also possible that it can overwrite data. This is why testing your programming is so important. 


Frequently Asked Questions:

Can a macro open a file?

The Excel Macro can be used to prompt a user to open a file or to open a specific file (given the entire filename). 

How do I open a text file in Excel VBA?

The VBA OpenTextFile method can be used to open a text file, just as the VBA Workbooks.Open method is used to open an Excel file.

How do I open a new workbook in VBA?

To open a new workbook in VBA, you would use the Workbooks.Add() VBA function. This function both creates a new workbook and prioritizes it as the active workbook.

  • Список файлов
  • Работа с файлами

Функции GetFileName и GetFilePath по сути аналогичны, и предназначены для вывода диалогового окна выбора файла
(при этом можно указать стартовую папку для поиска файла, и тип/расширение выбираемого файла)

Функция GetFilenamesCollection позволяет выборать сразу несколько файлов в одной папке.

Функция GetFolderPath работает также, только служит для вывода диалогового окна выбора папки.

Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", _
                       Optional ByVal InitialPath As String = "c:") As String
    ' функция выводит диалоговое окно выбора папки с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора
    Dim PS As String: PS = Application.PathSeparator
    With Application.FileDialog(msoFileDialogFolderPicker)
        If Not Right$(InitialPath, 1) = PS Then InitialPath = InitialPath & PS
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        If .Show <> -1 Then Exit Function
        GetFolderPath = .SelectedItems(1)
        If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS
    End With
End Function
 
Sub ПримерИспользования_GetFolderPath()
    ПутьКПапке = GetFolderPath("Заголовок окна", ThisWorkbook.Path)   ' запрашиваем имя папки
    If ПутьКПапке = "" Then Exit Sub    ' выход, если пользователь отказался от выбора папки
    MsgBox "Выбрана папка: " & ПутьКПапке, vbInformation
End Sub
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _
                     Optional ByVal InitialPath As String = "c:", _
                     Optional ByVal FilterDescription As String = "Книги Excel", _
                     Optional ByVal FilterExtention As String = "*.xls*") As String
    ' функция выводит диалоговое окно выбора файла с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает полный путь к выбранному файлу, или пустую строку в случае отказа от выбора
    ' для фильтра можно указать описание и расширение выбираемых файлов
    On Error Resume Next
    With Application.FileDialog(msoFileDialogOpen)
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        .Filters.Clear: .Filters.Add FilterDescription, FilterExtention
        If .Show <> -1 Then Exit Function
        GetFilePath = .SelectedItems(1): PS = Application.PathSeparator
    End With
End Function
 
Sub ПримерИспользования_GetFilePath()
    ИмяФайла = GetFilePath("Выберите файл Word", , "Документы Word", "*.doc") ' запрашиваем имя файла
    If ИмяФайла = "" Then Exit Sub    ' выход, если пользователь отказался от выбора файла
    MsgBox "Выбран файл: " & ИмяФайла, vbInformation
End Sub

Ниже представлены функции для вызова диалоговых окон выбора файлов и папок средствами VBA.

Функции GetFileName и GetFilePath по сути аналогичны, и предназначены для вывода диалогового окна выбора файла
(при этом можно указать стартовую папку для поиска файла, и типрасширение выбираемого файла)

Функция GetFilenamesCollection позволяет выборать сразу несколько файлов в одной папке.

Функция GetFolderPath работает аналогично, только служит для вывода диалогового окна выбора папки.

Function GetFileName(Optional ByVal Title As String = "Выберите файл для обработки", _
                     Optional ByVal InitialPath, _
                     Optional ByVal MyFilter As String = "Книги Excel (*.xls*),") As String
    ' функция выводит диалоговое окно выбора папки с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора
    If Not IsMissing(InitialPath) Then
        On Error Resume Next: ChDrive Left(InitialPath, 1)
        ChDir InitialPath    ' выбираем стартовую папку
    End If
    res = Application.GetOpenFilename(MyFilter, , Title, "Открыть")  ' вывод диалогового окна
    GetFileName = IIf(VarType(res) = vbBoolean, "", res)    ' пустая строка при отказе от выбора
End Function
 
Sub ПримерИспользования_GetFileName()
    ИмяФайла = GetFileName("Заголовок окна", ThisWorkbook.Path)   ' запрашиваем имя файла
    ' ===================== другие варианты вызова функции =====================
    ' текстовые файлы, стартовая папка не указана
    '       ИмяФайла = GetFileName("Выберите текстовый файл", , "Текстовые файлы (*.txt),")
    ' файлы любого типа из папки "C:Windows"
    '       ИмяФайла = GetFileName(, "C:Windows", "")
    ' ==========================================================================

    If ИмяФайла = "" Then Exit Sub    ' выход, если пользователь отказался от выбора файла
    MsgBox "Выбран файл: " & ИмяФайла, vbInformation
End Sub
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", _
                       Optional ByVal InitialPath As String = "c:") As String
    ' функция выводит диалоговое окно выбора папки с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора
    Dim PS As String: PS = Application.PathSeparator
    With Application.FileDialog(msoFileDialogFolderPicker)
        If Not Right$(InitialPath, 1) = PS Then InitialPath = InitialPath & PS
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        If .Show <> -1 Then Exit Function
        GetFolderPath = .SelectedItems(1)
        If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS
    End With
End Function
 
Sub ПримерИспользования_GetFolderPath()
    ПутьКПапке = GetFolderPath("Заголовок окна", ThisWorkbook.Path)   ' запрашиваем имя папки
    ' ===================== другие варианты вызова функции =====================
    ' стартовая папка не указана, заголовок окна по умолчанию
    '       ПутьКПапке = GetFolderPath
    ' обзор папок начинается с папки "Рабочий стол"
    '       СтартоваяПапка = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    '       ПутьКПапке = GetFolderPath("Выберите папку на рабочем столе", СтартоваяПапка)
    ' ==========================================================================

    If ПутьКПапке = "" Then Exit Sub    ' выход, если пользователь отказался от выбора папки
    MsgBox "Выбрана папка: " & ПутьКПапке, vbInformation
End Sub
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _
                     Optional ByVal InitialPath As String = "c:", _
                     Optional ByVal FilterDescription As String = "Книги Excel", _
                     Optional ByVal FilterExtention As String = "*.xls*") As String
    ' функция выводит диалоговое окно выбора файла с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает полный путь к выбранному файлу, или пустую строку в случае отказа от выбора
    ' для фильтра можно указать описание и расширение выбираемых файлов
    On Error Resume Next
    With Application.FileDialog(msoFileDialogOpen)
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        .Filters.Clear: .Filters.Add FilterDescription, FilterExtention
        If .Show <> -1 Then Exit Function
        GetFilePath = .SelectedItems(1): PS = Application.PathSeparator
    End With
End Function
 
Sub ПримерИспользования_GetFilePath()
     ИмяФайла = GetFilePath("Выберите файл Word", , "Документы Word", "*.doc") ' запрашиваем имя файла
    ' ===================== другие варианты вызова функции =====================
    ' текстовые файлы, стартовая папка не указана
    '       ИмяФайла = GetFilePath("Выберите текстовый файл", , "Текстовые файлы", "*.txt")
    ' файлы любого типа из папки "C:Windows"
    '       ИмяФайла = GetFilePath(, "C:Windows", , "*")
    ' ==========================================================================

    If ИмяФайла = "" Then Exit Sub    ' выход, если пользователь отказался от выбора файла
    MsgBox "Выбран файл: " & ИмяФайла, vbInformation
End Sub
Function GetFilenamesCollection(Optional ByVal Title As String = "Выберите файлы для обработки", _
                             Optional ByVal InitialPath As String = "c:") As FileDialogSelectedItems
    ' функция выводит диалоговое окно выбора нескольких файлов с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает массив путей к выбранным файлам, или пустую строку в случае отказа от выбора
    With Application.FileDialog(3) ' msoFileDialogFilePicker
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        If .Show <> -1 Then Exit Function
        Set GetFilenamesCollection = .SelectedItems
    End With
End Function
 
Sub ПримерИспользования_GetFilenamesCollection()
    Dim СписокФайлов As FileDialogSelectedItems
    Set СписокФайлов = GetFilenamesCollection("Заголовок окна", ThisWorkbook.Path)   ' выводим окно выбора
    ' ===================== другие варианты вызова функции =====================
    ' стартовая папка не указана, заголовок окна по умолчанию
           Set СписокФайлов = GetFilenamesCollection
    ' обзор файлов начинается с папки "Рабочий стол"
           СтартоваяПапка = CreateObject("WScript.Shell").SpecialFolders("Desktop")
           Set СписокФайлов = GetFilenamesCollection("Выберите файлы на рабочем столе", СтартоваяПапка)
    ' ==========================================================================

    If СписокФайлов Is Nothing Then Exit Sub  ' выход, если пользователь отказался от выбора файлов
    For Each File In СписокФайлов
        Debug.Print File
    Next
End Sub

Ещё один вариант кода (который я использую) для выбора файла
Его отличие — функция запоминает папку, из которой последний раз выбирался файл,
и при повторном запуске диалогового окна выбора файла,
обзор папок будет начат с той папки, откуда последний раз был взят файл.

Sub AttachFile_test()    ' пример использования
    Filename$ = GetFilePath()
    If Filename$ = "" Then Exit Sub
    MsgBox "Выбран файл: " & Filename$
End Sub
 
Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _
                     Optional ByVal InitialPath As String = "c:", _
                     Optional ByVal FilterDescription As String = "Файлы счетов", _
                     Optional ByVal FilterExtention As String = "*.*") As String
    On Error Resume Next
    With Application.FileDialog(msoFileDialogOpen)
        .ButtonName = "Выбрать": .Title = Title:
        .InitialFileName = GetSetting(Application.Name, "GetFilePath", "folder", InitialPath)
        .Filters.Clear: .Filters.Add FilterDescription, FilterExtention
        If .Show <> -1 Then Exit Function
        GetFilePath = .SelectedItems(1)
        folder$ = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), ""))
        SaveSetting Application.Name, "GetFilePath", "folder", folder$
    End With
End Function
  • 214359 просмотров

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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

Понравилась статья? Поделить с друзьями:
  • Excel макрос добавить текст
  • Excel макрос добавить строки в таблицу excel
  • Excel макрос для фильтрации данных
  • Excel макрос для удаления пустых строк в excel
  • Excel макрос для удаления лишних пробелов