Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование данных из файла, не зная открыт ли он - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Копирование данных из файла, не зная открыт ли он
Мурад Дата: Четверг, 13.08.2015, 16:16 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Добрый день! В продолжение бурной беседы в теме ссылка.
2 сотрудника хотят вести свой файлы в одинаковых таблицах самостоятельно. Один сотрудник работает с данными, который занес в свою таблицу другой сотрудник.
Задача. При открытии файла "2" таблица заполняется данными из файла "1".
Сотрудники сидят в разных углах разных кабинетов в разных зданиях в разных странах... Сотрудник 2 не знает, работает ли в данный момент со своим файлом Сотрудник 1. Но ему надо уже работать с данными, которые успел занести Сотрудник 1 и нажавший кнопку "Сохранить".
Такие случаи встречались вам, уважаемые программисты?
К сообщению приложен файл: 1.xlsm.xlsx (11.2 Kb) · 2.xlsm.xlsx (10.9 Kb)
 
Ответить
СообщениеДобрый день! В продолжение бурной беседы в теме ссылка.
2 сотрудника хотят вести свой файлы в одинаковых таблицах самостоятельно. Один сотрудник работает с данными, который занес в свою таблицу другой сотрудник.
Задача. При открытии файла "2" таблица заполняется данными из файла "1".
Сотрудники сидят в разных углах разных кабинетов в разных зданиях в разных странах... Сотрудник 2 не знает, работает ли в данный момент со своим файлом Сотрудник 1. Но ему надо уже работать с данными, которые успел занести Сотрудник 1 и нажавший кнопку "Сохранить".
Такие случаи встречались вам, уважаемые программисты?

Автор - Мурад
Дата добавления - 13.08.2015 в 16:16
RAN Дата: Четверг, 13.08.2015, 16:21 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
И в чем проблема?
Открыли файл для чтения, и читайте.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИ в чем проблема?
Открыли файл для чтения, и читайте.

Автор - RAN
Дата добавления - 13.08.2015 в 16:21
Мурад Дата: Четверг, 13.08.2015, 16:25 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
RAN, нужно скопировать данные из одного файла в другой...Вы имеете в виду, копипастом переносить каждый раз? В принципе, Сотрудник 2 у нас молчаливый и готов сверять 2 таблицы, в поисках отличий и копирования новых кусков
 
Ответить
СообщениеRAN, нужно скопировать данные из одного файла в другой...Вы имеете в виду, копипастом переносить каждый раз? В принципе, Сотрудник 2 у нас молчаливый и готов сверять 2 таблицы, в поисках отличий и копирования новых кусков

Автор - Мурад
Дата добавления - 13.08.2015 в 16:25
RAN Дата: Четверг, 13.08.2015, 17:23 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Такие случаи встречались вам, уважаемые программисты?

Такие не встречались, встерались только случаи, когда с этими двумя файлами нужно работать как с единой базой.
Ваш случай проще.
Как сделать, я ответил.
Если вам нужно не "как", а готовое решение - заказывайте, сделаю.
Или можете ручками.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Такие случаи встречались вам, уважаемые программисты?

Такие не встречались, встерались только случаи, когда с этими двумя файлами нужно работать как с единой базой.
Ваш случай проще.
Как сделать, я ответил.
Если вам нужно не "как", а готовое решение - заказывайте, сделаю.
Или можете ручками.

Автор - RAN
Дата добавления - 13.08.2015 в 17:23
Hugo Дата: Четверг, 13.08.2015, 20:15 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3689
Репутация: 790 ±
Замечаний: 0% ±

365
Чтоб вообще никак не влиять одному сотруднику на другого - можно кодом сделать копию файла (не открывать и сохранять, а скопировать средствами файловой системы) и работать как угодно с этой копией.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЧтоб вообще никак не влиять одному сотруднику на другого - можно кодом сделать копию файла (не открывать и сохранять, а скопировать средствами файловой системы) и работать как угодно с этой копией.

Автор - Hugo
Дата добавления - 13.08.2015 в 20:15
Мурад Дата: Пятница, 14.08.2015, 09:19 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
RAN, а каким образом открывать файл только для чтения? Что необходимо изменить в коде:
[vba]
Код
Sub copy_data_from_Polina()
Application.DisplayAlerts = False
Application.CutCopyMode = False
     wb1 = "Казакова.xlsm"
     MyPath = ThisWorkbook.Path & "\" & wb1
     Workbooks.Open Filename:=MyPath
     Workbooks(wb1).Sheets(1).Range("A7:M500").copy
     ThisWorkbook.Activate
     Range("A7").Select
     ActiveSheet.Paste
     Windows(wb1).Activate
     ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
[/vba]
, чтобы компилятор, открывая файл, проверял, работает ли в нем автор, и если да, то открывал его в режиме чтения. Далее копировал необходимый диапазон, вставлял этот диапазон в другом файле. В конце закрывал файл автора без сохранения данных и уничтожением буфера..
 
