Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2009, 14:14   #1
Quatro_Drive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 18
Восклицание Обновление связей между 2-мя и более книгами

Приветствую всех. Мучился мучился и решил обратиться здесь.. Собсно дело в следующем..

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

Возможно задача упрощается в связи с работой на одном компе (все работают в терминале под личными учетками), т.е. копии файлов лежат
(1) C:\Documents and Settings\User1\Desktop\file.xls
(2) C:\Documents and Settings\User2\Desktop\file.xls
(3) ..........
Друзья, помогите советом пожалуйста как быть, или мож ссылочку киньте на инфу полезную.. В любом случае буду благодарен!
Quatro_Drive вне форума Ответить с цитированием
Старый 28.12.2009, 14:48   #2
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

У меня тоже была подобная проблема, но я не стал создавать кучу файлов а сделал один. и поместил в общедоступное место. Чтобы никто не мог видеть только свой лист (или серию листов) написал небольшой макрос - даже не стал закрывать его, пусть кто хочет изгаляется.
Смысл этого макроса был очень прост. При открытии книги по логину (имени пользователя) и по Ip адресу компьютера делал открытым нужный -ые лист -ы. остальные закрывал. На листе -ах открывал нужные для редактирования ячейки, остальные блокировал паролем. Таким образом, каждый пользовался своим листом -ами (данными) получая ответную реакцию от другого пользователя. При этом небыло необходимости в множестве книг. И хотя файлик стал большим (~15 Mb) все работают без особых проблем.

Да чуть не забыл по умолчанию все листы закрыты от редактирования.
Юнлинг вне форума Ответить с цитированием
Старый 28.12.2009, 15:16   #3
Quatro_Drive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 18
По умолчанию

В макросах к несчастью я вообще не силен(( Спасибо за идею, но в моем случае не прокатит.. большинство пользователей будет коннектиться из удаленных офисов, а там они сидят на роутере, IP как правило динамические.. Да и старший этих всех менеджеров должен получать всю инфу на один лист, а не собирать ее с разных листов..
Quatro_Drive вне форума Ответить с цитированием
Старый 28.12.2009, 16:03   #4
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от Quatro_Drive Посмотреть сообщение
В макросах к несчастью я вообще не силен(( Спасибо за идею, но в моем случае не прокатит.. большинство пользователей будет коннектиться из удаленных офисов, а там они сидят на роутере, IP как правило динамические.. Да и старший этих всех менеджеров должен получать всю инфу на один лист, а не собирать ее с разных листов..
Вы не совсем правы. Можно сделать привязку к другим свойствам компьютера. IP адрес это одно из свойств. (к примеру я использовал уникальную характеристику железа это к примеру Mac адрес).
Что же касается получения информации на один лист, это тоже не проблема. Если в книги много листов, а кому-то необходимо видить только один то существует в макросе свойство листа Visible - по умолчанию оно равно -1 -xlSheetvisible, если его перевсти в 2 - xlSheetVeryHidden то вы его в книге просто не увидете. ( откройте пустую книгу и нажмите Alt+F11. На каждом листе увидете это свойство).
Я бы рекомендовал Вам другой подход. Например, с использованием SQL сервера для хранения данных и заполнения его. В этом случае вся нагрузка по хранению, обработки и взаимодействию с внешнеми менеджерами легла на него.
Что же касается создания такой программы, то это потребует не просто знания программирования, но и знания всей Вашей сети в том числе и програмного взаимодействия с внешними менеджерами.
все это в конечном итоге приведет к необходимости иметь в штате хорошого админа умеющего программировать. Для него сделать такой макрос не сложно
Юнлинг вне форума Ответить с цитированием
Старый 29.12.2009, 16:20   #5
Quatro_Drive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 18
Восклицание

В принципе справился) Нарисовал связи и все работает) однако решение задачи породило еще одну, тут уж я точно без помощи не справлюсь

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

Подскажите пожалуйста, где бы глянуть подобный код.. По логике процедура несложная да и код должен быть соответствующий..
Quatro_Drive вне форума Ответить с цитированием
Старый 30.12.2009, 07:55   #6
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от Quatro_Drive Посмотреть сообщение
Итак, имеем 2 книги, 15 пользователей и один старший, к которому через обновление связей стекается все информация в соответвующие листы (т.е. у каждого юзера по одному листу в книге, у старшего количество листов, соответствующее числу пользователей). Проблема в том что если ктото из юзверей решит навредить и удалит какую либо инфу у себя в журнале, после обновления у старшего эта инфа тоже пропадет, что недопустимо.
Есть мысль создать документ у старшего, абсолютно идентичный оригинальному, которым он пользуется, только без связей. это раз. Во вторых некий макрос при обновлении связей будет дублировать всю информацию в запасной документ.

Подскажите пожалуйста, где бы глянуть подобный код.. По логике процедура несложная да и код должен быть соответствующий..
По этой причине я и рекомендовал ВАМ SQL подход. Юзер может только записывать информацию и не в коем случае редактировать ее. Так что когда он "удалил" какую-нибудь цифру то это сформировалась запись в SQL и достаточно просто найти злоумышленика и "вызвать на ковер"

Но если Вы желаете подход со связями то можно было бы сделать так. не писать связи в книги и обновлять их каждый раз ( или автоматически через определенный промежуток времени), а сделать это с помощью макроса. Как это делается много раз обсуждалось на форуме, например здесь или здесь
Единственное что нужно понимать. Для для старшего книги "юзверей" быдут всегда закрыты, так же как и наоборот. Запуск макроса для старшего можно вывести на кнопку. что же касается юзеров то им можно не писать макросы а оставить связи с закрытой книгой.
Чем хорош такой подход. Когда старший прочитал данные из книг юзеров то можно поставит условие сравнения данных и если они отличаються от тех которые были в книги до этого то она автоматически сохраняется под другим имененем (без участия человека). Это исключит сговор. Что же касается способа сохранения, то воспользуйтесь макрорекодером и вам станет все ясно.
Юнлинг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переключение между книгами stas77 Microsoft Office Excel 5 03.11.2009 19:00
Какое программирование в наше время более востребовано и более рентабельно? iukash Свободное общение 18 29.10.2009 13:02
Обновление внешних связей Григорьев Игорь Microsoft Office Excel 12 10.11.2008 11:33
Excel глюкает из-за большого количества формул и связей между листами? Diva Microsoft Office Excel 1 07.08.2008 11:52
организация связей между таблицами VenMaster БД в Delphi 4 28.05.2008 16:46