Ответить
СообщениеRAN, а каким образом открывать файл только для чтения? Что необходимо изменить в коде:
[vba]
Код
Sub copy_data_from_Polina()
Application.DisplayAlerts = False
Application.CutCopyMode = False
     wb1 = "Казакова.xlsm"
     MyPath = ThisWorkbook.Path & "\" & wb1
     Workbooks.Open Filename:=MyPath
     Workbooks(wb1).Sheets(1).Range("A7:M500").copy
     ThisWorkbook.Activate
     Range("A7").Select
     ActiveSheet.Paste
     Windows(wb1).Activate
     ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
[/vba]
, чтобы компилятор, открывая файл, проверял, работает ли в нем автор, и если да, то открывал его в режиме чтения. Далее копировал необходимый диапазон, вставлял этот диапазон в другом файле. В конце закрывал файл автора без сохранения данных и уничтожением буфера..

Автор - Мурад
Дата добавления - 14.08.2015 в 09:19
Мурад Дата: Пятница, 14.08.2015, 09:26 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Если есть возможность ручками открыть общий файл в режиме чтения, скопировать из него что надо, значит...можно это автоматизировать. Или нет?
 
Ответить
СообщениеЕсли есть возможность ручками открыть общий файл в режиме чтения, скопировать из него что надо, значит...можно это автоматизировать. Или нет?

Автор - Мурад
Дата добавления - 14.08.2015 в 09:26
RAN Дата: Пятница, 14.08.2015, 09:44 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Слабо справку по методу Open поглядеть?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСлабо справку по методу Open поглядеть?

Автор - RAN
Дата добавления - 14.08.2015 в 09:44
Мурад Дата: Пятница, 14.08.2015, 09:47 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
[vba]
Код
Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
[/vba] ? :)
 
Ответить
Сообщение[vba]
Код
Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
[/vba] ? :)

Автор - Мурад
Дата добавления - 14.08.2015 в 09:47
Мурад Дата: Пятница, 14.08.2015, 09:56 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
RAN, спасибо что подталкиваете на самостоятельные исследования!
Но вот, часть кода, который пытался использовать для вставки значений:
[vba]
Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba] выдает ошибку 400...
Поэтому оставил только [vba]
Код
ActiveSheet.Paste
[/vba]
 
Ответить
СообщениеRAN, спасибо что подталкиваете на самостоятельные исследования!
Но вот, часть кода, который пытался использовать для вставки значений:
[vba]
Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba] выдает ошибку 400...
Поэтому оставил только [vba]
Код
ActiveSheet.Paste
[/vba]

Автор - Мурад
Дата добавления - 14.08.2015 в 09:56
Мурад Дата: Пятница, 14.08.2015, 10:51 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Поюзал в интернете... С ошибкой 400 сталкивались многие, как я понял... Анализируя код до и после, ошибка связана с заменой кода [vba]
Код
ActiveSheet.Paste
[/vba] на этот код [vba]
Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba]:
[vba]
Код
Sub copy_data_from_Polina()
Application.DisplayAlerts = False
Application.CutCopyMode = False
     wb1 = "Казакова.xlsm"
     MyPath = ThisWorkbook.Path & "\" & wb1
     Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
     Workbooks(wb1).Sheets(1).Range("A7:M500").copy
     ThisWorkbook.Activate
     Range("A7").Select
     ActiveSheet.PasteSpecial Paste:=xlPasteValues
     Windows(wb1).Activate
     ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
[/vba]
Макрос запускается нажатием кнопки на листе.
 
Ответить
СообщениеПоюзал в интернете... С ошибкой 400 сталкивались многие, как я понял... Анализируя код до и после, ошибка связана с заменой кода [vba]
Код
ActiveSheet.Paste
[/vba] на этот код [vba]
Код
ActiveSheet.PasteSpecial Paste:=xlPasteValues
[/vba]:
[vba]
Код
Sub copy_data_from_Polina()
Application.DisplayAlerts = False
Application.CutCopyMode = False
     wb1 = "Казакова.xlsm"
     MyPath = ThisWorkbook.Path & "\" & wb1
     Workbooks.Open Filename:=MyPath, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
     Workbooks(wb1).Sheets(1).Range("A7:M500").copy
     ThisWorkbook.Activate
     Range("A7").Select
     ActiveSheet.PasteSpecial Paste:=xlPasteValues
     Windows(wb1).Activate
     ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
[/vba]
Макрос запускается нажатием кнопки на листе.

Автор - Мурад
Дата добавления - 14.08.2015 в 10:51
RAN Дата: Пятница, 14.08.2015, 10:57 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Бросьте бубен!

[vba]
Код
ThisWorkbook.Sheets("Нужный").Range("A7:M500").Value = Workbooks(wb1).Sheets(1).Range("A7:M500").Value
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеБросьте бубен!

[vba]
Код
ThisWorkbook.Sheets("Нужный").Range("A7:M500").Value = Workbooks(wb1).Sheets(1).Range("A7:M500").Value
[/vba]

Автор - RAN
Дата добавления - 14.08.2015 в 10:57
Мурад Дата: Пятница, 14.08.2015, 11:03 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
RAN, hands hands hands
 
Ответить
СообщениеRAN, hands hands hands

Автор - Мурад
Дата добавления - 14.08.2015 в 11:03
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!